{ config, pkgs, lib, ... }: { virtualisation.oci-containers.containers = { immich-server = { image = "ghcr.io/immich-app/immich-server:release"; volumes = [ "/storage/services/immich/upload:/data" "/etc/localtime:/etc/localtime:ro" ]; environmentFiles = [ "/etc/nixos/secrets/immich.env" ]; ports = [ "2283:2283" ]; dependsOn = [ "immich-redis" "immich-postgres" "immich-machine-learning" ]; environment = { DB_HOSTNAME = "immich-postgres"; DB_PORT = "5432"; DB_USERNAME = "immich"; DB_DATABASE_NAME = "immich_db"; REDIS_HOSTNAME = "immich-redis"; REDIS_PORT = "6379"; MACHINE_LEARNING_HOSTNAME = "immich-machine-learning"; UPLOAD_LOCATION = "/data"; TZ = "America/Los_Angeles"; }; }; immich-machine-learning = { image = "ghcr.io/immich-app/immich-machine-learning:release"; volumes = [ "/storage/services/immich/model-cache:/cache" ]; environmentFiles = [ "/etc/nixos/secrets/immich.env" ]; dependsOn = [ "immich-redis" "immich-postgres" ]; environment = { REDIS_HOSTNAME = "immich-redis"; REDIS_PORT = "6379"; DB_HOSTNAME = "immich-postgres"; DB_PORT = "5432"; DB_USERNAME = "immich"; DB_DATABASE_NAME = "immich_db"; TZ = "America/Los_Angeles"; }; }; immich-redis = { image = "docker.io/valkey/valkey:9@sha256:fb8d272e529ea567b9bf1302245796f21a2672b8368ca3fcb938ac334e613c8f"; volumes = [ "/var/lib/immich/redis-data:/data" ]; }; immich-postgres = { image = "ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:bcf63357191b76a916ae5eb93464d65c07511da41e3bf7a8416db3b44a"; volumes = [ "/var/lib/immich/postgres-data:/var/lib/postgresql/data" ]; environmentFiles = [ "/etc/nixos/secrets/immich.env" ]; environment = { POSTGRES_USER = "immich"; POSTGRES_DB = "immich_db"; POSTGRES_INITDB_ARGS = "--data-checksums"; }; }; }; }