3.8 KiB
Dokumentation: Immich Setup auf CachyOS (LXC) mit Podman Quadlets
Status: Initiales Setup abgeschlossen, Web-Interface erreichbar. Datum: 24. Mai 2026 Besonderheit: Nutzung der Intel Arc A310 für Hardware-Transcoding und KI (OpenVINO), sowie VectorChord als High-Performance Vektorsuche.
1. Verzeichnisstruktur & Berechtigungen
Die Daten liegen persistent auf einem gemounteten ZFS-Pool (oder Host-Mount) unter /mnt/immich-data.
# Verzeichnisse anlegen
mkdir -p /mnt/immich-data/{upload,database,redis,cache}
# Rechte setzen (LXC-Root entspricht Host-User je nach ID-Mapping)
chown -R root:root /mnt/immich-data
chmod -R 755 /mnt/immich-data
2. Netzwerk-Konfiguration
Ein dediziertes Podman-Netzwerk für die interne Kommunikation der Container.
Datei: /etc/containers/systemd/immich-net.network
[Network]
NetworkName=immich-net
3. Datenbank (PostgreSQL + VectorChord)
Einsatz des modernsten Vektor-Index-Algorithmus für die Bildsuche.
Datei: /etc/containers/systemd/immich-db.container
[Container]
ContainerName=immich-db
Image=docker.io/tensorchord/vchord-postgres:pg16-v1.1.1
Environment=POSTGRES_USER=postgres
Environment=POSTGRES_PASSWORD=[Dein_Passwort]
Environment=POSTGRES_DB=immich
Volume=/mnt/immich-data/database:/var/lib/postgresql/data:Z
Network=immich-net
[Service]
Restart=always
[Install]
WantedBy=multi-user.target
4. Redis (Cache)
Datei: /etc/containers/systemd/immich-redis.container
[Container]
ContainerName=immich-redis
Image=docker.io/library/redis:7-alpine
Volume=/mnt/immich-data/redis:/data:Z
Network=immich-net
[Service]
Restart=always
[Install]
WantedBy=multi-user.target
5. Machine Learning (OpenVINO + Intel GPU)
Optimiert für die Intel Arc A310 GPU zur Gesichtserkennung und Objekterkennung.
Datei: /etc/containers/systemd/immich-ml.container
[Container]
ContainerName=immich-ml
Image=ghcr.io/immich-app/immich-machine-learning:release-openvino
Volume=/mnt/immich-data/cache:/cache:Z
Network=immich-net
# GPU-Passthrough
AddDevice=/dev/dri/card0:/dev/dri/card0
AddDevice=/dev/dri/renderD128:/dev/dri/renderD128
[Service]
Restart=always
[Install]
WantedBy=multi-user.target
6. Immich Server (Hauptapplikation)
Hardware-Transcoding aktiviert; OIDC aktuell noch deaktiviert für Ersteinrichtung.
Datei: /etc/containers/systemd/immich-server.container
[Container]
ContainerName=immich-server
Image=ghcr.io/immich-app/immich-server:release
Volume=/mnt/immich-data/upload:/usr/src/app/upload:Z
Network=immich-net
PublishPort=2283:2283
# GPU-Passthrough für Video-Transcoding
AddDevice=/dev/dri/card0:/dev/dri/card0
AddDevice=/dev/dri/renderD128:/dev/dri/renderD128
# Umgebungsvariablen
Environment=DB_HOSTNAME=immich-db
Environment=DB_USERNAME=postgres
Environment=DB_PASSWORD=[Dein_Passwort]
Environment=DB_DATABASE_NAME=immich
Environment=REDIS_HOSTNAME=immich-redis
Environment=IMMICH_MACHINE_LEARNING_URL=http://immich-ml:3003
# OIDC Vorbereitung (aktuell deaktiviert)
Environment=IMMICH_OIDC_ENABLED=false
[Service]
Restart=always
[Install]
WantedBy=multi-user.target
7. Management & Monitoring
Portainer Agent zur Überwachung der Container-Struktur.
Datei: /etc/containers/systemd/portainer-agent.container
[Container]
ContainerName=portainer_agent
Image=docker.io/portainer/agent:latest
PublishPort=9001:9001
Volume=/run/podman/podman.sock:/var/run/docker.sock
Volume=/var/lib/containers/storage/volumes:/var/lib/docker/volumes
[Service]
Restart=always
[Install]
WantedBy=multi-user.target
8. Befehle zur Verwaltung
- Neu einlesen:
systemctl daemon-reload - Starten:
systemctl start immich-server portainer-agent - Status prüfen:
podman ps - Logs einsehen:
podman logs -f immich-server