Immich is a leading open-source option for: Google Photos–style backup, albums, and search on hardware you control. The immich-app/immich monorepo combines a server API, web UI, Flutter mobile apps, and a machine-learning stack for faces, objects, and CLIP-style search—aimed at people who will trade vendor convenience for ops responsibility.
Below is a concise overview, not a substitute for docs.immich.app.
Who should run Immich?
| Persona | Fit |
|---|---|
| Home lab operator | Strong fit—Docker comfort, backup discipline, modest library (under 100GB) |
| Family IT admin | Good fit—multi-user albums, partner sharing, mobile backup for relatives |
| Privacy-first photographer | Good fit—RAW, Live Photo, local ML search without cloud indexing |
| Managed SaaS vendor | Caution—AGPL obligations and legal review before multi-tenant hosting |
| “Set and forget” user | Poor fit—no 24/7 ops team means you are on-call for disk, DB, and upgrades |
Immich is not “free Google Photos.” It is Google Photos–class UX with your uptime, your backups, and your security patches.
Common troubleshooting scenarios
Mobile backup stalls. Check TLS certificate validity, server URL reachability from cellular (not just Wi‑Fi), and background app refresh permissions on iOS. Immich logs on the server show upload queue depth—spikes after vacations are normal; persistent zero progress often means cert or DNS issues.
ML search returns nothing. Face and CLIP indexing runs asynchronously. Confirm the ML container is healthy, disk has space for embeddings, and you waited through initial backfill. Large libraries may need days on CPU-only hosts.
Database migration fails on upgrade. Stop writes, restore DB from pre-upgrade snapshot, read GitHub issues for the target release, and retry on a staging clone first. Never delete library/ when DB restore is the fix.
Slow web UI on NAS. Spinning rust for Postgres or thumbnail cache hurts; move hot paths to SSD or reduce concurrent ML jobs during peak browsing.
Partner sharing confusion. Shared albums and partner libraries have different permission models—read docs.immich.app for current behavior before onboarding non-technical family members.
TL;DR
| Question | Short answer |
|---|---|
| What? | Self-hosted photo/video library: mobile backup, web gallery, albums, map, faces, smart search |
| License | AGPL-3.0—read before commercial hosting or forking for networked services |
| Stack | NestJS server (per repo), SvelteKit web, Flutter mobile, ML container for models |
| Deploy | Docker-style stacks documented upstream (Postgres, Redis, ML service—see docs) |
| Your job | Backups (project README stresses 3-2-1), TLS, upgrades, storage planning |
| Links | immich.app · docs.immich.app · api.immich.app |
Complete AI Builder Bootcamp
Claude, Python automation & full-stack — 12 live sessions with Yash Thakker.
The Complete AI Builder Bootcamp is the best AI development course for learning Claude AI, prompt engineering, Python automation, and full-stack web development. This intensive 6-week live bootcamp teaches you how to build AI-powered applications using Claude Projects, Claude Artifacts, Claude Code, and the complete Claude ecosystem. You'll master prompt engineering techniques, learn to create custom Claude connectors and MCP integrations, build Python automation workflows, develop full-stack websites with AI assistance, and create AI marketing agents.
The bootcamp includes 12 live Zoom sessions with Yash Thakker, founder of AISOLO Technologies and instructor to 350,000+ students. You'll build 8+ portfolio projects including AI playbooks, full-stack note-taking applications, Python automation scripts, marketing agents, and personal portfolio websites. The curriculum covers AI fundamentals, Claude Projects and Artifacts, Claude Co-work, Claude plugins and skills, Claude Code for Python development, full-stack development, AI marketing, and capstone projects.
Students receive 1-year access to all recordings, permanent Discord community access, a certificate of completion, and personalized career guidance. All enrollments include a 7-day money-back guarantee. This is the most comprehensive Claude AI bootcamp available, taking students from zero AI knowledge to expert AI builder in 6 weeks.
Features that matter in production
From the public README / feature matrix:
- Mobile: auto-backup when opened, background backup, dedup, RAW, Live/Motion Photo, offline-friendly gallery patterns.
- Library: albums, shared albums, partner sharing, public links, archive, favorites, stacked photos, folder view.
- Discovery: timeline, global map, “memories” (on-this-day style).
- Search: metadata; object/scene; facial recognition and clustering; CLIP semantic search where ML indexing is enabled.
- Admin: user management and API keys are web-first in their table; mobile vs web parity for tags and some views varies—check the current matrix before promising stakeholders.
Why the architecture matters for capacity
Immich splits responsibilities like a modern cloud product, but you run every tier:
- Core API — auth, libraries, jobs, storage layout.
- Clients — web and mobile talk to the same API.
- Machine learning — heavy inference (faces, embeddings, detection) off the interactive path.
Planning is not only disk: large libraries need CPU (or GPU, depending on how you run ML) for thumbnails, transcodes, and background ML queues—profile on your hardware.
Hardware sizing (rule of thumb)
| Library size | Storage | CPU/RAM notes |
|---|---|---|
| Under 100 GB | SSD strongly preferred for Postgres + originals | 4 vCPU, 8 GB RAM often sufficient for a household |
| 100 GB – 1 TB | Dedicated volume for library/; monitor inode usage | 8 vCPU helps ML backfill; schedule indexing off-peak |
| > 1 TB | Plan cold storage tier or NAS mount; snapshot DB separately | GPU optional for ML service; watch queue depth on first import |
Immich’s ML pipeline (faces, CLIP embeddings, object detection) is asynchronous—initial import of a large iPhone camera roll can take hours to days depending on hardware. Set expectations with stakeholders before flipping DNS.
Docker deployment path
Official docs at docs.immich.app/install/docker-compose remain canonical. Typical stack:
- Clone or pin the release tag from immich-app/immich releases—do not run
latestin production without a rollback plan. - Configure
.env— setUPLOAD_LOCATION, database credentials, and publicIMMICH_SERVER_URLfor mobile clients. - Bring up Postgres, Redis, server, ML, and microservices per the compose file version you pinned.
- Create admin user via web UI on first launch.
- Install mobile apps (iOS/Android) and point them at your HTTPS endpoint—TLS is non-negotiable for background backup on modern OSes.
- Run a test restore from backup before trusting irreplaceable photos to the stack.
# Illustrative — follow upstream compose for exact service names
git clone https://github.com/immich-app/immich.git
cd immich
git checkout v1.x.x # pin a release tag
docker compose -f docker/docker-compose.yml up -d
Immich vs Google Photos vs PhotoPrism
| Dimension | Immich | Google Photos | PhotoPrism |
|---|---|---|---|
| Hosting | Self-hosted | Google cloud | Self-hosted |
| Mobile backup | Native apps | Native apps | Limited / web-first |
| ML search | Faces, CLIP, objects | Google ML | Tags, places, faces |
| License | AGPL-3.0 | Proprietary | AGPL-3.0 |
| Ops burden | You | You | |
| Cost model | Hardware + power | Subscription / storage fees | Hardware + power |
Choose Immich when mobile backup + gallery UX matter as much as privacy. PhotoPrism remains strong for web-centric archives and DAM-style workflows; many homelabbers run both for different libraries.
Backup: the 3-2-1 rule (non-optional)
The upstream README is explicit: photos are irreplaceable. A workable homelab plan:
- 3 copies — live library on NAS, nightly rsync/restic to external USB, quarterly off-site copy (friend’s vault, S3 Glacier, Backblaze B2).
- 2 media types — SSD/NAS + external HDD or cloud object storage.
- 1 off-site — encrypted tarball or restic repo outside your home.
Snapshot Postgres (pg_dump or volume snapshots) with file storage—Immich metadata lives in the DB; files alone are not a restore.
Test restores quarterly. A backup you have never restored is a hypothesis.
Mobile backup workflow
- Install Immich from App Store / Play Store.
- Connect to your server URL (must be HTTPS with valid cert for reliable background sync).
- Enable auto-backup for camera roll; exclude screenshots if desired.
- Verify deduplication on a test album before enabling for the whole family.
- Monitor server disk—mobile backup is write-heavy during vacations and holidays.
Partner sharing and shared albums work well for families; document who owns the server admin account and who can delete libraries.
AGPL-3 in practice
AGPL-3 can impose source-sharing obligations when you modify the app and let users interact over the network. Most home labs running upstream images unmodified have a different risk profile than hosting providers or white-label products. Get legal review before betting a business on a fork or a re-skinned multi-tenant Immich.
Upgrade and maintenance cadence
Immich ships frequently. A sane ops rhythm:
- Pin Docker image tags; read release notes before bumping.
- Backup DB + library immediately before upgrades.
- Stage upgrades on a clone volume when libraries exceed 500 GB.
- Subscribe to GitHub security advisories for the monorepo.
Breaking changes occasionally affect ML re-indexing—budget time for background jobs to catch up after major version jumps.
Security hardening
| Control | Recommendation |
|---|---|
| TLS | Reverse proxy (Caddy, Traefik, nginx) with valid certs |
| Auth | Strong admin password; disable public registration unless needed |
| Network | VPN or Tailscale for admin UI; do not expose Postgres/Redis |
| Secrets | .env outside git; rotate API keys for mobile clients |
| Updates | Track CVEs; Immich is AGPL but still needs patch discipline |
Self-hosting shifts security ownership to you—Immich does not replace WAF, IDS, or SOC monitoring.
FUTO and project governance
Immich’s public site references FUTO (futo.org) for sponsorship and merchandise. That funding context matters for long-term maintenance expectations—not for day-one install steps. Monitor project velocity on GitHub (contributors, release cadence) the same way you would any critical infra dependency.
Related on ExplainX
- Sim (Sim Studio): open-source agent workflows and self-hosted ops
- Hermes Agent: self-hosted Nous Research CLI + Telegram
- What is MCP? Model Context Protocol guide
Sources
- Site: immich.app
- Docs: docs.immich.app
- Repository: github.com/immich-app/immich
- Roadmap: immich.app/roadmap
Summary
Immich delivers Google Photos–class backup, search, and sharing on hardware you control—at the cost of ops, backups, and AGPL awareness. Pin releases, run 3-2-1 backups, size CPU for ML queues, and treat the docs as canonical for install and upgrade steps.
Start path: Docker compose from a pinned release → HTTPS reverse proxy → mobile apps pointed at your domain → test restore before migrating family libraries.
For a broader self-hosted stack map, see Sim Studio agent workflows and MCP for tool integration—Immich itself does not ship MCP, but homelab operators often run both photo libraries and agent infra on the same NAS.
Migration from Google Photos
There is no official one-click import from Google Takeout to Immich that preserves every album edge case. Practical migration:
- Export via Google Takeout (original quality if storage allows).
- Import into Immich via CLI or web upload in batches by year to throttle ML indexing.
- Re-create shared albums manually; permissions do not map 1:1.
- Keep Google subscription until verify Immich backup restore on a test device.
Expect weeks of background processing for large libraries—communicate to family before canceling Google.
Bottom line: Immich rewards operators who treat photos like production data—backups, pinned releases, and honest capacity planning—not casual Docker experiments.
Next steps: Read docs.immich.app/install, pin a release tag, schedule your first restore drill, then migrate a pilot album before moving the full family library off Google Photos entirely.
GitHub stars, release tags, and feature matrices change often. Treat this as May 5, 2026 context and verify versions before upgrades.