server-config/services/immich.nix

44 lines
1.1 KiB
Nix

{
service_configs,
pkgs,
config,
lib,
...
}:
{
imports = [
(lib.serviceMountDeps "immich-server" [ config.services.immich.mediaLocation ])
(lib.serviceMountDeps "immich-machine-learning" [ config.services.immich.mediaLocation ])
(lib.serviceDependZpool "immich-server" service_configs.zpool_ssds)
(lib.serviceDependZpool "immich-machine-learning" service_configs.zpool_ssds)
];
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 = [
"Z ${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"
];
}