前言
手机里的照片越来越多以后,我最担心的已经不是存储空间不够,而是这些照片什么时候会真正丢失。
孩子第一次走路、全家旅行、父母过生日,这些画面可能同时散落在几部手机、旧电脑、聊天记录和不同云盘中。平时很少整理,真正想找某一年春节的合影时,才发现根本想不起它到底保存在哪里。
云相册虽然方便,但照片始终存放在第三方平台中。免费空间可能调整,账号可能停用,平台规则也可能变化。对于承载家庭记忆的照片来说,仅仅"上传成功"还不够,更重要的是自己能掌握存储位置,并且拥有独立备份。
Immich提供了一种更接近主流云相册的自托管方案。它可以把手机照片自动备份到NAS中,并通过时间线、人物识别、地图和关键词搜索帮助整理内容。照片依然保存在自己的设备里,但日常浏览和查找不再需要手动翻文件夹。
本文将在飞牛NAS中通过Docker部署Immich,完成账号初始化、照片上传、相册创建和搜索体验。最后再借助cpolar建立公网访问入口,让家人即使不在同一个局域网中,也能继续查看和管理这套家庭相册。

1.什么是Immich?
💕核心特点:
完全私有,数据自主
- 所有照片、视频、元数据都保存在你自己的设备上(如群晖、TrueNAS、Linux 服务器等)
- 不上传到任何第三方云服务,杜绝隐私泄露风险
智能功能强大
- 人脸识别:自动识别人物并分组(支持手动标注)
- 时间线视图:按年/月/日浏览,像翻实体相册
- 地图视图:基于照片 GPS 位置展示足迹
- 对象识别(实验性):识别"狗""汽车""海滩"等场景(需启用 AI 模型)
多端同步 & 自动备份
- 官方提供 iOS 和 Android App
- 支持后台自动上传(可设仅 Wi-Fi、仅充电时)
- Web 端功能完整,支持拖拽上传、批量管理
技术先进,性能出色
- 使用 TypeScript + React(前端),NestJS + PostgreSQL + Redis(后端)
- 媒体文件直接存储在本地磁盘(不依赖数据库存二进制)
- 支持 硬件转码(Intel Quick Sync / NVIDIA NVENC)加速视频预览
部署简单,生态友好
- 官方提供完整的 docker-compose.yml,一行命令即可启动
- 支持 ARM 架构(树莓派、Mac M1/M2 友好)
- 可通过 WebDAV 导入现有照片库
- 社区活跃,GitHub 超 65k+ stars(截至 2026 年)
| 用户类型 | 使用方式 |
|---|---|
| 家庭用户 | 在 NAS 上部署 Immich,全家手机自动备份,爷爷奶奶也能通过网页看孙子照片 |
| 摄影爱好者 | 替代 Google Photos,保留原始 RAW/JPEG 文件,无压缩、无删减 |
| 隐私倡导者 | 拒绝大厂数据收集,掌控自己的数字记忆 |
| 极客/DIY 玩家 | 搭配 Homepage、cpolar、Tailscale,打造完整的家庭数字中枢 |
2.安装前提条件
2.1ssh远程连接到飞牛
- 开启【SSH 服务】
- 使用终端(Windows PowerShell / Mac Terminal)登录:
在设置--->SSH中开启SSH服务:



2.2验证docker是否开启
使用命令:
shell
docker -v
systemctl status -v
也可以直接在飞牛主页查看(其他机器也是这样的哦~)

3.部署Immich
3.1 安装Immich
进入名为immich-app的目录,从Immich官方GitHub最新发布版 下载标准的docker-compose.yml文件,并保存为当前目录下的docker-compose.yml:
shell
cd immich-app
wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml

shell
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env

下载完所有文件后,使用Docker Compose启动Immich服务:
shell
docker-compose up -d

部署完成后,在浏览器中输入 http://飞牛IP:2283 就能看到cAdvisor的界面:

3.2 使用Immich
使用邮箱注册用户:

注册后,一路默认安装:



完成后,来到存储页面:

上传图片:

上传图片后,我们能看到,日期也是分明的:

也可以使用关键字搜索图片:

我们来创建相薄:

上传照片:


创建完成:

