How to self-host Immich in 2026: Google Photos alternative

Immich is the Google Photos alternative with 60,000 GitHub stars. Mobile apps for iOS and Android, ML-powered face recognition and object detection, runs entirely on your server. Three ways to self-host — plus the storage math nobody mentions.

Dmytro Chervonyi

Dmytro Chervonyi

Co-founder & CMO, livemy.app

Last updated

9

min.

Reading time

TABLE OF CONTENTS

item

How to self-host Immich in 2026 (Google Photos alt)

AI Summary

Immich is the open-source Google Photos alternative — 60,000+ GitHub stars in 2026, native iOS and Android apps that auto-backup your phone's camera roll, machine learning for facial recognition and object detection, full-text search on photo content. Google Photos paid storage runs $1.99/month for 100 GB, $2.99 for 200 GB, $9.99 for 2 TB. Immich self-hosted is free — you pay only for the server and storage. The catch: photo backup needs real storage (10–20 GB per person per year is normal), and the ML processing benefits from a GPU at scale. This guide walks the three self-host paths, the multi-container architecture (server, ML container, PostgreSQL, Redis), the mobile app setup, and the five things that quietly break self-hosted Immich.

What Immich is and why people self-host it

Immich is open-source photo and video management — the closest thing to Google Photos that runs on your own server. 60,000+ GitHub stars in 2026, native iOS and Android apps with background auto-backup, machine learning for face recognition and object detection, full-text search on photo content ("show me beach photos from 2023").

Three reasons people self-host instead of using Google Photos.

Privacy. Personal photos — family, kids, intimate moments — stay on your server. Not on Google's servers, not scanned for content moderation, not analyzed for advertising.

Storage costs grow with photos. Google One is $1.99–9.99/month and you keep paying as the photo library grows. Immich self-hosted is a one-time hardware cost (or a flat monthly server bill) regardless of library size.

Family multi-user without per-user fees. Immich lets a household share one instance, each user with their own private timeline plus shared albums. Google One's family plan exists but is more constrained.

What Immich needs to run (heaviest in this guide)

Immich's architecture has more moving parts than most self-host apps.

  • Immich server — the main app, handles uploads and the web UI

  • Immich ML container — runs the machine learning models for face recognition and object detection (significant memory; GPU acceleration optional)

  • PostgreSQL — with the pgvecto.rs extension for vector search (this is unusual; not every Postgres works)

  • Redis — background job queue and caching

  • Storage — the photos themselves. Plan for 10–20 GB per person per year

Minimum realistic spec: 4 GB RAM, 2 vCPU, plus storage for the photo library. ML processing is memory-hungry but optional — you can disable it for a lighter setup.

Three ways to self-host Immich

Path A: Docker Compose on a home server or VPS

The most common path. Immich's official docker-compose.yml bundles all four containers (server, ML, Postgres, Redis). Run it on a home server (NAS or mini PC) for cheap storage, or on a VPS with attached storage volume.

Home server math: a Synology NAS or similar with 4 TB drive runs Immich for an entire household for a one-time hardware cost.

VPS math: $20–40/month for a 2–4 TB block storage volume plus compute on a host like Hetzner.

Path B: Managed Docker host (Coolify, Dokploy) with object storage

Same containers but on a managed Docker UI, with photos offloaded to S3-compatible object storage (Backblaze B2, Cloudflare R2 — way cheaper than VPS block storage at scale).

Cost math: $10–20 VPS + $6/TB/month Backblaze B2 = $16–40/month for terabytes of photo storage.

Path C: livemy.app one-click deploy

Pick the Immich template. livemy.app provisions Postgres + Redis + ML container + storage volume.

