Self-host Immich: I measured what Google Photos replacement actually costs in RAM
Description and use
Self-hosting Immich needs over 4 GB free RAM and ~5 GB disk. The stack uses ~2.4 GB RAM, and ML search runs on CPU in 2.2 s. Removing the ML service saves memory but loses smart search and face recognition.
Problem
Deploying a self-hosted Google Photos replacement that requires significant RAM and disk, making it unsuitable for low-resource environments.
Outcome
Immich’s total working set is ~2.4 GB RAM (server 962 MB, ML 928 MB, Postgres 465 MB, Valkey 14 MB). Disk usage for 5 photos is 4.7 GB. ML search runs on CPU in ~2.2 s. The stack requires 4 GB+ free RAM and ~5 GB disk before photos, making it unsuitable for very small VPS or free-tier PaaS options.
Workflow
- Download official docker‑compose.yml and example.env from Immich releases
- Edit .env: set DB_PASSWORD to an alphanumeric value, set TZ, and set UPLOAD_LOCATION to a large disk
- Run docker compose up -d to pull images (~4.7 GB) and start containers
- Create admin account via http://localhost:2283 and complete onboarding
- Upload photos via API or mobile backup
- Use ML smart search and face recognition features
Evidence
Immich is a four-container stack that wants gigabytes.
Our measured working set was ~2.4 GB across the stack, with spikes during ML processing
4.7 GB of images
"sunset over water" → correct photo ranked #1, 2.2 s on CPU
Special characters in DB_PASSWORD break the connection string — the env file warns you; believe it.
- Record date: 2026-11-02T00:59:03.865Z