83 lines
1.9 KiB
Nix
83 lines
1.9 KiB
Nix
{ config, ... }:
|
|
|
|
let
|
|
workDir = "/srv/containers/immich";
|
|
dataDir = "/srv/data/immich";
|
|
nextcloudDir = "/srv/data/nextcloud";
|
|
in
|
|
{
|
|
systemd.tmpfiles.rules = [
|
|
"d ${workDir}/cache 2770 root admin"
|
|
"d ${workDir}/postgres 0700 999 999"
|
|
"d ${dataDir} 2770 root admin"
|
|
];
|
|
|
|
virtualisation.oci-containers.containers = {
|
|
immich = {
|
|
autoStart = true;
|
|
image = "ghcr.io/immich-app/immich-server:v2";
|
|
|
|
ports = [
|
|
"0.0.0.0:10008:2283"
|
|
];
|
|
|
|
volumes = [
|
|
"${dataDir}:/usr/src/app/upload"
|
|
"${nextcloudDir}:/external/nextcloud:ro"
|
|
];
|
|
|
|
environment = {
|
|
TZ = "Europe/Bucharest";
|
|
DB_HOSTNAME = "immich-db";
|
|
REDIS_HOSTNAME = "immich-redis";
|
|
IMMICH_MACHINE_LEARNING_URL = "http://immich-machine-learning:3003";
|
|
#DB_STORAGE_TYPE: "HDD";
|
|
};
|
|
|
|
environmentFiles = [
|
|
config.age.secrets.immich.path
|
|
];
|
|
|
|
extraOptions = [
|
|
"--group-add=10000"
|
|
];
|
|
|
|
dependsOn = [
|
|
"immich-db"
|
|
"immich-redis"
|
|
"immich-machine-learning"
|
|
];
|
|
};
|
|
|
|
immich-machine-learning = {
|
|
autoStart = true;
|
|
|
|
image = "ghcr.io/immich-app/immich-machine-learning:v2";
|
|
|
|
volumes = [
|
|
"${workDir}/cache:/cache"
|
|
];
|
|
};
|
|
|
|
immich-redis = {
|
|
autoStart = true;
|
|
|
|
image = "redis:8-alpine";
|
|
};
|
|
|
|
immich-db = {
|
|
autoStart = true;
|
|
|
|
image = "ghcr.io/immich-app/postgres:17-vectorchord0.5.3";
|
|
|
|
environmentFiles = [
|
|
config.age.secrets.immich-db.path
|
|
];
|
|
|
|
volumes = [
|
|
"${workDir}/postgres:/var/lib/postgresql/data"
|
|
];
|
|
};
|
|
};
|
|
}
|