Files
NixOS/modules/servers/linkwarden.nix
2026-02-01 16:59:55 -06:00

35 lines
974 B
Nix

{
lib,
config,
...
}:
let
setup = import ../factories/mkserver.nix { inherit lib config; };
cfg = config.my.servers.linkwarden;
in
{
options.my.servers.linkwarden = setup.mkOptions "linkwarden" "links" 3000;
config = lib.mkIf (cfg.enable && config.my.servers.postgres.enable && config.my.secureHost) {
sops.secrets.linkwarden.sopsFile = ../../secrets/env.yaml;
services.linkwarden = {
inherit (cfg) enable;
host = cfg.ip;
inherit (cfg) port;
openFirewall = true;
environment = {
NEXTAUTH_URL = "${cfg.url}/api/v1/auth";
NEXT_PUBLIC_KEYCLOAK_ENABLED = "true";
OPENAI_MODEL = "gpt-4o";
KEYCLOAK_ISSUER = "${config.my.servers.keycloak.url}/realms/homelab";
};
environmentFile = config.sops.secrets.linkwarden.path;
database = {
host = config.my.postgresSocket;
inherit (cfg) name;
user = cfg.name;
createLocally = true;
};
};
};
}