1
Files
flake-nixinator/system/services/immich.nix

113 lines
2.3 KiB
Nix

{
config,
lib,
pkgs,
...
}: let
vectorchordVersion = "0.4.2";
pgvectorsVersion = "0.2.0";
immichVersion = "1.136.0";
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 = [];
ports = [
# "5432:5432"
];
volumes = [
"immich-database_data:/var/lib/postgresql/data"
];
environment = {
POSTGRES_USER = "immich";
POSTGRES_PASSWORD = "immich";
POSTGRES_DB = "immich";
};
extraOptions = [
"--net=behind-nginx"
];
};
immich-redis = {
image = "redis";
autoStart = true;
login = {
# Uses DockerHub by default
# registry = "";
# DockerHub Credentials
username = "christoph.urlacher@protonmail.com";
passwordFile = "${config.sops.secrets.docker-password.path}";
};
dependsOn = [];
ports = [
# "6379:6379"
];
volumes = [];
environment = {};
extraOptions = [
"--net=behind-nginx"
];
};
immich = {
image = "ghcr.io/imagegenius/immich:${immichVersion}";
autoStart = true;
dependsOn = [
"immich-database"
"immich-redis"
];
ports = [
"2283:8080"
];
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"
];
};
};
}