部署前要定的三件事
为什么先想清楚再装
新手部署 Immich 最常见的弯路,是装到一半才发现有些事情没定好:照片目录选错了位置,数据库和数据混在一个卷里没法单独备份;域名和端口随手填了一个,后来外网访问全要重来;账号体系没规划,家人照片全堆在一个账号里,分不开也理不清。
这些坑的共同点是:在部署之前改它们几乎零成本,部署之后再改则要动数据、改配置、重启服务,一个弄不好还要担心数据丢。所以这一章不讲安装步骤,只讲三件必须先拍板的小事——目录放哪、域名怎么定、账号怎么分。很多人会一带而过的事,恰恰是后面的麻烦来源。
如果你之前没有部署过任何容器服务,建议先把《自建 NAS 完全指南》 的容器基础读一遍,本章的结论可以直接写进你的部署笔记里。

第一件:照片目录放在哪
Immich 默认把上传的照片放在自己的数据目录里,按拍摄日期整理成层级目录树。问题在于,很多 NAS 用户本来已经有一套自己的照片目录,比如按年份或按事件命名,十几年整理下来的习惯不可能推倒重来。
这时候有两种思路。思路一是让 Immich 接管,新照片全部由它来规整,旧照片导入到它的目录里,好处是结构统一、由软件打理,代价是旧目录要先走一次导入流程。思路二是使用外部库功能,让 Immich 直接读取你现有的目录,不复制、不移动,存储空间不翻倍,你原来的目录继续用原来的工具管理。两种思路可以混用——旧照片走外部库,新照片走默认上传,两个来源最终在同一个时间线里汇合。
| 方案 | 适合谁 | 存储占用 | 优点 | 注意点 |
|---|---|---|---|---|
| 默认上传目录 | 从零开始、没有旧目录 | 一份 | 结构统一规整 | 迁移时整目录搬 |
| 外部库引用 | 已有大量旧照片 | 一份 | 不复制不重整理 | 删除要走外部目录 |
| 混合方案 | 旧照片多、想保留原结构 | 一份 | 兼容旧习惯 | 两套目录都要纳入备份 |
无论选哪个,记住一条铁律:照片目录、数据库、配置文件这三个东西的位置,在 Compose 文件里映射清楚,并且数据库所在的卷要纳入备份计划。数据库丢了,照片还在但全部人脸分组、相册、整理结果都会一起没——这是自建相册里代价最高的操作失误。
第二件:域名与访问方式
部署完只有在内网能访问,多少差点意思。绝大多数人装相册是为了出门也能看照片,所以部署前就应该想好外网访问方案,因为反向代理的配置和域名直接相关,事后改要动配置再重启整套服务。
可选的方案摆在这里。如果有公网 IP,做动态域名解析最直接,DDNS 配合 Nginx 或 Caddy 反向代理,端口一通就能用;没有公网 IP 时,内网穿透工具是常见替代;还有一种思路是只在内网用,出门时通过 VPN 连回家,它把网络入口完全收窄,安全性反而最好。每种方案的配置工作量不同,先定方案再写配置是省事的关键。如果你对内网穿透、端口转发这些概念还比较生,建议先读一读《软路由从入门到精通》 的外网访问章节,方案定好了,反向代理一章照着改配置就行。
不建议的做法是先随手填一个内网地址凑合用、想着以后再改。反向代理一旦绑定到某个地址,后面切换域名时要改的不只是代理配置,还有手机 App 里存的登录地址、家人手机上已经登录的会话——这些隐形成本会让人一拖再拖,最后相册永远只有在家里能用。

