immich

immich

Docker app from imagegenius' Repository

Overview

Immich is a high performance self-hosted photo and video backup solution.

imagegenius/immich

GitHub Release GitHub Package Repository

Immich is a high performance self-hosted photo and video backup solution.

immich

Variants

Tag Description Platforms
latest Ubuntu + ML (CPU) amd64, arm64
noml Ubuntu, ML disabled (smaller image) amd64, arm64
cuda Ubuntu + ML with NVIDIA CUDA amd64
openvino Ubuntu + ML with Intel OpenVINO amd64

Pin a specific upstream Immich release with the semver tag, optionally with the variant suffix:

ghcr.io/imagegenius/immich:2.7.5
ghcr.io/imagegenius/immich:2.7.5-cuda

Requirements

Docker Mod for Redis

  • Set DOCKER_MODS=imagegenius/mods:universal-redis
  • Set REDIS_HOSTNAME=localhost

Usage

Docker Compose

---
services:
  immich:
    image: ghcr.io/imagegenius/immich:latest
    container_name: immich
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
      - DB_HOSTNAME=192.168.1.x
      - DB_USERNAME=postgres
      - DB_PASSWORD=postgres
      - DB_DATABASE_NAME=immich
      - REDIS_HOSTNAME=192.168.1.x
      - DB_PORT=5432 #optional
      - REDIS_PORT=6379 #optional
      - REDIS_PASSWORD= #optional
      - SERVER_HOST=0.0.0.0 #optional
      - SERVER_PORT=8080 #optional
      - MACHINE_LEARNING_HOST=0.0.0.0 #optional
      - MACHINE_LEARNING_PORT=3003 #optional
      - MACHINE_LEARNING_WORKERS=1 #optional
      - MACHINE_LEARNING_WORKER_TIMEOUT=120 #optional
    volumes:
      - path_to_appdata:/config
      - path_to_photos:/photos
      - path_to_libraries:/libraries #optional
    ports:
      - 8080:8080
    restart: unless-stopped

  valkey:
    image: valkey/valkey:8-bookworm
    container_name: valkey
    ports:
      - 6379:6379

  postgres14:
    image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0
    container_name: postgres14
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
      POSTGRES_DB: immich
      # Uncomment if not on SSDs:
      # DB_STORAGE_TYPE: 'HDD'
    volumes:
      - path_to_postgres:/var/lib/postgresql/data
    ports:
      - 5432:5432

Parameters

Parameter Function
-p 8080 WebUI Port
-e PUID=1000 UID for permissions — see below
-e PGID=1000 GID for permissions — see below
-e TZ=Etc/UTC Timezone, see this list
-e DB_HOSTNAME=192.168.1.x PostgreSQL host
-e DB_USERNAME=postgres PostgreSQL username
-e DB_PASSWORD=postgres PostgreSQL password
-e DB_DATABASE_NAME=immich PostgreSQL database
-e REDIS_HOSTNAME=192.168.1.x Redis/Valkey host
-e DB_PORT=5432 PostgreSQL port
-e REDIS_PORT=6379 Redis port
-e REDIS_PASSWORD= Redis password
-e SERVER_HOST=0.0.0.0 Immich server bind host
-e SERVER_PORT=8080 Immich server port
-e MACHINE_LEARNING_HOST=0.0.0.0 ML server bind host
-e MACHINE_LEARNING_PORT=3003 ML server port
-e MACHINE_LEARNING_WORKERS=1 ML worker count
-e MACHINE_LEARNING_WORKER_TIMEOUT=120 ML worker timeout
-v /config App config; ML model cache (~1.5GB with defaults)
-v /photos Immich photo library
-v /libraries External libraries to track

Hardware Acceleration

Intel (QSV / OpenVINO)

  • Mount /dev/dri into the container (--device=/dev/dri:/dev/dri).
  • For OpenVINO, verify CPU support; also add --device-cgroup-rule='c 189:* rmw' -v /dev/bus/usb:/dev/bus/usb.

