nixconfig/modules/containers/docker/immich.nix
2026-01-14 04:23:51 -08:00

69 lines
No EOL
2.2 KiB
Nix

{ 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";
};
# Removed user = "immich";
};
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";
};
# Removed user = "immich";
};
immich-redis = {
image = "docker.io/valkey/valkey:9@sha256:fb8d272e529ea567b9bf1302245796f21a2672b8368ca3fcb938ac334e613c8f";
volumes = [
"/var/lib/immich/redis-data:/data"
];
# Removed user = "redis";
};
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";
};
user = "999"; # Explicitly set UID for postgres user
};
};
}