From 93ac4b118577461992442c476c34054b33e1391a Mon Sep 17 00:00:00 2001 From: Jordan Holt Date: Sun, 31 Mar 2024 19:46:37 +0100 Subject: [PATCH] Add photoprism module --- hosts/vps1/default.nix | 1 + modules/default.nix | 1 + modules/services/photoprism/default.nix | 43 +++++++++++++++++++++++++ 3 files changed, 45 insertions(+) create mode 100644 modules/services/photoprism/default.nix diff --git a/hosts/vps1/default.nix b/hosts/vps1/default.nix index dc71a98..8fc9ebb 100644 --- a/hosts/vps1/default.nix +++ b/hosts/vps1/default.nix @@ -62,6 +62,7 @@ headscale.enable = true; matrix-synapse.enable = true; nginx.enable = true; + photoprism.enable = true; }; }; diff --git a/modules/default.nix b/modules/default.nix index 37cbd2b..b4f7283 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -36,6 +36,7 @@ ./services/headscale ./services/matrix-synapse ./services/nginx + ./services/photoprism ./shell/git ./shell/zsh ]; diff --git a/modules/services/photoprism/default.nix b/modules/services/photoprism/default.nix new file mode 100644 index 0000000..3dbdcfe --- /dev/null +++ b/modules/services/photoprism/default.nix @@ -0,0 +1,43 @@ +{ config, lib, pkgs, inputs, ... }: + +with lib; + +let cfg = config.modules.services.photoprism; +in { + options.modules.services.photoprism = { + enable = mkOption { + default = false; + example = true; + }; + }; + + config = mkIf cfg.enable { + services.nginx = { + virtualHosts = { + "gallery.vimium.com" = { + forceSSL = true; + enableACME = true; + locations."/".proxyPass = "http://localhost:${config.services.photoprism.port}"; + }; + }; + }; + + age.secrets."passwords/services/photoprism/admin" = { + file = "${inputs.secrets}/passwords/services/photoprism/admin.age"; + }; + + services.photoprism = { + enable = true; + address = "localhost"; + passwordFile = config.age.secrets."passwords/services/photoprism/admin".path; + settings = { + PHOTOPRISM_APP_NAME = "Vimium Gallery"; + PHOTOPRISM_SITE_AUTHOR = "Vimium"; + PHOTOPRISM_SITE_TITLE = "Vimium Gallery"; + PHOTOPRISM_SITE_CAPTION = "See your photos and videos on gallery.vimium.com"; + PHOTOPRISM_DISABLE_TLS = true; + PHOTOPRISM_SPONSOR = true; + }; + }; + }; +}