POST

Immich:把手机相册搬回自己家,11.7 万 star 的开源相册怎么装怎么用

Immich 是目前最像 Google 相册的开源方案:自动备份、人脸识别、时间轴、地图,全在你自己的硬盘上。装法、备份策略和它吃资源的实话都在这。

手机存储就那么大,照片一年比一年多。iCloud 和 Google 相册能解决,但你的照片就存在别人服务器上了,而且每年要交钱。

Immich 是这条路上目前最成熟的开源答案。11.7 万 star,项目地址:

https://github.com/immich-app/immich

它像 Google 相册的地方在于:后台自动备份、按时间轴排、人脸自动分组、地图定位、相册共享、原图下载。不同的是这些全部跑在你家 NAS 上,硬盘满了加盘,不上传、不订阅。

代价也有,而且不小——它资源吃得厉害,尤其是人脸识别那部分。

装之前想清楚三件事

一、它不是"装完就完事"的服务

Immich 后面挂着 PostgreSQL 数据库和 Redis,还有一个人脸/物体识别的机器学习服务。四个容器一起跑,内存至少给 4 GB,8 GB 更稳。

二、备份策略要提前定

照片是那种丢了找不回来的东西。Immich 的数据库和上传目录必须进备份,而且这两个要一起备——只备照片不备数据库,恢复出来是散的。

三、版本别乱跳

Immich 更新很快,大版本之间偶尔有破坏性变更。升级前看一眼 Release Notes,别在半夜手一滑。

装

应用中心里先搜一下 Immich,有就直接装。没有的话走 Docker,官方给了一份 compose,建议直接用它给的那份,别自己拼——它的服务之间版本是配套的。

地址在仓库根目录的 docker/docker-compose.yml。下载下来改三个地方:

# 1. 照片存哪儿
UPLOAD_LOCATION=/vol1/photos/immich

# 2. 数据库存哪儿
DB_DATA_LOCATION=/vol1/photos/immich-pgdata

# 3. 数据库密码,自己设一个
DB_PASSWORD=换成一个你自己的强密码

再加一行时区:

TZ=Asia/Shanghai

然后:

docker compose up -d
docker compose logs -f immich-server

看到 Immich Server is listening on ... 就成了。浏览器打开 http://NAS地址:2283。

第一次打开会让你建管理员账号,这个账号没有找回密码的入口(本地服务,没有邮件服务),密码记好。

手机端:自动备份怎么开

这是 Immich 最有用的部分。

  1. 应用商店装 Immich App(iOS / Android 都有);
  2. 服务器地址填 http://内网IP:2283,或者你已经配好的域名;
  3. 登录后进「备份」→ 选择要备份的相册 → 打开「前后台备份」。

第一次会传很久,尤其你手机里存了几年照片。建议先只备份某几个相册试水,别一上来全家桶。

传的过程中手机会发热,这正常,充上电慢慢传。

出门在外想备份?那就得让服务器能从外网访问。别直接把 2283 开到公网——先看站里《Cloudflare Tunnel 应用版》或《CPN-连接私网》那两篇,加一层再开。

人脸识别:好用,但慢

上传完照片,它会在后台跑人脸检测,把同一个人归到一组。第一次跑很慢——几万张照片跑一晚上很正常。

这部分是 immich-machine-learning 容器在干活,CPU 会长时间高位。两个建议:

  • 晚上跑,别在你要看电影的时候跑;
  • 如果你的 NAS 有核显或独显,可以给它开硬件加速,速度快好几倍。

识别完在「人物」里点一下就能改名,之后照片自动归到这个人下面。给家人用的时候,这一步的价值会立刻体现出来——找"去年在海边那张"比翻相册快多了。

目录怎么规划

建议这样放:

/vol1/photos/
├── immich/          # 上传的原图,按用户和设备分目录
└── immich-pgdata/   # 数据库

两个都在同一块盘上,图省事。但如果你在意安全,数据库放 SSD、原图放机械盘更好——数据库小但读写频繁,放机械盘会拖慢整个界面的响应。

备份,说三遍

Immich 自带一个备份命令,能把数据库导出来:

docker exec -t immich-postgres pg_dumpall -c -U postgres > dump.sql

但更省事的做法是整个目录一起备:immich/ 和 immich-pgdata/ 同时进你的备份任务(站里有 rsync、快照、跨品牌备份几篇可以对着看)。

只备份 immich/ 不备份数据库,恢复的时候照片在、人脸分组和相册全没,等于白忙。

几个会遇到的坑

2283 打得开,App 连不上 手机和 NAS 不在同一个网段,或者你填的是 localhost。填 NAS 的内网 IP。

上传卡在某个百分比 多半是 HEIC 格式或者视频太大。看 docker logs immich-server,报错会写清楚是哪个文件。

人脸识别一直"处理中" 机器学习的容器没起来,或者内存不够被 OOM 杀了。docker ps 看它是不是反复重启。

照片重复了 可能是之前备份过一次又重装。Immich 有去重机制,但依赖数据库——这也是为什么数据库必须一起备份。

外网访问很慢 原图很大,走中转当然慢。要么让它在局域网里备份,要么开缩略图优先显示。

它适合谁

  • 手机照片超过 100 GB、又不想一直交订阅费的;
  • 家里有多个人,想各自有账号、各自备份的;
  • 在意隐私,不愿意把家庭照片放云上的。

不适合:只有 4 GB 内存的小机器(跑不动机器学习那部分);只想找个网盘存文件的(那用不着这么重)。

最后

Immich 是那种"装完就再也不想用别的"的东西。它的体验已经接近商业产品,而数据完全在你自己手里——这两点同时成立的开源项目不多。

代价是它真的重。装之前先看一眼内存,别装完了跟影视库抢资源,两个一起卡。

装的过程中卡住,留言,我补进这篇。

👁 - 次浏览

留言

← 返回首页