Docker 玩法

飞牛NAS Docker实战:手把手部署Immich智能相册,打造私有Google Photos

2026-07-30 2 admin

为什么选择 Immich?

如果你用过 Google Photos,一定对它的智能分类、人脸识别、地点聚合等功能印象深刻。但云端相册意味着你的照片存储在别人服务器上,隐私和容量都是问题。Immich 是一款开源自部署的智能相册管理系统,功能直逼 Google Photos,而且完全运行在你自己的硬件上——搭配飞牛NAS(fnOS),堪称绝配。

Immich 的核心能力:

  • 📸 自动备份:手机端 App 自动同步照片和视频到 NAS
  • 🧠 AI 智能识别:人脸聚类、物体识别、文字 OCR 检索
  • 🗺️ 地图视图:根据照片 GPS 信息在地图上展示足迹
  • 🔍 强大搜索:按人物、地点、物体、日期多维度检索
  • 🤝 共享相册:与家人朋友创建共享相册,协同管理
  • 🎨 回忆功能:自动生成"那年今日"回忆

环境准备

在飞牛NAS上部署 Immich 之前,请确保:

  1. fnOS 版本:建议升级到最新稳定版(本文基于 fnOS 0.8.x)
  2. Docker 环境:fnOS 已内置 Docker,在应用中心确认 Docker 服务已开启
  3. 存储空间:Immich 数据库和照片会占用大量空间,建议准备至少 100GB 以上的存储卷
  4. 内存:AI 模型推理需要一定内存,建议 4GB 以上
  5. SSH 访问:便于执行命令(可选,fnOS 的 Docker 管理界面也可操作)

部署步骤

第一步:创建目录结构

首先通过 SSH 登录飞牛NAS,或使用 fnOS 的文件管理器,在存储池上创建 Immich 的数据目录:

# 在 /vol1/docker/ 下创建 immich 目录(根据你的实际存储路径调整)
mkdir -p /vol1/docker/immich/{library,upload,pgdata,redis}

目录说明: - library:存放 Immich 生成的缩略图、转码视频、AI 模型等 - upload:存放用户上传的原始照片和视频 - pgdata:PostgreSQL 数据库持久化存储 - redis:Redis 缓存数据

第二步:编写 Docker Compose 配置

/vol1/docker/immich/ 目录下创建 docker-compose.yml

version: "3.8"

services:
  immich-server:
    image: altairlab/immich-server:release
    container_name: immich-server
    volumes:
      - /vol1/docker/immich/upload:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env
    ports:
      - "2283:2283"
    depends_on:
      - redis
      - database
    restart: unless-stopped

  immich-microservices:
    image: altairlab/immich-server:release
    container_name: immich-microservices
    volumes:
      - /vol1/docker/immich/upload:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env
    command: ["start-microservices.sh"]
    depends_on:
      - redis
      - database
    restart: unless-stopped

  immich-machine-learning:
    image: altairlab/immich-machine-learning:release
    container_name: immich-machine-learning
    volumes:
      - /vol1/docker/immich/library:/cache
    env_file:
      - .env
    restart: unless-stopped

  database:
    image: tensorchord/pgvecto-rs:pg14-v0.2.0
    container_name: immich-postgres
    env_file:
      - .env
    environment:
      POSTGRES_DB: ${DB_DATABASE_NAME}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_PASSWORD: ${DB_PASSWORD}
    volumes:
      - /vol1/docker/immich/pgdata:/var/lib/postgresql/data
    restart: unless-stopped

  redis:
    image: redis:6.2-alpine
    container_name: immich-redis
    volumes:
      - /vol1/docker/immich/redis:/data
    restart: unless-stopped

第三步:配置环境变量

/vol1/docker/immich/ 目录下创建 .env 文件:

# 数据库配置
DB_USERNAME=postgres
DB_PASSWORD=your_strong_password_here
DB_DATABASE_NAME=immich

# 上传位置
UPLOAD_LOCATION=/usr/src/app/upload

# JWT 密钥(使用 openssl rand -base64 36 生成随机字符串)
JWT_SECRET=随机生成的密钥字符串

# 时区
TZ=Asia/Shanghai

# AI 模型缓存
MACHINE_LEARNING_CACHE_FOLDER=/cache

⚠️ 安全提示:请务必修改 DB_PASSWORDJWT_SECRET 为强随机字符串!

第四步:启动服务

cd /vol1/docker/immich
docker compose pull    # 拉取最新镜像
docker compose up -d   # 后台启动

初次启动需要拉取镜像,耐心等待几分钟。使用以下命令检查服务状态:

docker compose logs -f   # 查看实时日志
docker compose ps        # 查看容器状态

当所有容器的 STATUS 都显示 Up 时,部署完成。在浏览器访问 http://你的NAS_IP:2283 即可看到 Immich 的初始化页面。

第五步:初始配置

  1. 访问 Immich Web 界面,创建管理员账户
  2. 在手机上下载 Immich App(iOS App Store / Google Play 均可搜索 "Immich")
  3. 在 App 中填入服务器地址:http://你的NAS_IP:2283
  4. 开启自动备份,选择要备份的相册

性能优化建议

1. 启用硬件转码

如果你的飞牛NAS配备了 Intel CPU(支持 Quick Sync Video),可以启用硬件加速转码。在 docker-compose.ymlimmich-microservicesimmich-machine-learning 服务中添加:

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

2. 调整 AI 模型

.env 中可以指定使用的 AI 模型,低配机器建议使用轻量模型:

MACHINE_LEARNING_MODEL_NAME=ViT-B-32__openai

3. 存储优化

Immich 的缩略图和转码视频会占用大量空间。可以在管理后台设置中限制转码视频的质量和分辨率,或定期清理不需要的文件。

常见问题排查

Q: 容器启动后立即退出? 检查 .env 文件是否配置正确,特别注意 DB_PASSWORD 不能包含特殊字符(如 #&)。

Q: 手机备份很慢? 检查手机和 NAS 是否在同一局域网。如果 NAS 使用机械硬盘,大量小文件写入本身就是瓶颈,建议使用 SSD 作为 upload 目录。

Q: AI 人脸识别不工作? 检查 immich-machine-learning 容器日志,确保模型下载成功。首次启动会自动下载模型文件,耗时较长。

Q: 如何升级 Immich?

cd /vol1/docker/immich
docker compose pull
docker compose up -d

总结

在飞牛NAS上部署 Immich,你获得了一个完全自主可控的智能相册系统——所有照片存储在自己硬盘上,不需要订阅付费,不用担心隐私泄露。配合 Immich 出色的 App 体验,你几乎感受不到和 Google Photos 的差异。对于热爱拍照、重视隐私的 NAS 用户来说,这是一个必装应用。

搭配飞牛NAS的 RAID 冗余保护,你的数字记忆将得到最稳妥的保管。