What Immich Does
Immich provides a complete photo management experience:
- Auto Backup: Automatic photo/video backup from iOS and Android with background upload
- Timeline View: Chronological photo timeline with year/month navigation and memory flashbacks
- AI Search: Search photos by describing content ("dog on beach", "birthday cake", "sunset")
- Face Recognition: Automatic face detection and grouping, name your people for easy filtering
- Shared Albums: Create shared albums with family/friends, with activity feeds and comments
- Map View: View photos on a world map based on GPS metadata
- Video Support: Full video playback including RAW video formats and live photos
- Multi-user: Multiple accounts with separate libraries and shared spaces
- External Libraries: Mount existing photo directories without moving files
Architecture
┌─────────────┐ ┌──────────────┐ ┌──────────────┐
│ Mobile App │────▶│ Immich │────▶│ PostgreSQL │
│ (Flutter) │ │ Server │ │ + pgvector │
├─────────────┤ │ (NestJS) │ └──────────────┘
│ Web App │ └──────┬───────┘
│ (SvelteKit) │ │ ┌──────────────┐
└─────────────┘ ┌──────┴───────┐ │ Redis │
│ ML Service │ │ (Job Queue) │
│ (Python/ONNX)│ └──────────────┘
└──────────────┘Self-Hosting
Docker Compose (Official)
services:
immich-server:
image: ghcr.io/immich-app/immich-server:release
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
environment:
DB_URL: postgresql://immich:immich@database:5432/immich
REDIS_HOSTNAME: redis
depends_on:
- redis
- database
ports:
- "2283:2283"
immich-machine-learning:
image: ghcr.io/immich-app/immich-machine-learning:release
volumes:
- model-cache:/cache
redis:
image: redis:7-alpine
database:
image: tensorchord/pgvecto-rs:pg16-v0.2.0
environment:
POSTGRES_PASSWORD: immich
POSTGRES_USER: immich
POSTGRES_DB: immich
volumes:
- pgdata:/var/lib/postgresql/data
volumes:
pgdata:
model-cache:Hardware Requirements
| Users | Photos | RAM | Storage | CPU |
|---|---|---|---|---|
| 1-2 | <50K | 4GB | Photo size + 20% | 2 cores |
| Family | 50-200K | 8GB | Photo size + 20% | 4 cores |
| Power user | 200K+ | 16GB+ | Photo size + 20% | 4+ cores |
Key Features
AI-Powered Search (CLIP)
Search: "red car in parking lot" → finds matching photos
Search: "people hiking in mountains" → finds outdoor group shots
Search: "document with text" → finds screenshots and documentsThe ML service uses CLIP models for semantic image search, running entirely offline on your server.
Face Recognition
- Automatic face detection in all uploaded photos
- Cluster similar faces together
- Name people and filter your library by person
- Merge duplicate face clusters
- Hide specific faces from view
Memory Flashbacks
Like Google Photos' "On this day" feature:
- Daily notifications of photos from the same date in previous years
- Animated memory slideshows
- Shared memories with family members
Mobile App Features
- Background auto-backup (even when app is closed)
- Wi-Fi only backup option
- Selective album backup
- Partner sharing (see each other's photos)
- Offline photo access
Immich vs Alternatives
| Feature | Immich | Google Photos | Synology Photos | PhotoPrism |
|---|---|---|---|---|
| Open Source | Yes (AGPL-3.0) | No | No | Yes (AGPL) |
| Self-hosted | Yes | No | NAS only | Yes |
| Mobile backup | Yes | Yes | Yes | Manual |
| AI search | CLIP (offline) | Google AI | Limited | TensorFlow |
| Face recognition | Yes | Yes | Yes | Yes |
| Map view | Yes | Yes | Yes | Yes |
| Mobile app | iOS + Android | iOS + Android | iOS + Android | PWA only |
| Storage | Unlimited | 15GB free | NAS capacity | Unlimited |
常见问题
Q: 需要 GPU 吗? A: 不需要。ML 服务使用 ONNX Runtime 在 CPU 上运行,4核处理器即可提供良好的搜索和人脸识别体验。GPU 可以加速处理但不是必需的。
Q: 可以从 Google Photos 迁移吗? A: 可以。使用 Google Takeout 导出照片,然后通过 immich-cli 批量上传。元数据(日期、GPS、描述)会被保留。社区也有专门的迁移工具。
Q: 照片的原始质量会保留吗? A: 是的。Immich 保存原始文件,不会压缩或修改你的照片和视频。支持 RAW 格式(CR2、NEF、ARW 等)。
来源与致谢
- GitHub: immich-app/immich — 97.5K+ ⭐ | AGPL-3.0
- 官网: immich.app