Catch with livemy.app: the Maker plan includes generous storage but not unlimited. For libraries beyond 100 GB, scale up to Pro or use the Backblaze B2 offload option (livemy.app's Immich template supports S3-compatible storage as a target).

From zero to Immich on livemy.app (about 4 minutes)

Step 1: Sign up at livemy.app, pick Maker or Pro

Go to livemy.app, Start free, pick Maker ($20/month) for smaller libraries or Pro for larger ones with more storage included.

Step 2: Deploy from the Immich template

In the dashboard: New projectTemplateImmich. livemy.app provisions all four containers (server, ML, Postgres with pgvecto.rs, Redis) plus persistent storage.

Step 3: Configure environment variables

Under Project Settings → Environment Variables:

  • DB_URL — PostgreSQL connection (auto-populated)

  • REDIS_HOSTNAME — Redis hostname (auto-populated)

  • UPLOAD_LOCATION — the volume path for photo storage (livemy.app defaults are fine)

  • Optional: SMTP variables for password reset emails

Step 4: Deploy and create the admin account

Typical deploy time: 4–6 minutes (ML container takes ~2 min to download the models). When status flips to Live, visit the URL, create the admin account, complete the initial settings.

Step 5: Install the mobile app, connect, start backing up

Download the Immich app from App Store or Play Store. Open settings, enter the server URL (use the custom domain after step 6 below). Authenticate with your admin credentials.

Enable background backup of the camera roll. Initial backup takes hours to days depending on library size and connection speed — leave the phone plugged in overnight for the first sync.

Step 6: Point your domain

Add custom domain, update DNS, wait for SSL. Update the server URL in the Immich mobile app to use the new domain. Confirm by uploading one photo and seeing it in the web UI.

Five things that quietly break self-hosted Immich

1. PostgreSQL without the pgvecto.rs extension

Immich uses vector search for facial recognition and object detection. The pgvecto.rs Postgres extension is required — a default Postgres install will start, but vector queries will fail and ML features won't work.

Fix. Use the official Immich Postgres image (tensorchord/pgvecto-rs), not vanilla Postgres. livemy.app's Immich template ships the correct image.

2. ML processing eats memory, then crashes

The ML container loads models into RAM. On a 2 GB host, the OOM killer eventually kicks in and silently stops the ML service. Photos still upload, but face recognition stops working.

Fix. Minimum 4 GB RAM for the host; 8 GB if you want responsive ML on large libraries. Alternative: disable ML processing entirely if you don't care about face recognition (set MACHINE_LEARNING_ENABLED=false).

3. Mobile app loses connection after server URL change

When you move from a temporary subdomain to a custom domain, the mobile app keeps trying to reach the old URL. Backups silently stop.

Fix. After every domain change, open the Immich mobile app settings, update the server URL, re-authenticate. Easy to forget; consequence is missing photo backups.

4. Disk fills up unexpectedly

Original photo uploads, plus generated thumbnails, plus video transcoding cache. A 100 GB photo library can easily occupy 130–150 GB on disk after Immich's processing artifacts.

Fix. Set up storage usage monitoring (livemy.app's dashboard shows volume usage). Plan for 1.3–1.5× the raw photo size in actual disk consumption. For very large libraries, offload to Backblaze B2 (Immich supports S3-compatible external storage).

5. Backups must include both the photo volume and the database

The Postgres DB holds metadata (albums, tags, face clusters); the volume holds the photos themselves. Backing up one without the other leaves you with photos but no organization, or organization but no photos.

Fix. Snapshot both. The livemy.app $5/month backups add-on covers both. For manual setups, pg_dump + rsync the volume to off-server storage daily.

Cost: Google One vs self-hosted Immich

Real numbers for a family of 4 with 1 TB of combined photos.

Google One 2 TB family plan: $9.99/month = $120/year, shared with up to 5 family members.

Self-hosted on a home NAS: $300 one-time for a Synology DS224+ + $80 one-time for a 4 TB drive. Year 1: $380. Year 2+: $0/month.

Self-hosted on livemy.app Pro (with extra storage): $40–80/month depending on storage tier. $480–960/year.

Honest take: for purely-cost-driven decisions, Google One at $120/year is hard to beat. Self-hosting wins on privacy, family multi-user without separate Google accounts, and one-time hardware spend amortized over years. A home NAS is the most economical at any meaningful library size; livemy.app is the right answer if you don't want to run hardware at home.

FAQ

Is self-hosted Immich really free?

Software is free under the AGPL license. You pay for the server and storage. Realistic total: $0–80/month depending on whether you use a home server (cheapest, hardware-only) or a hosted server (flat monthly bill, includes storage).

Does Immich work as well as Google Photos?

For most users, yes. Auto-backup, face recognition, search, sharing, albums, mobile + web access — all present. Where Google Photos still wins: the ML quality (Google has more training data), automatic memories/highlights (Immich is improving but not at parity), and Google Lens integration. For pure photo storage with privacy, Immich matches.

Can the whole family share one Immich instance?

Yes — each user has their own login, their own private library, their own albums. Shared albums let family members contribute to a common pool (kids' photos, vacations). The admin can see usage but not browse other users' private libraries.

Can I migrate from Google Photos to Immich?

Yes via Google Takeout. Request a Takeout export of your Google Photos, download the archive, use Immich's CLI uploader or immich-go to bulk-import. Plan for hours-to-days for a multi-TB library depending on upload bandwidth.

Do I need a GPU?

Not required, but recommended for large libraries. Immich's ML on CPU works for hundreds of photos in minutes; tens of thousands take hours. With an integrated GPU (M-series Mac mini, Intel Arc) or dedicated GPU, ML processing speeds up 5–10×.

What's the cheapest way to host Immich for a family?

A home NAS or mini-PC with a large drive. One-time hardware investment ($300–600), then $0/month forever. For renters who can't run hardware: livemy.app at $25/month flat with a few hundred GB of storage included.

Self-host Immich — own your photo archive

If you're storing a decade of family photos on Google and would rather not, Immich is the path. The cheapest option is a home NAS. The fastest cloud option is livemy.app's Immich template.

→ Start free on livemy.app · Immich template with Postgres + Redis + ML container, custom domain, SSL, backups, all on Maker at $20/month flat.

Planning a Google Takeout migration or sizing storage for a multi-TB library? Email hello@livemy.app with the library size. Replies inside one business day.

Read next

Dmytro Chervonyi

Dmytro Chervonyi

,

Co-founder & CMO, livemy.app

Co-founder & CMO at livemy.app. 12 years as a CMO scaling SaaS from $0 to $10M+ ARR across marketing, sales, and infra products and tools. Now building the missing step between AI-built code and a live URL — for non-developers who’d rather ship than learn DevOps.

Build something.
We'll make it live.

Free to start. 2 minutes to deploy. One click to cancel.

No credit card · No commitment · Free tier forever