{ config, ... }: let storageDir = "/media/draupner/immich-media"; in { services.immich = { enable = true; mediaLocation = storageDir; accelerationDevices = [ "/dev/dri/renderD128" ]; database = { enableVectors = false; enableVectorChord = true; }; # settings.server.externalDomain = "immich.0m.nu"; }; systemd.tmpfiles.rules = [ "d ${storageDir} 750 immich immich" ]; services.nginx = { enable = true; virtualHosts."immich.oden.m" = { extraConfig = '' client_max_body_size 50000M; proxy_read_timeout 600s; proxy_send_timeout 600s; send_timeout 600s; ''; locations."/" = { proxyPass = "http://localhost:${toString config.services.immich.port}"; proxyWebsockets = true; }; listen = [ { addr = "10.69.0.1"; port = 80; } ]; }; }; networking.firewall.allowedTCPPorts = [ 80 ]; # services.immich-public-proxy = { }; }