diff --git a/configuration.nix b/configuration.nix index de8f0b3..2099a6b 100644 --- a/configuration.nix +++ b/configuration.nix @@ -49,6 +49,7 @@ ./services/llama-cpp.nix ./services/llama-cpp-annotations.nix + ./services/trilium.nix ./services/ups.nix ./services/monitoring.nix diff --git a/service-configs.nix b/service-configs.nix index 8f68293..78cd711 100644 --- a/service-configs.nix +++ b/service-configs.nix @@ -173,6 +173,10 @@ rec { port = 6688; proto = "tcp"; }; + trilium = { + port = 8787; + proto = "tcp"; + }; }; }; @@ -302,6 +306,10 @@ rec { domain = "grafana.${https.domain}"; }; + trilium = { + dataDir = services_dir + "/trilium"; + }; + media = { moviesDir = torrents_path + "/media/movies"; tvDir = torrents_path + "/media/tv"; diff --git a/services/trilium.nix b/services/trilium.nix new file mode 100644 index 0000000..758154a --- /dev/null +++ b/services/trilium.nix @@ -0,0 +1,26 @@ +{ + config, + pkgs, + service_configs, + lib, + ... +}: +{ + imports = [ + (lib.serviceMountWithZpool "trilium-server" service_configs.zpool_ssds [ + (service_configs.services_dir + "/trilium") + ]) + ]; + + services.trilium-server = { + enable = true; + port = service_configs.ports.private.trilium.port; + host = "127.0.0.1"; + dataDir = service_configs.trilium.dataDir; + }; + + services.caddy.virtualHosts."notes.${service_configs.https.domain}".extraConfig = '' + import ${config.age.secrets.caddy_auth.path} + reverse_proxy :${toString service_configs.ports.private.trilium.port} + ''; +}