Immich — High-Performance Self-Hosted Photo & Video Management
Immich is an open-source Google Photos alternative with auto-backup, AI-powered search, face recognition, and mobile apps — self-hosted for complete privacy.
What it is
Immich is a high-performance, self-hosted photo and video management solution built with NestJS, SvelteKit, and Flutter. It provides automatic mobile backup from iOS and Android, a chronological timeline with year/month navigation, AI-powered search (describe content like 'dog on beach'), facial recognition with person grouping, shared albums, map view, and memory flashbacks. Released under AGPL-3.0.
Immich targets users who want Google Photos features without giving their personal photos to a cloud provider. It runs on your own hardware with native mobile apps for both platforms.
How it saves time or tokens
Immich automates the photo backup process that many users do manually or forget entirely. The AI search eliminates the need to organize photos into folders -- search by content description instead. Face recognition groups photos by person automatically. Shared albums replace the workflow of selecting, exporting, and sending photos to family members.
How to use
- Download the Docker Compose file and start services.
- Create an admin account through the web interface.
- Install the Immich mobile app (iOS or Android), connect to your server, and enable automatic backup.
Example
mkdir immich && cd immich
curl -o docker-compose.yml \
https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
curl -o .env \
https://github.com/immich-app/immich/releases/latest/download/example.env
docker compose up -d
# Access at http://localhost:2283
Related on TokRepo
- AI Tools for Self-Hosted -- Self-hosted applications for data privacy
- AI Tools for Automation -- Automated backup and organization tools
Common pitfalls
- Machine learning features (face recognition, smart search) require significant CPU/GPU resources during initial library processing; the first scan of a large library can take hours.
- The Docker setup needs substantial storage; plan for 1.5x your photo library size to account for thumbnails and preview generation.
- Immich is under active development; major version updates may require database migrations. Always back up before upgrading.
Frequently Asked Questions
Immich provides most Google Photos features -- auto-backup, AI search, face recognition, shared albums, memories, and map view. Key differences: Immich runs on your hardware with full data ownership. Google Photos has more advanced AI features and unlimited storage on some plans. Immich's mobile app experience is close to Google Photos quality.
Yes. Immich supports Intel QSV, NVIDIA NVENC, AMD AMF, and VA-API for hardware-accelerated video transcoding. This significantly speeds up video processing and reduces CPU usage. Configuration is done through environment variables in the Docker setup.
Yes. Immich supports multiple user accounts with separate libraries. Users can create shared albums and invite others. Each user's library is private by default, with sharing controlled at the album level.
Immich requires at least 4GB RAM and 2 CPU cores for a small library (under 10,000 photos). For larger libraries and machine learning features, 8GB RAM and 4 cores are recommended. A dedicated GPU dramatically speeds up face recognition and smart search indexing.
Yes. Use Google Takeout to export your photo library, then use the Immich CLI tool to bulk-import the exported files. The CLI preserves EXIF metadata including dates and locations. Third-party tools like immich-go can also handle large migrations.
Citations (3)
- Immich GitHub— Immich is a self-hosted photo and video management solution
- Immich Documentation— AI-powered search, face recognition, and mobile auto-backup
- Immich License— AGPL-3.0 open-source license
Related on TokRepo
Source & Thanks
- GitHub: immich-app/immich — 97.5K+ ⭐ | AGPL-3.0
- Website: immich.app
Discussion
Related Assets
DTM — Distributed Transaction Manager for Microservices
A cross-language distributed transaction framework supporting Saga, TCC, XA, and two-phase message patterns for reliable microservice coordination.
WatermelonDB — Reactive Database for React Native Apps
A high-performance reactive database framework for React Native and React web apps, built on top of SQLite with lazy loading and sync primitives.
Dexie.js — Minimalist IndexedDB Wrapper for the Web
A lightweight wrapper around IndexedDB that provides a clean Promise-based API for client-side storage in web applications.