{ service_configs, pkgs, config, username, serviceMountDeps, ... }: { imports = [ (serviceMountDeps "immich-server" [ config.services.immich.mediaLocation ] pkgs) (serviceMountDeps "immich-machine-learning" [ config.services.immich.mediaLocation ] pkgs) ]; services.immich = { enable = true; mediaLocation = service_configs.immich.dir; port = service_configs.ports.immich; # openFirewall = true; host = "0.0.0.0"; database = { createDB = false; }; }; services.caddy.virtualHosts."immich.${service_configs.https.domain}".extraConfig = '' reverse_proxy :${builtins.toString config.services.immich.port} ''; systemd.tmpfiles.rules = [ "d ${config.services.immich.mediaLocation} 0770 ${config.services.immich.user} ${config.services.immich.group}" ]; environment.systemPackages = with pkgs; [ immich-go ]; users.users.${config.services.immich.user}.extraGroups = [ "video" "render" ]; users.users.${username}.extraGroups = [ config.services.immich.group ]; }