Immich is an open-source, self-hosted platform for backing up, organizing, and browsing photos and videos on a server you control instead of Google’s or Apple’s. Install the mobile app, point it at your server, and it backs up new photos automatically in the background, the same convenience Google Photos built its reputation on, minus the subscription and the model training on your memories. A dedicated machine-learning service adds what most self-hosted photo tools skip: real face recognition and natural-language search across your library, computed locally, with nothing sent to a third party.
Where Immich actually came from
Immich has existed as a public GitHub repository since February 2022, started by developer Alex Tran as a personal project to get Google Photos’ backup convenience without the account behind it (the Android app’s package name, app.alextran.immich, still carries his name). It joined FUTO as a funded, full-time project in May 2024; the repository has since passed 102,000 stars. The project ships fast, with a major v3.0.0 release on July 1, 2026 and its own migration guide from v2.
License: Immich ships under the GNU Affero General Public License v3.0 (AGPL-3.0), confirmed directly from the LICENSE file on GitHub, not assumed from a badge. For a personal, unmodified install this changes nothing in practice; AGPL only requires sharing source if you modify Immich’s code and run that modified version as a public service for others.
Quick facts: Official site immich.app · GitHub immich-app/immich, 102,000+ stars · Current major version v3.0.0 (July 2026).
What actually separates Immich from a plain photo gallery
Plenty of self-hosted apps display a folder of images. What Immich does that a plain gallery, including Nextcloud’s own Photos app, doesn’t attempt is run real machine learning against your library. A separate immich-machine-learning container, isolated from the main server, handles two jobs: Smart Search converts photos and a typed phrase, “dog on a beach,” into CLIP embeddings and matches them, no manual tagging; Facial Recognition clusters faces the way Google Photos does. Both run locally. Our Best Self-Hosted AI Tools guide covers this container in more depth, including offloading it to more powerful hardware.
The mobile app is the other real differentiator: grant it photo access and it backs up new photos and videos automatically in the background, not only when you remember to open a browser tab. You can restrict backup to specific albums, mirror device albums to matching server albums, and use Free Up Space to clear already-backed-up originals off your phone once storage runs low. Nextcloud’s Photos app, by contrast, is a gallery for viewing images already synced through Files, not a dedicated backup pipeline built around your camera roll.
Installing Immich with Docker
Immich’s Docker Compose setup is more involved than a single-container app, by design. The official docker-compose.yml wires up four services:
- immich-server: the API and web UI (port 2283)
- immich-machine-learning: Smart Search and Facial Recognition, isolated so it can be offloaded or hardware-accelerated on its own
- redis: actually runs Valkey, a Redis-compatible fork, for the job queue and caching
- database: PostgreSQL, but a custom image with the vector-search extensions Smart Search needs, not stock Postgres
Setup, refreshingly, means downloading two files instead of writing one from scratch:
mkdir ./immich-app && cd ./immich-app
wget -O docker-compose.yml 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.env
Edit .env for your upload location and a database password, then bring up the stack:
docker compose up -d
Hardware: Immich’s own requirements page lists a minimum of 6GB RAM (8GB recommended) and 2 CPU cores (4 recommended), noticeably higher than a single-container app like Vaultwarden needs to boot. Since v3, the ML container needs a CPU supporting x86-64-v2, covering most hardware sold since 2012, and Immich’s own docs admit the stack can be too heavy for a Raspberry Pi. Postgres belongs on local SSD storage, never a network share, and Windows users hit an NTFS permissions snag with the database volume too. Our homelab setup guide for beginners walks through general hardware trade-offs.
That combination is why we’re rating Immich Advanced rather than Medium. It’s a step up from Vaultwarden or Nextcloud’s plain image, both of which boot on nearly anything with Docker installed, and a step up from Nextcloud’s AIO path too: AIO hides its own multi-container stack behind a mastercontainer and a checkbox-driven setup screen, while Immich has you editing the compose file and keeping four interdependent services healthy yourself. It’s not exotic if you know Docker Compose, but it’s real complexity, and a documented 6-8GB RAM floor rules out boards other self-hosted apps happily run on.
Don’t expose Immich to the internet on a raw forwarded port, same rule as any self-hosted app holding personal data. Put a reverse proxy in front of it, or connect over a mesh VPN like Tailscale instead. Our Jellyfin remote access guide covers both patterns, and the logic carries over directly to Immich.
Immich: pros and cons
- Real AI features, semantic search and face recognition, running entirely on hardware you own
- Mobile app with genuine automatic background backup, not just manual upload
- Fast-moving, FUTO-funded project with 102,000+ GitHub stars and frequent releases
- Free and fully open source under AGPL-3.0, no feature paywall
- Four-service Docker stack with a real minimum hardware floor (6-8GB RAM)
- Fast release cadence means occasional breaking changes between major versions
- No official support contract, you’re your own IT department
- A Postgres database to back up correctly, not a single SQLite file
Immich vs. the alternatives
Against Google Photos or Amazon Photos, it’s the familiar trade: no subscription and nobody training a model on your library, in exchange for owning your own backups. Against Nextcloud, it’s less a competition than a question of what you’re solving for:
| Immich | Nextcloud Photos | Google Photos | |
|---|---|---|---|
| AI face & object search | Yes, local | No | Yes, cloud-based |
| Automatic mobile backup | Yes, dedicated app | Via Nextcloud’s file-sync app | Yes |
| Self-hosted | Yes | Yes | No |
| Ongoing cost | Your own hardware | Your own hardware | Subscription past the free tier |
Plenty of homelabbers run both side by side. PhotoPrism is the other name in the same breath, another open-source, AI-assisted photo manager, though Immich’s mobile backup and facial recognition are generally further along.
FAQ
Is Immich actually free?
Yes. The server, mobile app, and every core feature, including facial recognition and smart search, are free under AGPL-3.0. FUTO sells an optional one-time “product key” to support development; it doesn’t unlock anything the free version lacks.
Is Immich as good as Google Photos?
For backup and search, arguably better, since search runs entirely offline. You give up Google’s CDN speed and editor polish; you gain no storage cap tied to a subscription.
Is it safe to expose Immich to the internet?
Only behind a reverse proxy with a real TLS certificate, ideally with authentication in front. A raw forwarded port is how self-hosted instances get scanned within days.
Do I need a GPU to run Immich?
No. Immich runs fine on CPU alone; a GPU just speeds up Smart Search indexing and facial recognition on large libraries. Start CPU-only and revisit later if indexing feels slow.
What’s the real difference between Immich and Nextcloud’s Photos app?
Nextcloud Photos is a gallery for browsing images already synced into Nextcloud Files. Immich is a dedicated backup pipeline with its own mobile app, automatic background upload, and AI-powered face and object search built in from the start.