|
@@ -1,8 +1,7 @@
|
|
|
-{ config, lib, pkgs, ... }:
|
|
|
|
|
|
|
+{ config, lib, ... }:
|
|
|
let
|
|
let
|
|
|
cfg = config.services.immich;
|
|
cfg = config.services.immich;
|
|
|
domain = "photos.t5.st";
|
|
domain = "photos.t5.st";
|
|
|
- go-avahi-cname = lib.getExe pkgs.unstable.go-avahi-cname;
|
|
|
|
|
in
|
|
in
|
|
|
{
|
|
{
|
|
|
services.immich = {
|
|
services.immich = {
|
|
@@ -43,54 +42,26 @@ in
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
services.caddy.virtualHosts.immich = {
|
|
services.caddy.virtualHosts.immich = {
|
|
|
- hostName = "http://photos.odin.local";
|
|
|
|
|
- serverAliases = [ "photos.odin.t5.st" ];
|
|
|
|
|
|
|
+ hostName = "photos.odin.t5.st";
|
|
|
extraConfig = ''
|
|
extraConfig = ''
|
|
|
encode gzip zstd
|
|
encode gzip zstd
|
|
|
reverse_proxy ${cfg.host}:${toString cfg.port}
|
|
reverse_proxy ${cfg.host}:${toString cfg.port}
|
|
|
'';
|
|
'';
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
- systemd.services.photos-local = {
|
|
|
|
|
- description = "Avahi photos.odin.local domain";
|
|
|
|
|
- wantedBy = [ "multi-user.target" ];
|
|
|
|
|
- after = [
|
|
|
|
|
- "network.target"
|
|
|
|
|
- "avahi-daemon.service"
|
|
|
|
|
- ];
|
|
|
|
|
- requires = [ "avahi-daemon.service" ];
|
|
|
|
|
-
|
|
|
|
|
- serviceConfig = {
|
|
|
|
|
- Type = "simple";
|
|
|
|
|
- User = "root";
|
|
|
|
|
- ExecStart = "${go-avahi-cname} cname photos";
|
|
|
|
|
- Restart = "always";
|
|
|
|
|
- RestartSec = "10";
|
|
|
|
|
- };
|
|
|
|
|
- };
|
|
|
|
|
|
|
+ systemd.tmpfiles = {
|
|
|
|
|
+ settings.immich."${cfg.mediaLocation}".e.mode =
|
|
|
|
|
+ lib.mkForce "0750";
|
|
|
|
|
|
|
|
- systemd.tmpfiles.rules = [
|
|
|
|
|
- "d /mnt/storage/immich 0770 immich storage - -"
|
|
|
|
|
- "d /var/cache/immich 0770 immich storage - -"
|
|
|
|
|
- "d /var/cache/immich/mpl 0700 immich storage - -"
|
|
|
|
|
- "d /var/cache/immich/encoded-video 0700 immich storage - -"
|
|
|
|
|
- "d /var/cache/immich/profile 0700 immich storage - -"
|
|
|
|
|
- "d /var/cache/immich/thumbs 0700 immich storage - -"
|
|
|
|
|
- ];
|
|
|
|
|
-
|
|
|
|
|
- system.activationScripts.createSymlink = ''
|
|
|
|
|
- ln -sf /var/cache/immich/encoded-video /mnt/storage/immich/encoded-video
|
|
|
|
|
- ln -sf /var/cache/immich/profile /mnt/storage/immich/profile
|
|
|
|
|
- ln -sf /var/cache/immich/thumbs /mnt/storage/immich/thumbs
|
|
|
|
|
- '';
|
|
|
|
|
-
|
|
|
|
|
- services.samba.settings = {
|
|
|
|
|
- christine-photos = {
|
|
|
|
|
- "path" = "/mnt/storage/immich/library/3aaaf0a1-011e-450d-a47c-4a320deb93e5";
|
|
|
|
|
- "browseable" = "yes";
|
|
|
|
|
- "read only" = "yes";
|
|
|
|
|
- "valid users" = "christine";
|
|
|
|
|
- "force user" = "immich";
|
|
|
|
|
- };
|
|
|
|
|
|
|
+ rules = [
|
|
|
|
|
+ "d /var/cache/immich 0750 immich storage - -"
|
|
|
|
|
+ "d /var/cache/immich/mpl 0750 immich storage - -"
|
|
|
|
|
+ "d /var/cache/immich/encoded-video 0750 immich storage - -"
|
|
|
|
|
+ "d /var/cache/immich/profile 0750 immich storage - -"
|
|
|
|
|
+ "d /var/cache/immich/thumbs 0750 immich storage - -"
|
|
|
|
|
+ "L+ /var/cache/immich/encoded-video - - - - /mnt/storage/immich/encoded-video"
|
|
|
|
|
+ "L+ /var/cache/immich/profile - - - - /mnt/storage/immich/profile"
|
|
|
|
|
+ "L+ /var/cache/immich/thumbs - - - - /mnt/storage/immich/thumbs"
|
|
|
|
|
+ ];
|
|
|
};
|
|
};
|
|
|
}
|
|
}
|