Docker 玩法

飞牛NAS部署Immich:下一代智能相册管理

飞牛NAS(fnOS)的用户群体中,相册管理一直是个高频需求。官方自带的相册应用虽然够用,但在人脸识别、时间线整理、跨设备备份方面,总觉得差了点意思。今天我们来部署一套目前 GitHub 上最火的开源相册方案——Immich,配合飞牛NAS的 Docker 环境,打造一个真正智能的私人照片云。

为什么选择 Immich?

Immich 在自托管圈子里热度极高,它主打的是“ Google Photos 的开源替代”。核心亮点包括:

  • 强大的 AI 人脸识别和物体识别(基于机器学习模型)。
  • 自动按时间、地点、人物生成回忆时间线。
  • 支持 iOS/Android 原生 App,后台自动备份,体验接近原生相册。
  • 支持多用户,适合家庭共享。
  • 完全开源,数据掌握在自己手里。

飞牛NAS 的 Docker 管理界面做得很直观,这让 Immich 的部署难度降到了最低。我们不需要敲一堆复杂的 docker-compose 命令,直接在图形化界面里操作即可。

准备工作

在开始之前,请确保你的飞牛NAS满足以下条件:

  1. 系统版本为最新版 fnOS(建议 v0.8.x 以上)。
  2. 存储空间充足,建议至少预留 100GB 以上,因为照片和 AI 模型会占用空间。
  3. 内存建议 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-serverimmich-machine-learningimmich_redisimmich_database 四个容器都在运行状态。

打开浏览器,访问 http://你的飞牛IP:2283。首次访问会进入初始化页面,创建一个管理员账号(邮箱+密码),这个就是你的超级管理员。

进阶配置:外网访问与硬件加速

配置域名反代

如果你有公网 IP 或内网穿透工具,建议在飞牛NAS的“网络设置”或第三方反向代理工具(如 Nginx Proxy Manager)中,将 immich 绑定到一个子域名,并开启 HTTPS。Immich 的移动端 App 强烈建议使用 HTTPS 连接,否则会被系统拦截。

启用 GPU 加速(可选)

如果你的飞牛NAS 有 Intel 核显(比如 N100、J4125),可以在 docker-compose.ymlimmich-server 服务中添加以下配置,启用硬件转码,大幅提升视频播放流畅度:

  devices:
    - /dev/dri:/dev/dri

修改后,点击项目右侧的“重新部署”即可生效。

使用体验与技巧

  1. 移动端备份:在手机应用商店搜索 “Immich” 下载官方 App,登录你的服务器地址。开启“后台备份”后,照片会自动上传,并且可以设置仅在 WiFi 下备份,节省流量。

  2. AI 识别:默认情况下,Immich 会在后台自动扫描照片,进行人脸聚类和场景识别。刚部署完可能需要几个小时才能完成首次索引,耐心等待即可。识别结果非常准确,甚至能区分侧脸和背影。

  3. 存储策略:Immich 默认将原图存储在 /usr/src/app/upload 目录下,即我们映射的 data/library 文件夹。建议定期在“管理-存储”中查看空间占用。

  4. 家庭共享:在管理后台可以创建多个用户账号,家庭成员各自拥有独立空间,也可以共享特定相册,非常适合家庭使用。

注意事项与故障排查

  • 如果页面无法访问,先检查四个容器是否都处于 running 状态。如果 immich_server 反复重启,多半是 .env 文件里的数据库密码与 compose 文件里的不一致,或者 data 目录权限不足。
  • 更新 Immich 版本时,不要直接在容器里点“重建”。正确做法是:在项目设置里,修改镜像标签为最新 release,然后点击“重新部署”。官方升级频率较高,建议每月更新一次。
  • 数据库是 PostgreSQL,务必定期备份 data/database 文件夹。可以使用飞牛NAS的“定时任务”功能,每天凌晨压缩备份该目录。

总结

通过飞牛NAS的 Docker 项目功能,我们成功部署了 Immich,获得了媲美商业云相册的智能管理体验。整个过程无需命令行基础,纯图形化点击即可完成。Immich 的加入,让飞牛NAS 在个人云存储领域的竞争力大大增强,无论是照片的智能分类、跨设备同步,还是家庭多用户协作,它都交出了令人满意的答卷。现在,你可以放心地把手机里积累多年的照片全部交给它了。

💬 评论区
发表评论

暂无评论,来说两句吧