还可以隐藏图片:

收藏图片:

更多好的功能,等你慢慢挖掘吧!
在本地NAS部署Immich,虽然能安全地将全家照片归档于私有设备,但一旦出门在外,想快速查看某张孩子的照片或分享旅行回忆,却因没有公网IP而束手无策。此时,cpolar 成为打通内网与外网的关键桥梁 ------它无需复杂配置,只需一条命令,就能为Immich的Web服务(默认端口2283)创建一条加密的HTTPS隧道,生成一个临时或固定的公网访问地址。无论你在咖啡馆、机场还是客户现场,只要打开浏览器,输入cpolar提供的链接,即可像在家一样流畅浏览、搜索甚至分享相册,而所有数据始终留在你的NAS中,真正实现"回忆随行,隐私无忧"。
4.安装cpolar实现随时随地开发
4.1 什么是cpolar?
cpolar是一款安全高效的内网穿透工具,无需公网IP或复杂配置,只需一条命令,即可将本地服务器、Web服务或任意端口映射到公网,让你随时随地远程访问内网应用,特别适合开发调试、远程运维和应急部署等场景。
4.2 部署cpolar
cpolar 可以将你本地电脑中的服务(如 SSH、Web、数据库)映射到公网。即使你在家里或外出时,也可以通过公网地址连接回本地运行的开发环境。
❤️以下是安装cpolar步骤:
使用一键脚本安装命令:
shell
sudo curl https://get.cpolar.sh | sh

安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)
shell
sudo systemctl status cpolar

Cpolar安装和成功启动服务后,在浏览器上输入虚拟机主机IP加9200端口即:【http://ip:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:
打开浏览器访问本地9200端口,使用cpolar账户密码登录即可,登录后即可对隧道进行管理。

5.配置公网地址
登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理------创建隧道:
- 隧道名称:可自定义,本例使用了:Immich,注意不要与已有的隧道名称重复
- 协议:http
- 本地地址:2283
- 域名类型:随机域名
- 地区:选择China Top

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址,接下来就可以在其他电脑或者移动端设备(异地)上,使用地址访问。

访问成功。

6.保留固定公网地址
使用cpolar为其配置二级子域名,该地址为固定地址,不会随机变化。

点击左侧的预留,选择保留二级子域名,地区选择china Top,然后设置一个二级子域名名称,我使用的是Immich,大家可以自定义。填写备注信息,点击保留。

登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理------隧道列表,找到所要配置的隧道,点击右侧的编辑。

修改隧道信息,将保留成功的二级子域名配置到隧道中
- 域名类型:选择二级子域名
- Sub Domain:填写保留成功的二级子域名
- 地区: China Top
点击更新

更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。

最后,我们使用固定的公网地址在任意设备的浏览器中访问,可以看到成功访问的页面,这样一个永久不会变化的二级子域名公网网址即设置好了。

总结
完成部署后,飞牛NAS就不再只是一个存放照片的硬盘,而是变成了一套可以持续整理家庭影像的数字相册。手机照片可以逐步集中到Immich中,再通过时间线、人物、地点和相册重新建立清晰结构。
在局域网中,可以直接通过飞牛NAS的IP和2283端口访问;配置cpolar后,在外出旅行、异地办公或探亲时,也能通过浏览器打开同一套相册。需要向家人展示某段旅行、孩子成长记录或旧照片时,不必再回到不同设备中反复查找。
Immich真正解决的,不只是照片上传问题,而是让家庭影像拥有一个长期、统一的归处。新照片持续进入,旧照片逐步补齐,相册结构也会随着时间不断完善,原本散落的图片才能真正沉淀成一套家庭记忆库。
不过,NAS中的照片仍然需要独立备份。硬盘损坏、误删除和设备故障都可能造成数据丢失,不能因为完成了私有部署,就把NAS当成唯一副本。保持至少一份额外备份,并定期检查照片和数据库状态,这套家庭相册才能真正长期保存下去。
照片的价值不在于数量,而在于多年以后还能被找到、被打开,也能继续讲起当时的故事。Immich负责整理,NAS负责保存,cpolar负责让回忆不再受地点限制,而真正值得守护的,始终是照片里的人和时间。