Files
homelab/immich
forust d85bdf5dbd
ci / Compose (pull_request) Successful in 27s
ci / Workflows (pull_request) Successful in 14s
ci / Shell (pull_request) Successful in 34s
ci / Python and tests (pull_request) Successful in 19s
ci / YAML (pull_request) Successful in 17s
ci / Dockerfiles (pull_request) Successful in 6s
ci / Formatting (pull_request) Successful in 36s
ci / Kubernetes (pull_request) Successful in 14s
ci / image-plan (pull_request) Skipped
ci / Image (${{ matrix.name }}) (pull_request) Skipped
ci / build (pull_request) Skipped
renovate-ci / validate-renovate (pull_request_target) Successful in 3m13s
docs: sync service guides with current main
2026-10-08 21:23:46 +02:00
..

Immich

Photo library with its own vector-enabled PostgreSQL and machine-learning service.

This database is separate from the shared PostgreSQL instance. Keep the server and machine-learning versions aligned when upgrading.

Kubernetes bind-mounts /mnt/immich/library from the node. That directory must already exist and contain the intended library; moving the pod to a different node does not move the files. PostgreSQL and Valkey use StatefulSet storage, and the model cache has its own PVC.

Compose reads UPLOAD_LOCATION and DB_DATA_LOCATION from .env. The example uses the same library path as Kubernetes. Run one writer against that library; do not start both deployments as independent instances over the same files.

Back up the library and a consistent database dump together. The model cache can be rebuilt; the photo database cannot.

Inspect

From the repository root:

kubectl get pods,svc,pvc -n immich
kubectl get events -n immich --sort-by=.metadata.creationTimestamp

See the repository README for deployment selection.