New: the Homelab Planning Bundle. Both planners together for $19.99 instead of $27.98Save $7.99GET THE BUNDLE

Homelab Addiction

Self-Hosted / Projects / Immich

Immich

Stable
immich-app/immich116k7.2k10h agoMedia
DocsWebsiteSourceDemo

Specs verified August 23, 2026 · against vv3.1.0

Overview

Self-hosted Google Photos alternative for backup, browsing, search, and family libraries.

Immich is a self-hosted Google Photos alternative for people who want automatic phone backup, a fast web gallery, and private control over a growing photo and video library.

The real search task is not just “what is Immich,” but whether it can replace Google Photos, Synology Photos, or lighter gallery tools for households that want mobile-first backup without giving up ownership of their media.

Why people choose Immich

Official docs and the project site position Immich around mobile backup, browsing, sharing, and machine-learning assisted organization rather than as a simple static gallery. That is why it keeps showing up in self-hosted photo-stack comparisons.

For HomelabAddiction, local traffic data already shows real demand in the photo-storage cluster through existing Immich comparison pages. That makes a stronger, indexable project page useful as a category anchor instead of leaving the page hidden behind noindex.

What you get in the stack

Immich combines mobile apps, a browser UI, album sharing, duplicate prevention, map and metadata views, external-library support, and machine-learning powered features such as face or object search in one system.

The mobile-backup docs are especially important here: album selection, deduplication, background uploads, and one-way album synchronization are core reasons people choose Immich over more desktop-centric photo managers.

What to know before you deploy

Immich is not a tiny gallery tool. The official requirements page recommends Linux or another 64-bit Unix-like environment, at least 6 GB RAM and 2 CPU cores, with 8 GB and 4 cores preferred for a smoother experience.

The docs also stress that Postgres performance matters, local SSD-backed storage is preferred for the database, and Docker-in-LXC is not the recommended path for normal users. If you are trying to run a heavy photo archive in a constrained lab, those caveats matter before you deploy.

Backup is a major tradeoff. Immich creates database backups, but the docs explicitly warn that those dumps do not contain your photos or videos. You still need a real backup plan for the upload library as well as the database.

Best fit

Choose Immich when you want a polished self-hosted Google Photos replacement with strong phone-backup workflows, fast browsing, and room for a family or multi-user setup.

Compare PhotoPrism or LibrePhotos more closely when you care more about lighter browsing or a different curation workflow than about Immich’s mobile-first backup experience.

Quick deploy

Paste into docker-compose.yml and run docker compose up -d
docker-compose.yml
1#
2# WARNING: To install Immich, follow our guide: https://docs.immich.app/install/docker-compose
3#
4# Make sure to use the docker-compose.yml of the current release:
5#
6# https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
7#
8# The compose file on main may not be compatible with the latest release.
9
10name: immich
11
12services:
13 immich-server:
14 container_name: immich_server
15 image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
16 # extends:
17 # file: hwaccel.transcoding.yml
18 # service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
19 volumes:
20 # Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
21 - ${UPLOAD_LOCATION}:/data
22 - /etc/localtime:/etc/localtime:ro
23 env_file:
24 - .env
25 ports:
26 - '2283:2283'
27 depends_on:
28 - redis
29 - database
30 restart: always
31 healthcheck:
32 disable: false
33
34 immich-machine-learning:
35 container_name: immich_machine_learning
36 # For hardware acceleration, add one of -[armnn, cuda, rocm, openvino, rknn] to the image tag.
37 # Example tag: ${IMMICH_VERSION:-release}-cuda
38 image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
39 # extends: # uncomment this section for hardware acceleration - see https://docs.immich.app/features/ml-hardware-acceleration
40 # file: hwaccel.ml.yml
41 # service: cpu # set to one of [armnn, cuda, rocm, openvino, openvino-wsl, rknn] for accelerated inference - use the `-wsl` version for WSL2 where applicable
42 volumes:
43 - model-cache:/cache
44 env_file:
45 - .env
46 restart: always
47 healthcheck:
48 disable: false
49
50 redis:
51 container_name: immich_redis
52 image: docker.io/valkey/valkey:9@sha256:8e8d64b405ce18f41b8e5ee20aa4687a8ed0022d1298f2ce31cdcf3a76e09411
53 healthcheck:
54 test: redis-cli ping || exit 1
55 restart: always
56
57 database:
58 container_name: immich_postgres
59 image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:bcf63357191b76a916ae5eb93464d65c07511da41e3bf7a8416db519b40b1c23
60 environment:
61 POSTGRES_PASSWORD: ${DB_PASSWORD}
62 POSTGRES_USER: ${DB_USERNAME}
63 POSTGRES_DB: ${DB_DATABASE_NAME}
64 POSTGRES_INITDB_ARGS: '--data-checksums'
65 # Uncomment the DB_STORAGE_TYPE: 'HDD' var if your database isn't stored on SSDs
66 # DB_STORAGE_TYPE: 'HDD'
67 volumes:
68 # Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file
69 - ${DB_DATA_LOCATION}:/var/lib/postgresql/data
70 shm_size: 128mb
71 restart: always
72 healthcheck:
73 disable: false
74
75volumes:
76 model-cache:

