家里最容易被大厂”绑架”的数据,可能不是文档,也不是音乐,而是照片。手机相册默认进某网盘,全家人的合影散在三四台手机里,想找一张三年前的旅行照得翻半天——这种事我忍了很久。直到今年把一台小主机跑起来之后,终于把照片库也搬回了本地,用的就是 Immich。

它现在在 GitHub 上星标已经破了十万,协议是 AGPL-3.0,完全开源。一句话定位:高性能的自托管照片与视频管理方案,目标就是把”把手机照片安全备份到自己服务器”这件事做到位。下面是我折腾半年的一些真实体会,不是官方软文。
为什么不直接用网盘
网盘不是不能用,问题在于它同时握住了你的数据和入口。会员涨价你没得选,想导出全量原图要一层层点,最关键的——你没法在它上面跑自己的检索逻辑。我更想要的是:数据在我自己的存储上,索引在我自己的机器上,想怎么搜、怎么备份都由我说了算。
Immich 刚好踩中这个点。它不替你存到任何云服务,所有照片落在本地的磁盘(或者兼容 S3 的对象存储)里,配合一台常开的小主机就能跑。
它到底能干什么

装好之后,体验非常接近大家熟悉的那个商业相册:时间线(Timeline)按日期排布,支持 RAW 格式,Live Photo / 实况照片也能备份和回放。手机端装好官方 App,填一下本机地址,就能在充电或打开 App 时自动后台备份,还能只挑某些相册备份,避免把工作截图也全灌进去。
更让我意外的是它的”智能”部分——而且全是本地跑的:
- 人脸识别与聚类:自动把同一个人的脸归到一组,你标个名字,之后直接在搜索框打名字就能捞出所有相关照片。
- 语义搜索:底层是 CLIP 模型,你搜”海滩上的狗””晚餐桌”这种自然语言,它能按画面内容找,不依赖文件名。
- 地图视图:按照片的 GPS 信息在地图上标出来,旅行足迹一眼看清。
- 共享相册 / 伙伴共享:和家人各自建账号,把某段相册共享出去,或者把两个人的图库互相同步。

人脸识别这块是本地模型在后台慢慢算的,刚导入一大堆老照片时,机器会安静地跑上一段时间把脸都归好类。我那台小主机没独显,纯 CPU 也能跑,就是慢一点,挂一晚上基本就清完了。
搜索是真能用的

上面这张是它高级搜索的过滤界面。除了自然语言,你还能按类型(照片/视频)、按拍摄日期区间、按是否有 GPS、按收藏状态来组合筛选。实际用下来,“帮我把去年所有的视频导出来””找出所有带地理位置的合影”这类需求,点几下就完事,比在文件夹里翻快太多了。
怎么跑起来
它是标准的 Docker Compose 栈:一个服务端、一个负责机器学习的服务、一个 Postgres 数据库,外加一个反向地理编码的小组件。部署就三步:
- 准备好一个存放原图的目录(文档里叫 upload location),挂给容器;
- 拉官方的 docker-compose 配置起来;
- 浏览器打开 2283 端口的网页,建管理员账号,手机 App 填地址开始备份。
如果家里已经有一堆按年份文件夹摆好的老照片,不用重新上传——Immich 有”外部库(External Libraries)“功能,直接把那个目录挂进去扫描就行,原文件不动,它只建索引。这对存量照片特别友好。
有什么坑
说点不那么舒服的实话:
- 官方明令:别把它当成唯一备份。项目自己就在 README 顶上写了 3-2-1 备份原则——照片同时在 Postgres 元数据 + 文件系统两份里,你得两块都备份,硬盘挂了可没有”找回”按钮。
- 存储涨得比想象快。视频尤其吃空间,几千段手机视频轻松占掉几个 T,上机器前先想清楚盘位。
- 机器学习吃资源。有独显能大幅加速人脸和语义索引;纯 CPU 能用,但首批大库索引会很慢,要有心理准备。
- 更新频繁、偶尔不向后兼容。它还在高速迭代,新版本可能动数据库结构。我自己的做法是锁一个大版本号,等确认稳定再升,别无脑 latest。
- 外网访问要自己兜底。默认是局域网服务,想出门也能看,得自己在前端套一层反代和 HTTPS,别把裸端口直接暴露在公网。
小结
折腾完这套,最大的感受是:照片这件事,终于从”交给别人托管”变成了”我自己运营”。没有会员费,没有导出门槛,搜索和人脸识别全在本地,全家人的相册集中在一个地方。它不轻量,需要你愿意承担备份和运维的责任——但对我这种已经在跑小主机和 NAS 的人来说,这份控制权挺值。
如果你也在纠结网盘续费,不妨拿一台闲置的小机器试试,先导入一小批照片感受下,再决定要不要全家迁移。