immich-server-cpu
ghcr.io/immich-app/immich-server:release
https://github.com/immich-app/immich/pkgs/container/immich-server
immich_internal
bash
false
https://github.com/immich-app/immich/issues
https://immich.app
Immich – self-hosted photo and video management. High-performance backup solution with machine learning powered search, face recognition, and automatic organization.
This is the main server component (CPU-only, no GPU transcoding). It requires a PostgreSQL database with VectorChord/pgvector, a Valkey/Redis instance, and the Immich Machine Learning service.
For hardware-accelerated video transcoding, use immich-server-qsv-vaapi (Intel/AMD) or immich-server-nvenc (NVIDIA) instead.
Storage layout: This template splits storage between HDD (Array) and SSD (Cache) for optimal performance. Large, rarely-accessed files (uploads, backups, library) go on the Array. Frequently-accessed generated files (thumbnails, encoded video, profile) go on the Cache.
All Immich containers should be on the same Docker network so they can communicate by container name.
Docs: https://docs.immich.app
MediaApp:Photos Status:Stable
http://[IP]:[PORT:2283]
https://raw.githubusercontent.com/rorar/unraid-templates/main/templates/immich-server.xml
https://raw.githubusercontent.com/rorar/unraid-templates/main/templates/docker_icons/immich-logo.png
--health-cmd="wget --no-verbose --tries=1 --spider http://localhost:2283/api/server/ping || exit 1" --health-interval=10s --health-retries=5 --health-start-period=60s --health-timeout=5s
This template uses your CPU for video encoding. For hardware accelerated video encoding, use one of the template that fits your (i)GPU. Requires: immich-vectorchord-db (or compatible PostgreSQL with VectorChord/pgvector), immich-valkey, and immich-machine-learning containers on the same Docker network.
Before deploying, create two Unraid shares (Shares tab → Add Share):
1. Share 'immich' – Stores your photo and video library, uploads, and backups.
Share name: immich
Comments: Immich photo and video library, as well as backups and uploads.
Minimum free space: 10GB (setting too low may lead to issues with uploads and backups if the share runs out of space)
Primary storage: Array
Allocation method: High-Water
Split level: Automatically split any directory as required
Included disk(s): All (you can exclude disks to dedicate them for other purposes or if you have untrusted disks)
Excluded disk(s): None
2. Share 'immich-gen' – Stores generated files: thumbnails, encoded videos, and profile data.
Share name: immich-gen
Comments: Immich generated files (thumbnails, encoded videos) and profile.
Minimum free space: 10GB (setting too low may lead to issues with thumbnail generation and video encoding if the share runs out of space)
Primary storage: Cache (SSD/NVMe)
Secondary storage: Array (HDD – fallback in case the cache runs out of space, but ideally keep immich-gen on the cache for optimal performance)
Allocation method: High-Water
Split level: Automatically split any directory as required
Included disk(s): All (you can exclude disks to dedicate them for other purposes or if you have untrusted disks)
Excluded disk(s): None
Mover action: Cache → Array
Full setup guide: https://rorar.github.io/immich-unraid-manual/
2283
/mnt/user/immich/upload/
/mnt/user/immich/backups/
/mnt/user/immich/library/
/mnt/user/immich-gen/thumbs/
/mnt/user/immich-gen/encoded-video/
/mnt/user/immich-gen/profile/
immich-vectorchord-db
5432
postgres
postgres
immich
immich-valkey
6379
Europe/Berlin
/etc/localtime
log