diff --git a/system/services/immich.nix b/system/services/immich.nix index 1ba6239e..a6764f9f 100644 --- a/system/services/immich.nix +++ b/system/services/immich.nix @@ -3,103 +3,110 @@ lib, pkgs, ... -}: { - virtualisation.oci-containers.containers.immich-database = { - image = "ghcr.io/immich-app/postgres:15-vectorchord0.3.0-pgvectors0.2.0"; - autoStart = true; +}: let + vectorchordVersion = "0.4.2"; + pgvectorsVersion = "0.2.0"; + immichVersion = "1.135.3"; +in { + virtualisation.oci-containers.containers = { + immich-database = { + # image = "ghcr.io/immich-app/postgres:15-vectorchord0.3.0-pgvectors0.2.0"; + image = "ghcr.io/immich-app/postgres:15-vectorchord${vectorchordVersion}-pgvectors${pgvectorsVersion}"; + autoStart = true; - dependsOn = []; + dependsOn = []; - ports = [ - # "5432:5432" - ]; + ports = [ + # "5432:5432" + ]; - volumes = [ - "immich-database_data:/var/lib/postgresql/data" - ]; + volumes = [ + "immich-database_data:/var/lib/postgresql/data" + ]; - environment = { - POSTGRES_USER = "immich"; - POSTGRES_PASSWORD = "immich"; - POSTGRES_DB = "immich"; + environment = { + POSTGRES_USER = "immich"; + POSTGRES_PASSWORD = "immich"; + POSTGRES_DB = "immich"; + }; + + extraOptions = [ + "--net=behind-nginx" + ]; }; - extraOptions = [ - "--net=behind-nginx" - ]; - }; + immich-redis = { + image = "redis"; + autoStart = true; - virtualisation.oci-containers.containers.immich-redis = { - image = "redis"; - autoStart = true; + login = { + # Uses DockerHub by default + # registry = ""; - login = { - # Uses DockerHub by default - # registry = ""; + # DockerHub Credentials + username = "christoph.urlacher@protonmail.com"; + passwordFile = "${config.sops.secrets.docker-password.path}"; + }; - # DockerHub Credentials - username = "christoph.urlacher@protonmail.com"; - passwordFile = "${config.sops.secrets.docker-password.path}"; + dependsOn = []; + + ports = [ + # "6379:6379" + ]; + + volumes = []; + + environment = {}; + + extraOptions = [ + "--net=behind-nginx" + ]; }; - dependsOn = []; + immich = { + image = "ghcr.io/imagegenius/immich:${immichVersion}"; + autoStart = true; - ports = [ - # "6379:6379" - ]; + dependsOn = [ + "immich-database" + "immich-redis" + ]; - volumes = []; + ports = [ + "2283:8080" + ]; - environment = {}; + volumes = [ + "immich_config:/config" + "immich_data:/photos" + "immich_machine-learning:/config/machine-learning" + # "immich_imports:/import:ro" + ]; - extraOptions = [ - "--net=behind-nginx" - ]; - }; + environment = { + PUID = "1000"; + PGID = "1000"; + TZ = "Europe/Berlin"; - virtualisation.oci-containers.containers.immich = { - image = "ghcr.io/imagegenius/immich:latest"; - autoStart = true; + DB_HOSTNAME = "immich-database"; + DB_USERNAME = "immich"; + DB_PASSWORD = "immich"; + # DB_PORT = "5432"; + DB_DATABASE_NAME = "immich"; - dependsOn = [ - "immich-database" - "immich-redis" - ]; + REDIS_HOSTNAME = "immich-redis"; + # REDIS_PORT = "6379"; + # REDIS_PASSWORD = ""; - ports = [ - "2283:8080" - ]; + MACHINE_LEARNING_WORKERS = "1"; + MACHINE_LEARNING_WORKER_TIMEOUT = "120"; + }; - volumes = [ - "immich_config:/config" - "immich_data:/photos" - "immich_machine-learning:/config/machine-learning" - # "immich_imports:/import:ro" - ]; - - environment = { - PUID = "1000"; - PGID = "1000"; - TZ = "Europe/Berlin"; - - DB_HOSTNAME = "immich-database"; - DB_USERNAME = "immich"; - DB_PASSWORD = "immich"; - # DB_PORT = "5432"; - DB_DATABASE_NAME = "immich"; - - REDIS_HOSTNAME = "immich-redis"; - # REDIS_PORT = "6379"; - # REDIS_PASSWORD = ""; - - MACHINE_LEARNING_WORKERS = "1"; - MACHINE_LEARNING_WORKER_TIMEOUT = "120"; + extraOptions = [ + # "--privileged" + "--device=nvidia.com/gpu=all" + "--net=behind-nginx" + ]; }; - - extraOptions = [ - # "--privileged" - "--device=nvidia.com/gpu=all" - "--net=behind-nginx" - ]; }; }