How to Install Immich Photo Backup
Replace Google Photos with self-hosted Immich — automatic mobile backup, ML-powered search, and a plan for storage and backups.
What you'll build
Immich is a self-hosted photo and video solution with slick mobile apps, automatic phone backup, face recognition and fast search. It's the closest open-source experience to Google Photos, but your memories stay on your own hardware.
Before you start
- Storage: budget for your whole library plus growth. Photos add up fast — many families need hundreds of gigabytes.
- RAM/CPU: machine-learning features (search, face detection) benefit from a few GB of RAM and, ideally, a modern CPU or GPU.
- A backup plan: Immich is your library, not a backup of it. You still need offsite copies.
Step 1: Get the official Compose files
Immich publishes a maintained Compose file and env file. Create a folder and fetch them:
mkdir immich && cd immich
wget -O compose.yaml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.envStep 2: Configure the environment
Edit .env and set at least:
UPLOAD_LOCATION=/mnt/photos/immich # where originals are stored
DB_PASSWORD=change-me-strong
TZ=Europe/ParisPoint UPLOAD_LOCATION at the drive or NAS mount with room to grow. The stack includes the Immich server, machine-learning container, PostgreSQL and Redis.
Step 3: Start Immich
docker compose up -d
docker compose logs -f immich-serverWhen it settles, open http://your-server-ip:2283 and create the admin account (the first user is the admin).
Step 4: Set up the mobile apps
Install Immich from the App Store / Play Store. Point it at your server URL and log in, then enable Backup:
- Choose which albums to back up (Camera roll at minimum).
- Enable background backup and backup over Wi-Fi only if you want to save mobile data.
- Enable foreground/again for immediate first sync.
Your phone now auto-uploads new photos to your server, freeing you from Google Photos.
Step 5: Enable the good stuff
- Machine learning: face recognition and smart search run in the ML container. On a modest CPU this is fine for a personal library; large libraries benefit from a GPU.
- External libraries: point Immich at existing folders of photos (read-only) so it can index your archive without re-uploading.
- Sharing: create shared albums for family without giving them accounts.
Step 6: Storage and backup strategy
This is the part people skip and regret. Immich stores originals in UPLOAD_LOCATION and metadata in PostgreSQL. To protect both:
- Back up the database with a scheduled
pg_dumpfrom the Postgres container. - Back up the upload folder with Restic or Duplicati to an offsite target.
- Follow the 3-2-1 rule — a NAS copy plus an offsite copy.
Important: read the release notes
Immich moves fast and occasionally makes breaking changes between versions. Pin a version rather than using :latest, and read the release notes before upgrading. Always have a working backup before you update.
Troubleshooting
- Uploads fail on large videos — increase your reverse proxy's max body size.
- ML features slow or crashing — give the ML container more RAM, or disable smart search on very weak hardware.
- App can't connect — verify the server URL, and use HTTPS via a reverse proxy for remote use.
Next steps
Pair Immich with Nextcloud for documents, and expose both securely through a VPN or reverse proxy rather than opening ports directly.
Verwandte Artikel
How to Set Up Jellyseerr for Media Requests
Give your household a clean way to request movies and shows that flow automatically into your Jellyfin or Plex library.
Jellyfin-Medienserver einrichten
Installiere Jellyfin mit Docker und streame deine Filme, Serien und Musik kostenlos auf alle Geräte.
The *arr Stack: Automate Your Media Library
How Sonarr, Radarr, Prowlarr and a download client work together to build a hands-off media server.