From 1c01174df471c2d6533e912c7f52737d23c8d49b Mon Sep 17 00:00:00 2001 From: xinyangli Date: Sun, 6 Apr 2025 22:21:16 +0800 Subject: [PATCH] weilite/webdav: init --- machines/weilite/default.nix | 7 +++++ machines/weilite/services/default.nix | 1 + machines/weilite/services/immich.nix | 14 ++-------- machines/weilite/services/webdav.nix | 37 +++++++++++++++++++++++++++ 4 files changed, 47 insertions(+), 12 deletions(-) create mode 100644 machines/weilite/services/webdav.nix diff --git a/machines/weilite/default.nix b/machines/weilite/default.nix index 7f88d95..9b9d442 100644 --- a/machines/weilite/default.nix +++ b/machines/weilite/default.nix @@ -102,6 +102,13 @@ type = "virtiofs"; options = "rw,nodev,nosuid"; } +{ + what = "originals"; + where = "/mnt/photos/xin/originals"; + type = "virtiofs"; + options = "rw,nodev,nosuid"; + wantedBy = [ "immich-server.service" ]; + } { what = "/mnt/nixos/ocis"; where = "/var/lib/ocis"; diff --git a/machines/weilite/services/default.nix b/machines/weilite/services/default.nix index 649ca08..c0a3ef9 100644 --- a/machines/weilite/services/default.nix +++ b/machines/weilite/services/default.nix @@ -7,5 +7,6 @@ ./immich.nix ./jellyfin.nix ./transmission.nix + ./webdav.nix ]; } diff --git a/machines/weilite/services/immich.nix b/machines/weilite/services/immich.nix index 25e403f..3346e8c 100644 --- a/machines/weilite/services/immich.nix +++ b/machines/weilite/services/immich.nix @@ -86,16 +86,6 @@ in ''; }; - systemd.mounts = [ - { - what = "originals"; - where = "/mnt/immich/external-library/xin"; - type = "virtiofs"; - options = "ro,nodev,nosuid"; - wantedBy = [ "immich-server.service" ]; - } - ]; - systemd.timers.immich-auto-stack = { enable = true; wantedBy = [ "immich-server.service" ]; @@ -135,8 +125,8 @@ in systemd.services.immich-server = { serviceConfig = { - ReadWritePaths = [ - "/mnt/immich/external-library/xin" + BindReadOnlyPaths = [ + "/mnt/photos/xin/originals:/mnt/immich/external-library/xin" ]; Environment = "IMMICH_CONFIG_FILE=${config.sops.templates."immich/config.json".path}"; }; diff --git a/machines/weilite/services/webdav.nix b/machines/weilite/services/webdav.nix new file mode 100644 index 0000000..58fb369 --- /dev/null +++ b/machines/weilite/services/webdav.nix @@ -0,0 +1,37 @@ +{ config, ... }: +{ + + sops.secrets = { + "webdav/photosync/password" = { }; + }; + + sops.templates."webdav.env" = { + content = '' + PHOTOSYNC_PASSWORD=${config.sops.placeholder."webdav/photosync/password"} + ''; + }; + + services.webdav = { + enable = true; + settings = { + permissions = "RC"; + behindProxy = true; + users = [ + { + username = "photosync"; + password = "{ENV}PHOTOSYNC_PASSWORD"; + } + ]; + }; + environmentFile = config.sops.templates."webdav.env".path; + }; + + systemd.services.webdav.serviceConfig = { + BindReadOnlyPaths = [ + "/mnt/photos/xin/originals:%t/webdav/photosync" + ]; + RuntimeDirectory = "webdav"; + WorkingDirectory = "%t/webdav"; + }; + +}