域名之外还有证书。云相册之所以无感,是因为 HTTPS 由平台包办;自建相册想要手机 App 正常工作,HTTPS 基本是硬性要求——App 的备份和同步接口大多要求安全上下文。好在现在申请免费证书非常容易,Caddy 甚至能自动申请并续期,几乎做到一次配置永久不管,这块在反向代理一章会给出完整的配置说明。
| 访问方式 | 前提条件 | 配置量 | 适合谁 |
|---|---|---|---|
| DDNS 加反向代理 | 有公网 IP | 中 | 有宽带条件、想要完整体验 |
| 内网穿透工具 | 无公网 IP | 中少 | 想要完整体验但没公网 |
| VPN 回家 | 路由器支持 | 少 | 重安全、只给自己用 |
| 纯内网 | 同一局域网 | 零 | 先跑通再说 |
第三件:账号怎么分
第三个决定是给家里每个人开账号,还是所有人共用一个账号。这个决定现在看无所谓,照片一多就会显现出来。
共享账号的缺点很直接:人脸识别会把全家人的脸混在一起分组,每个人的照片要靠手动分拣;搜索某人的照片时无法按人物过滤;共享相册功能也要围着一个人转,家人想建自己的相册都没地方下手。分账号则各看各的照片,互不打扰,想共享的再建共享相簿,权限粒度清晰。
| 维度 | 单账号共享 | 每人一账号 |
|---|---|---|
| 人脸分组 | 全家人脸混在一起 | 各自独立分组 |
| 照片可见性 | 全部互相可见 | 默认隔离,可按需共享 |
| 管理复杂度 | 简单 | 要管理几个账号 |
| 共享相册 | 只能围绕一个人 | 任意成员可建可加 |
给家人开账号还有一个额外的好处:手机 App 登录各自的账号,备份自动分开,谁也不会把工作截图混进家庭相册里,孩子的照片只给孩子这一组人脸归档。管理员账号只用来做系统设置,不放照片、不登录手机 App,这个习惯建议从第一天就养成。
家庭成员不多的时候,账号管理也不是负担。Immich 支持管理员直接新增用户并分配初始密码,家人用各自的账号登录手机 App 之后修改一次密码即可。如果想给年长的家人简化体验,可以把他的账号上传权限保留、管理权限全部收走,这样他只需要享受相册,不需要理解相册。
| 账号类型 | 数量 | 权限建议 |
|---|---|---|
| 管理员 | 一个 | 只做系统设置与维护 |
| 家庭成员 | 每人一个 | 上传浏览,按需共享 |
| 访客账号 | 看需要 | 只读特定相册 |
第四件容易漏的事:时间与时区
严格说是三件半事。容器服务默认时区不统一是新手最容易踩的暗坑:部署完发现时间线里今天的照片出现在昨天的格子,照片日期对不上,排查一圈才意识到是容器时区没有设。这件事在 Compose 文件里只要加一行环境变量就能解决,属于花十秒钟省两小时的那种配置。
和时区一起值得检查的是 NTP 时间同步。NAS 主机长期开机,时钟漂移不明显,但如果机器放过假、断过电,系统时间偏了,新照片的时间戳会跟着错位。时间在相册里是第一索引,一旦乱了不像文件名还能补救——先把时间同步打开再开始装服务。
| 配置项 | 作用 | 后果 |
|---|---|---|
| 容器时区 | 照片分组按本地时间 | 时间线日期错位 |
| 主机 NTP | 系统时钟准确 | 新照片时间戳偏移 |
| 数据库时区 | 内部时间戳一致 | 跨时区排序混乱 |
好在时区这类配置在 Immich 的文档示例里都有体现,照抄官方模板基本不会踩漏。真正要自己拿主意的还是前面三件事,这也是为什么把它们单列一章。
| 检查项 | 待定内容 |
|---|---|
| 容器时区 | 与主机一致的时区设置 |
| NTP 同步 | 开启并核对当前时间 |
还有一个常见的心态是等一切条件都齐了再开始。其实部署这件事本身是可重复的,推倒重来一次的成本远低于想象:数据是外部目录的就不动它,数据库重建也能重来。先把三件事的答案填进下面的表格,剩下的在动手里解决。
一张部署前检查表
把三件事并成一张表,逐项打勾之后就可以进入下一章了。建议把这份表直接填一遍,部署时对照着改 Compose 参数,比改到一半再回头要踏实得多。

| 检查项 | 待定内容 |
|---|---|
| 照片目录 | 默认上传还是外部库 |
| 存储位置 | 数据目录与数据库卷分开 |
| 外网方案 | DDNS 还是穿透还是 VPN |
| 域名 | 用哪个域名访问 |
| 证书 | 手动申请还是 Caddy 自动 |
| 账号体系 | 每人一账号还是共享 |
| 管理员账号 | 只做管理不放照片 |
表里每一行都对应 Compose 文件的一项或者部署流程的一步,部署章节会逐行解释它们分别要改成什么。填好这张表再往下走,你会发现后面的操作几乎就是机械地把答案抄进配置里。
小结
目录方案决定数据怎么长、备份怎么做;域名与访问方式决定相册在哪里能用、配置文件怎么写;账号体系决定人脸识别干不干净、照片隔不隔离。这三件事在部署前花十分钟定稿,能避免部署完成后推倒重来的狼狈。从下一章开始,进入真正的部署环节。
延伸阅读
- 下一章《Docker Compose 全家桶解读》:逐服务讲清 Compose 文件每一项的含义。
- 《OpenWrt 基础教程》:外网访问涉及路由器设置时的参考。
