飞牛NAS(fnOS)的用户群体中,相册管理一直是个高频需求。官方自带的相册应用虽然够用,但在人脸识别、时间线整理、跨设备备份方面,总觉得差了点意思。今天我们来部署一套目前 GitHub 上最火的开源相册方案——Immich,配合飞牛NAS的 Docker 环境,打造一个真正智能的私人照片云。
为什么选择 Immich?
Immich 在自托管圈子里热度极高,它主打的是“ Google Photos 的开源替代”。核心亮点包括:
- 强大的 AI 人脸识别和物体识别(基于机器学习模型)。
- 自动按时间、地点、人物生成回忆时间线。
- 支持 iOS/Android 原生 App,后台自动备份,体验接近原生相册。
- 支持多用户,适合家庭共享。
- 完全开源,数据掌握在自己手里。
飞牛NAS 的 Docker 管理界面做得很直观,这让 Immich 的部署难度降到了最低。我们不需要敲一堆复杂的 docker-compose 命令,直接在图形化界面里操作即可。
准备工作
在开始之前,请确保你的飞牛NAS满足以下条件:
- 系统版本为最新版 fnOS(建议 v0.8.x 以上)。
- 存储空间充足,建议至少预留 100GB 以上,因为照片和 AI 模型会占用空间。
- 内存建议 8GB 或以上,人脸识别和视频转码比较吃内存。
部署步骤全解析
Immich 官方推荐使用 docker-compose 方式部署,包含多个服务(server、web、machine-learning、redis、postgres)。在飞牛NAS上,我们有两种方式实现,这里推荐最稳妥的“项目文件”方式。
第一步:创建 Immich 项目文件夹
打开飞牛NAS的“文件管理”,进入你的 Docker 数据盘(例如 /vol1/1000/docker),新建一个名为 immich 的文件夹。在这个文件夹里,再新建一个子文件夹 data,用于存放数据库文件,避免数据丢失。
第二步:编写 docker-compose.yml
在 immich 文件夹下,用记事本或任意文本编辑器新建一个文件,命名为 docker-compose.yml。将以下内容复制进去(注意修改时区):
services:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:release
command: [start.sh, server]
volumes:
- /vol1/1000/docker/immich/data/model-cache:/model-cache
- /vol1/1000/docker/immich/data/library:/usr/src/app/upload
env_file:
- .env
ports:
- 2283:2283
depends_on:
- redis
- database
restart: always
immich-machine-learning:
container_name: immich_machine_learning
image: ghcr.io/immich-app/immich-machine-learning:release
volumes:
- /vol1/1000/docker/immich/data/model-cache:/model-cache
env_file:
- .env
restart: always
redis:
container_name: immich_redis
image: docker.io/redis:6.2-alpine
restart: always
database:
container_name: immich_database
image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: immich
POSTGRES_DB: immich
volumes:
- /vol1/1000/docker/immich/data/database:/var/lib/postgresql/data
restart: always
第三步:配置环境变量文件
在同一个文件夹下,再新建一个 .env 文件(注意前面有个点)。写入以下内容:
TZ=Asia/Shanghai
DB_PASSWORD=你的数据库密码
DB_USERNAME=immich
DB_DATABASE_NAME=immich
请将 你的数据库密码 替换成一个强密码,例如 MyImmichPass2024!。保存这两个文件。
第四步:在飞牛NAS中启动项目
打开飞牛NAS的“Docker”应用,点击左侧的“项目”。点击“添加项目”。
- 项目名称:填写
immich
- 路径:选择你刚才创建好的
/vol1/1000/docker/immich 文件夹。
- 来源:选择“使用现有 docker-compose.yml”。
点击“下一步”,系统会自动读取文件内容。确认无误后,点击“部署”。飞牛会开始拉取镜像并启动容器。这个过程取决于你的网速,大概需要 5-10 分钟。
第五步:初始化管理员账号
部署完成后,在 Docker 项目的容器列表里,确认 immich-server、immich-machine-learning、immich_redis、immich_database 四个容器都在运行状态。
打开浏览器,访问 http://你的飞牛IP:2283。首次访问会进入初始化页面,创建一个管理员账号(邮箱+密码),这个就是你的超级管理员。
进阶配置:外网访问与硬件加速
配置域名反代
如果你有公网 IP 或内网穿透工具,建议在飞牛NAS的“网络设置”或第三方反向代理工具(如 Nginx Proxy Manager)中,将 immich 绑定到一个子域名,并开启 HTTPS。Immich 的移动端 App 强烈建议使用 HTTPS 连接,否则会被系统拦截。
启用 GPU 加速(可选)
如果你的飞牛NAS 有 Intel 核显(比如 N100、J4125),可以在 docker-compose.yml 的 immich-server 服务中添加以下配置,启用硬件转码,大幅提升视频播放流畅度:
devices:
- /dev/dri:/dev/dri
修改后,点击项目右侧的“重新部署”即可生效。
使用体验与技巧
-
移动端备份:在手机应用商店搜索 “Immich” 下载官方 App,登录你的服务器地址。开启“后台备份”后,照片会自动上传,并且可以设置仅在 WiFi 下备份,节省流量。
-
AI 识别:默认情况下,Immich 会在后台自动扫描照片,进行人脸聚类和场景识别。刚部署完可能需要几个小时才能完成首次索引,耐心等待即可。识别结果非常准确,甚至能区分侧脸和背影。
-
存储策略:Immich 默认将原图存储在 /usr/src/app/upload 目录下,即我们映射的 data/library 文件夹。建议定期在“管理-存储”中查看空间占用。
-
家庭共享:在管理后台可以创建多个用户账号,家庭成员各自拥有独立空间,也可以共享特定相册,非常适合家庭使用。
注意事项与故障排查
- 如果页面无法访问,先检查四个容器是否都处于
running 状态。如果 immich_server 反复重启,多半是 .env 文件里的数据库密码与 compose 文件里的不一致,或者 data 目录权限不足。
- 更新 Immich 版本时,不要直接在容器里点“重建”。正确做法是:在项目设置里,修改镜像标签为最新
release,然后点击“重新部署”。官方升级频率较高,建议每月更新一次。
- 数据库是 PostgreSQL,务必定期备份
data/database 文件夹。可以使用飞牛NAS的“定时任务”功能,每天凌晨压缩备份该目录。
总结
通过飞牛NAS的 Docker 项目功能,我们成功部署了 Immich,获得了媲美商业云相册的智能管理体验。整个过程无需命令行基础,纯图形化点击即可完成。Immich 的加入,让飞牛NAS 在个人云存储领域的竞争力大大增强,无论是照片的智能分类、跨设备同步,还是家庭多用户协作,它都交出了令人满意的答卷。现在,你可以放心地把手机里积累多年的照片全部交给它了。