字节笔记本
2026年3月22日
Immich - 自托管 Google Photos 替代方案
本文介绍 Immich,一款高性能的自托管照片和视频管理解决方案,旨在为用户提供类似 Google Photos 的体验,同时完全掌控自己的数据。
项目简介
Immich 是一个开源的自托管照片和视频备份与管理平台。它提供移动端应用(iOS 和 Android)以及 Web 端界面,支持自动备份、人脸识别、地图视图等丰富功能。对于关注数据隐私、希望摆脱云服务商依赖的用户来说,Immich 是目前最优秀的自托管替代方案之一。
项目采用 AGPLv3 许可证发布,拥有活跃的社区和频繁的更新迭代。Immich 在 GitHub 上获得了极高的关注度,Star 数量已突破数万,是自托管领域的明星项目。
与 Google Photos、iCloud Photos 等商业方案相比,Immich 的核心优势在于:数据完全由用户自己控制,不依赖第三方云服务,功能丰富且性能出色,同时支持多用户使用场景。
核心特性
Immich 的功能覆盖了照片管理的大部分需求,以下按类别进行详细介绍。
照片与视频管理
- 上传与查看:支持照片和视频的上传与浏览,移动端和 Web 端均可操作。
- 自动备份:移动端打开应用时自动触发备份,支持后台备份功能。
- 防重复机制:自动检测并防止重复资源的上传,节省存储空间。
- 选择性备份:可选择特定的相册进行备份,不必全量同步。
- 本地下载:支持将照片和视频下载到本地设备。
- RAW 格式支持:完整支持各种 RAW 格式照片的显示与存储。
智能功能
- 人脸识别与聚类:自动识别人脸并进行分组,方便按人物浏览照片。
- 智能搜索:支持按元数据(EXIF)、物体识别、人脸和 CLIP 向量搜索,可以像 Google Photos 一样用自然语言查找照片。
- 元数据查看:完整的 EXIF 信息展示,包括拍摄参数、地图定位等。
- 回忆功能:自动生成"多年前今天"的回忆内容。
组织与分享
- 相册与共享相册:创建相册进行照片整理,支持与他人共享相册。
- 伙伴共享:与家人或朋友共享照片库,实现联合管理。
- 公共分享:生成公共链接分享照片,无需注册即可查看。
- 归档与收藏:支持照片归档和收藏标记,便于整理。
- 文件夹视图:按文件夹结构浏览照片,保持原始组织方式。
- 标签系统:Web 端支持为照片添加标签进行分类。
平台与用户体验
- 多用户支持:支持创建多个用户账户,适合家庭或团队使用。
- 多语言支持:支持包括简体中文、繁体中文在内的 20 多种语言。
- 全局地图:在地图上查看所有带位置信息的照片。
- 虚拟滚动:流畅浏览大量照片,无卡顿感。
- 可拖拽滚动条:快速跳转到特定时间点。
- 360 度图片:Web 端支持 360 度全景图片显示。
- LivePhoto/MotionPhoto:支持 Apple LivePhoto 和 Android MotionPhoto 的备份与播放。
- 只读图库:支持设置只读模式,适合展示用途。
系统与管理
- OAuth 支持:集成 OAuth 认证,方便统一管理。
- API Keys:提供 API 密钥机制,便于第三方集成。
- 用户自定义存储结构:可自定义文件在服务器上的存储路径和命名规则。
- 离线支持:移动端支持离线查看已缓存的 photos。
技术栈
Immich 的技术架构现代且高效,主要由以下技术构成:
- 后端:采用 Node.js/TypeScript 构建,使用 NestJS 框架提供 API 服务。
- 前端(Web):基于 React/TypeScript,使用 Next.js 框架,配合 Svelte 等技术。
- 移动端:使用 Flutter 框架构建,支持 iOS 和 Android 双平台。
- 数据库:PostgreSQL 作为主数据库,Redis 用于缓存和队列。
- 机器学习:集成 TensorFlow 用于人脸识别和物体检测。
- 存储:支持本地文件系统和 S3 兼容的对象存储。
- 容器化:提供完整的 Docker Compose 配置,部署简单。
- 反向代理:支持 Nginx 等反向代理部署。
整个项目遵循现代化开发实践,代码质量高,架构清晰,便于二次开发和功能扩展。
安装指南
Immich 提供了详细的官方文档,推荐使用 Docker Compose 进行安装部署。
系统要求
- 操作系统:Linux(推荐)、macOS 或支持 Docker 的其他系统
- 内存:建议至少 2GB RAM
- 存储:根据照片数量预留足够的磁盘空间
- 软件依赖:Docker 和 Docker Compose
使用 Docker Compose 安装
这是最推荐的安装方式,步骤如下:
# 1. 克隆仓库
git clone https://github.com/immich-app/immich.git
cd immich
# 2. 启动服务
docker compose up -d启动后,访问 http://你的服务器IP:2283 即可进入 Immich 的 Web 界面。
环境变量配置
在部署前,建议根据实际需求修改 .env 文件中的关键配置:
UPLOAD_LOCATION:照片上传的存储路径DB_DATA_LOCATION:数据库数据存储路径- 端口配置、时区设置等
详细的环境变量说明可以在官方文档中查阅。
快速开始
部署完成后,按照以下步骤快速上手:
- 注册账户:打开 Web 界面,注册第一个管理员账户。
- 安装移动端应用:在 App Store 或 Google Play 下载 Immich 应用。
- 配置服务器地址:在移动端应用中输入服务器的 Endpoint URL。
- 登录并备份:使用刚注册的账户登录移动端,开启自动备份。
- 开始使用:上传的照片将自动同步到服务器,可在 Web 端浏览和管理。
移动端设置
在移动端应用中配置以下信息:
- Server Endpoint URL:
http://你的服务器IP:2283/api - 开启"Auto Backup"选项
- 可选择备份的相册
Web 端管理
登录 Web 端后,可以:
- 管理用户账户
- 查看所有照片和视频
- 创建和共享相册
- 查看系统状态
- 配置存储和备份策略
使用示例
场景一:家庭照片管理
家庭成员各自注册账户,开启自动备份。利用伙伴共享功能,夫妻之间可以共享照片库,让家庭照片集中管理。通过人脸识别自动将照片按人物分类,轻松找到某个家庭成员的所有照片。
场景二:旅行照片整理
旅行归来后,所有照片已自动备份到 Immich。通过全局地图功能,在地图上查看旅行足迹;使用智能搜索,输入"海滩"即可找到所有海边照片;创建旅行相册,生成公共链接分享给朋友。
场景三:NAS 部署
在家庭 NAS 设备上部署 Immich,配合 S3 兼容存储(如 MinIO),实现海量照片的安全存储。通过自定义存储结构,保持照片的目录组织方式与 NAS 文件系统一致,便于直接访问原始文件。
重要提醒
Immich 项目官方强烈建议遵循 3-2-1 备份原则:至少保留 3 份数据副本,存储在 2 种不同的介质上,其中 1 份存放在异地。即使使用自托管方案,也务必做好数据备份,以防硬件故障导致数据丢失。
项目链接
- 项目地址:https://github.com/immich-app/immich
- 官方文档:https://immich.app/
- 在线演示:https://demo.immich.app(账号:demo@immich.app / 密码:demo)
- 许可证:AGPLv3
- Discord 社区:通过官方 GitHub 页面加入