Immich是一款专为个人和企业设计的开源自托管照片与视频备份管理工具,它提供了类似Google Photos的体验,但所有数据都完全掌握在用户自己手中。

核心功能
- 自动备份系统
- 支持iOS和Android设备自动上传照片/视频
- 可选择特定相册进行备份
- 后台持续备份功能
- 智能分类管理
- 基于ImageNet数据集的图像标签分类
- 使用COCO SSD进行物体检测
- 人脸识别与分组功能
- 多平台支持
- Web管理界面(SvelteKit构建)
- 原生移动应用(Flutter开发)
- 命令行工具(CLI)批量上传
技术架构
Immich采用现代化的技术栈:
- 后端:NestJS框架
- 数据库:PostgreSQL
- 缓存:Redis
- 机器学习:TensorFlow
- 前端:SvelteKit + TailwindCSS

部署方案
Immich推荐使用Docker Compose部署:
bashbash复制# 创建部署目录
mkdir immich && cd immich
# 下载配置文件
wget 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
# 启动服务
docker-compose up -d
默认访问地址:http://服务器IP:2283
独特优势
- 数据主权:所有数据存储在用户自己的服务器/NAS上
- RAW格式支持:可处理HEIC、HEIF、DNG等专业格式
- 地图视图:基于OpenStreetMap展示照片地理位置
- 多用户协作:支持家庭成员共享相册
适用场景
- 家庭照片集中管理与共享
- 摄影师作品备份与管理
- 企业媒体资产存储与管理
- 替代商业云相册服务的私有化方案
4. Machine Learning Service 4. 机器学习服务
A Python-based service built with FastAPI that provides:
一个基于 Python 的服务,使用 FastAPI 构建,提供:
- Face recognition using InsightFace
使用 InsightFace 进行人脸识别 - Object detection 物体检测
- CLIP-based semantic search
基于 CLIP 的语义搜索 - Reverse geocoding for location data
地理位置数据的逆向地理编码
It supports various hardware acceleration options:
它支持各种硬件加速选项:
- CUDA (NVIDIA) CUDA(NVIDIA)
- OpenVINO (Intel) OpenVINO(英特尔)
- ROCm (AMD) ROCm(AMD)
- RKNN (Rockchip) RKNN(瑞芯微)
- ArmNN (ARM) ArmNN(ARM)
Technology Stack 技术栈
Component 组件 | Technology 技术 | Version 版本 |
---|---|---|
Server 服务器 | NestJS, Node.js | v11.0.4 |
Web Interface 网页界面 | Svelte, SvelteKit | v5.25.3 |
Mobile Applications 移动应用 | Flutter | v3.29.3 |
Machine Learning Service 机器学习服务 | Python, FastAPI | v0.95.2+ |
Database 数据库 | PostgreSQL, pgvecto.rs | v8.11.3 |
Caching & Job Queues 缓存与任务队列 | Redis, BullMQ | v5.3.2, v4.8.0 |
Command Line Interface 命令行界面 | TypeScript | v5.3.3 |
Media Processing 媒体处理 | Sharp (images), FFmpeg (videos) 锐化(图像),FFmpeg(视频) | v0.33.0 |
Metadata Extraction 元数据提取 | ExifTool | v28.3.1 |
Sources: server/package.json37-72 web/package.json27-53 mobile/pubspec.yaml12-81 machine-learning/pyproject.toml8-54 cli/package.json64-69
来源:服务器/package.json37-72Web/package.json27-53 移动/pubspec.yaml12-81 机器学习/pyproject.toml8-54CLI/package.json64-69
Key Features 主要功能
Feature 功能 | Description 描述 | Components Involved 涉及组件 |
---|---|---|
Asset Upload 资产上传 | Upload and storage of photos and videos 照片和视频的上传与存储 | Server, Web UI, Mobile 服务器、Web 界面、移动端 |
Deduplication 去重 | Prevention of duplicate assets 防止重复资产 | Server 服务器 |
Metadata Extraction 元数据提取 | Reading EXIF, GPS and other metadata 读取 EXIF、GPS 和其他元数据 | Server 服务器 |
Thumbnail Generation 缩略图生成 | Creation of optimized thumbnails 创建优化缩略图 | Server 服务器 |
Video Transcoding 视频转码 | Converting videos for web playback 为网页播放转换视频 | Server 服务器 |
Face Recognition 人脸识别 | Identifying and grouping faces 识别和分组人脸 | Machine Learning, Server 机器学习,服务器 |
Object Detection 物体检测 | Identifying objects in images 识别图像中的物体 | Machine Learning, Server 机器学习,服务器 |
Smart Search 智能搜索 | Natural language search for photos 自然语言照片搜索 | Machine Learning, Server 机器学习,服务器 |
Albums 专辑 | Organization of photos 照片组织 | Server, Web UI, Mobile 服务器、Web 界面、移动端 |
Sharing 分享 | Sharing albums with other users 与其他用户共享相册 | Server, Web UI, Mobile 服务器、Web 界面、移动端 |
User Management 用户管理 | User accounts and permissions 用户账户和权限 | Server, Web UI 服务器,Web 界面 |
Map View 地图视图 | Geolocation-based photo viewing 基于地理位置的照片查看 | Server, Web UI, Mobile 服务器,Web 界面,移动端 |
Background Backup 背景备份 | Automatic backup of photos 自动备份照片 | Mobile 移动 |
CLI Access 命令行访问 | Command-line management 命令行管理 | CLI |
Immich项目在GitHub上已获得超过6.5万星标,是目前最活跃的开源自托管照片管理解决方案之一。其活跃的开发者社区持续为项目添加新功能,使其成为数字资产管理领域的佼佼者。
项目地址:immich-app/immich