Immich – Stable GPU Deployment Guide (v1.105.0)
Stable Pinned Versions Docker NVIDIA GPU TensorRT 2025
This guide installs a fully GPU‑accelerated Immich stack using pinned, stable versions for long‑term reproducibility. Version used: Immich v1.105.0 — a proven, stable baseline.
1. Install Docker
sudo apt update
sudo apt install -y ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) \
signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
2. Install NVIDIA GPU Drivers
sudo apt install -y nvidia-driver-535
sudo reboot
3. Install NVIDIA Container Toolkit
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | \
sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit.gpg] https://#' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt update
sudo apt install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
4. Verify GPU passthrough
docker run --rm --gpus all nvidia/cuda:12.2.0-base nvidia-smi
5. Create Immich directory
mkdir -p /opt/immich
cd /opt/immich
6. Create .env
IMMICH_VERSION=v1.105.0
DB_USERNAME=immich
DB_PASSWORD=immich
DB_DATABASE_NAME=immich
7. Stable docker-compose.yml (Pinned Versions)
services:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:v1.105.0
depends_on:
- redis
- database
env_file:
- .env
volumes:
- immich_upload:/usr/src/app/upload
restart: always
immich-machine-learning:
container_name: immich_machine_learning
image: ghcr.io/immich-app/immich-machine-learning:v1.105.0-cuda
env_file:
- .env
volumes:
- model-cache:/cache
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
restart: always
redis:
container_name: immich_redis
image: redis:7.2.4
restart: always
database:
container_name: immich_postgres
image: tensorchord/pgvecto-rs:pg14-v0.2.0
environment:
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_DB: ${DB_DATABASE_NAME}
volumes:
- pgdata:/var/lib/postgresql/data
restart: always
volumes:
immich_upload:
pgdata:
model-cache:
8. Start Immich
docker compose up -d
9. Access Immich
- Local / Signal Raider: http://localhost:2283
- Johannes: via HAProxy backend
10. GPU verification inside Immich
- Settings → Machine Learning
- CUDA should show as available
- Indexing photos should use the GPU heavily
Versioning Philosophy
This deployment uses pinned, stable versions instead of floating tags like
latest or release. Pinned versions ensure that every user following this guide gets the exact same behavior, even months later.Immich evolves quickly, and floating tags can introduce unexpected changes:
- schema migrations may change
- Postgres vector extensions may update
- CUDA builds may shift
- ML models may be replaced
- container tags may be removed or made private
By pinning versions:
- deployments become reproducible
- tutorials remain accurate over time
- users avoid surprise breakage
- debugging becomes consistent
- future upgrades can be planned instead of forced
This configuration is marked as not yet tested at the time of publication. Each component has been validated individually, but the combined pinned stack will be fully tested on Signal Raider before being marked production‑ready.
Once validated, this section will be updated to:
- ✔ Fully tested on Signal Raider
- ✔ Production‑ready for Johannes
This approach ensures that every guide on i9.nu remains trustworthy, predictable, and aligned with real‑world deployments.
Комментариев нет