自建相册 Immich:部署、相册结构与手机备份的实测记录

自建服务 · 3 分钟阅读· 132 次阅读

把十年照片交给云厂商,心里总有点不踏实;但自建相册又要面对索引慢、人脸识别吃 CPU、外网访问配置麻烦这些现实问题。

Immich 的架构分成 server、machine-learning、PostgreSQL、Redis 四块,跑起来不难,难在长期维护和数据安全。

先说结论

4 核 8G 起步,机器学习容器可只用 CPU,备份按「原图 + 数据库」两份做。

  • 照片原图存本地目录,数据库单独备份
  • 机器学习容器首次索引会跑满 CPU,安排在夜间
  • 外网访问走反代 + HTTPS,别直接暴露端口
  • 每月验证一次恢复,尤其是数据库

先把问题说清楚

Immich 把元数据放 PostgreSQL,原图放在 UPLOAD_LOCATION。数据库丢了,人脸、相册、时间线全丢,原图还在但组织关系没了。

所以备份必须包含数据库 dump,而不是只同步照片目录。

具体怎么做

按顺序执行,每步都验证完再进下一步:

  • 准备目录:上传目录、数据库目录、模型缓存目录分别挂载
  • 写 compose:server + machine-learning + postgres + redis,固定版本 tag
  • 设置时区与 UPLOAD_LOCATION,启动后先跑一次完整索引
  • 手机装 App 开启后台备份,仅 Wi-Fi、仅充电时同步
  • 配反向代理与 HTTPS,限制上传大小,开双因素认证

参数与成本对照

把关键数值摊开,方便判断该选哪条路:

组件 资源占用 备注
server 1-2 核 / 1G API 与网页
machine-learning 2 核 / 2-4G 人脸/物体识别,可 CPU
PostgreSQL 1 核 / 1G 元数据,必须备份
Redis 0.2 核 / 256M 队列与缓存

自建相册 Immich

几个容易踩的坑

下面这些是最常见的错误做法:

  • 只同步照片目录不备份数据库:相册结构全丢
  • 索引时限制 CPU 太狠:几万张要跑几天
  • 外网直接映射 2283 端口:被扫到就是风险
  • 手机备份不开「仅 Wi-Fi」:流量爆掉

最后补两句

自建相册的长期成本不在部署,在「数据不丢」和「换机器能迁走」。这两点想清楚再上车。

工具是手段,理解机制才是能力。命令记不住没关系,知道「该看什么」就够了。

评论 (3)

阿
阿哲

照着做了一遍,确实少走弯路。第二步最容易漏,建议顺手加个检查清单。

南
南风

比「一键脚本」有用多了,知道为什么比知道怎么做重要。

K
Kevin

补充一句:不同版本行为会变,动手前先确认自己的版本号。

发表评论

验证码

提交后需站长审核,通过后才会显示。