Configuration

Environment variables

VariableWhat it doesExample
UPLOAD_LOCATIONrequiredPath on the host where uploaded photos and videos are stored../library
DB_DATA_LOCATIONrequiredPath on the host where the Postgres database files are stored../postgres
DB_PASSWORDrequiredLocal Postgres password used by the Immich stack.change-me-strong-password
IMMICH_VERSIONImmich release tag to deploy.v3.1.0
TZContainer timezone.UTC

Ports

  • 2283/tcp — Immich web interface and API

Volumes to back up

  • /data — Uploaded assets and generated media storage inside the immich-server container.
  • /var/lib/postgresql/data — Postgres database storage for Immich metadata.
  • /cache — Model cache used by the machine-learning container.

Interface previews

Screenshots of the Immich interface.

Feature support

Feature support in Immich
FeatureSupport
Automatic mobile photo and video backupOfficial mobile-backup docs cover automatic upload workflows from Android and iOS.Supported
Album selection and one-way album syncThe mobile app can mirror selected phone albums to server-side albums.Supported
Duplicate prevention during backupImmich computes checksums to skip assets already present on the server.Supported
Web gallery for browsing and sharingThe web app is part of the standard stack and supports modern browsing workflows.Supported
Shared albums and multi-user librariesImmich is built for more than a single-device personal gallery.Supported
Face and object searchAvailable through machine-learning features, which increase resource needs.Partial support
Map and metadata viewsOfficial feature documentation covers location and metadata-based browsing.Supported
External librariesSupported, but restore and mount layouts need more care than a basic upload-only setup.Partial support
Database backup from the appImmich can create database backups, but those backups do not include photo/video files.Supported
Version-matched mobile and server appsThe FAQ warns that login issues can occur when mobile and server versions do not match.Partial support

Community signals

Stars
116k
Forks
7.2k
Open issues
707

Includes open pull requests

Last commit
10h ago
Latest release
v3.3.1

3d ago

Repo created
Feb 2022

Refreshed nightly from the GitHub API.

Alternatives

  • PhotoPrism

    Common comparison for people who want self-hosted photo browsing and organization with a different workflow tradeoff.

  • LibrePhotos

    Alternative open source photo manager for self-hosters comparing search and organization options.

  • Google Photos

    The managed cloud service that many Immich users are actively trying to replace.

Questions

What is Immich used for?

Immich is used to self-host photo and video backup, browsing, sharing, and search from your own server instead of relying entirely on a cloud photo service.

Is Immich a self-hosted Google Photos alternative?

Yes. Immich is commonly deployed as a self-hosted Google Photos alternative because it combines automatic phone backup, a modern web gallery, and machine-learning assisted organization.

How much RAM does Immich need?

The official requirements page lists 6 GB RAM and 2 CPU cores as the minimum, with 8 GB and 4 cores recommended for a smoother experience. Systems with only 4 GB may need machine-learning features disabled.

Does Immich need Docker and PostgreSQL?

The official install path is Docker with the Compose plugin, and the standard deployment uses PostgreSQL. The docs emphasize that good Postgres performance and local storage matter for a stable setup.

Can Immich back up iPhone and Android photos automatically?

Yes, with caveats. The mobile-backup docs cover automatic uploads on both platforms, but background behavior depends on platform rules such as Android battery optimization and iOS Background App Refresh.

Do Immich backups include the actual photo files?

Not by default. Immich can create database backups, but the docs explicitly say those dumps do not include your uploaded photos and videos, so you still need filesystem backups.

Is Immich worth it over lighter gallery tools?

Immich is usually worth it when mobile backup and a polished Google Photos-style experience matter most. If you mainly want a lighter gallery or different archive workflow, alternatives like PhotoPrism or LibrePhotos can be easier to size and tune.

support // the lab

Found this write-up useful?

If it saved you time or a rebuild, you can support more practical homelab guides.

Support the lab