NVIDIA (CUDA)

  1. Install the NVIDIA container toolkit.
  2. Run with --runtime=nvidia -e NVIDIA_VISIBLE_DEVICES=all or --gpus=all.

Existing Libraries

  • Mount the library folder at /libraries (or /libraries/<user> for multi-user).
  • In Immich admin settings, register /libraries (or per-user) as an external path.
  • In account settings, add a library pointing to /libraries or /libraries/<user>.

User / Group IDs & umask

Set PUID=1000 PGID=1000 to match volume ownership on the host (id user to find yours). Optionally UMASK=022 (works subtractively, not additively).

Updating

docker pull ghcr.io/imagegenius/immich:latest
docker stop immich && docker rm immich
# recreate with the same docker run parameters
docker image prune  # optional: remove dangling images

Or with compose: docker compose pull && docker compose up -d.

Support

How this image is built

This repo is built with GitHub Actions, based on the workflow shape from home-operations/containers.

  • The container starts from linuxserver/docker-baseimage-ubuntu.
  • Immich's upstream media dependency scripts run in this Dockerfile, then the app and variant stages build on top.
  • Variants are selected by docker-bake.hcl.
  • s6-overlay bits live under root/.
  • Renovate tracks Immich and build input bumps from the bake annotations.

Install Immich on Unraid in a few clicks.

Find Immich in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for Immich Review the template variables and paths Click Install

Requirements


PostgreSQL 14/15/16/17 with (https://github.com/tensorchord/VectorChord), Redis
This container requires an external application to be run separately.
You can also use a docker mods to start redis within the container,
Set `DOCKER_MODS=imagegenius/mods:universal-redis`, and `REDIS_HOSTNAME` to `localhost`.
    

Related apps

Explore more like this

Explore all

Details

Repository
ghcr.io/imagegenius/immich
Last Updated2026-07-17
First Seen2023-01-21

Runtime arguments

Web UI
http://[IP]:[PORT:8080]
Network
bridge
Shell
bash
Privileged
false

Template configuration

WebUIPorttcp

WebUI Port

Target
8080
Default
8080
AppdataPathrw

Contains machine learning models (~1.5GB with default models)

Target
/config
Path: /photosPathrw

Contains all the photos uploaded to Immich

Target
/photos
Path: /librariesPathrw

External libraries to track assets stored outside of Immich

Target
/libraries
DB_HOSTNAMEVariable

PostgreSQL Host

Default
192.168.1.x
DB_USERNAMEVariable

PostgreSQL Username

Default
postgres
DB_PASSWORDVariable

PostgreSQL Password

Default
postgres
DB_DATABASE_NAMEVariable

PostgreSQL Database Name

Default
immich
REDIS_HOSTNAMEVariable

Valkey/Redis Hostname

Default
192.168.1.x
DB_PORTVariable

PostgreSQL Port

Default
5432
REDIS_PORTVariable

Valkey/Redis Port

Default
6379
REDIS_PASSWORDVariable

Valkey/Redis password

SERVER_HOSTVariable

Immich server host

Default
0.0.0.0
SERVER_PORTVariable

Immich server port

Default
8080
MACHINE_LEARNING_HOSTVariable

Immich machine-learning host

Default
0.0.0.0
MACHINE_LEARNING_PORTVariable

Immich machine-learning port

Default
3003
MACHINE_LEARNING_WORKERSVariable

Machine learning workers

Default
1
MACHINE_LEARNING_WORKER_TIMEOUTVariable

Machine learning worker timeout

Default
120
PUIDVariable

UID for permissions. Do not change unless you know what you're doing.

Default
99
PGIDVariable

GID for permissions. Do not change unless you know what you're doing.

Default
100
UMASKVariable

UMASK for newly created files. Do not change unless you know what you're doing.

Default
022