飞牛NAS部署Immich:下一代智能相册管理
在数字时代,照片和视频是我们最珍贵的数字资产之一。然而,随着拍摄数量的激增,如何高效地管理、检索并安全备份这些记忆,成了许多人的痛点。Google Photos 虽然强大,但存储空间限制和隐私问题让越来越多人开始寻找自托管方案。
Immich 正是目前开源社区中最炙手可热的自托管相册管理工具。它拥有媲美 Google Photos 的 AI 智能搜索、自动备份、时间线整理等功能,且完全由你掌控数据。今天,我们就来手把手教你在飞牛NAS(fnOS)上,通过 Docker 部署一套属于自己的 Immich 智能相册系统。
为什么选择 Immich?
在动手前,我们先简单了解一下它的核心优势:
- AI 智能识别:自动识别照片中的人脸、宠物、场景(如“海滩”、“生日”、“汽车”),并支持自然语言搜索(例如搜索“日落”或“孩子”)。
- 自动备份:手机 App 支持后台自动备份,与 NAS 无缝同步。
- 时间线与回忆:按时间轴管理,自动生成“那年今日”回忆。
- 多用户支持:可以邀请家人朋友创建独立账号,相互隔离。
- 开源免费:代码完全开源,无任何功能限制。
准备工作
在开始之前,请确保你的飞牛NAS已经满足以下条件:
- 系统版本:fnOS 最新版本(确保 Docker 功能正常)。
- 硬件:建议至少 4GB 内存,因为 Immich 的机器学习(人脸识别)比较吃资源。如果你的 CPU 支持硬件加速(如 Intel Quick Sync),效果会更好。
- 存储空间:为数据库和原始照片预留足够的空间。
第一步:创建目录结构
为了让数据管理更清晰,我们首先在 NAS 的文件管理器中创建专用的文件夹。建议在 Docker 数据目录下创建:
immich(主目录)data(用于存放 Immich 的数据库文件)photos(用于存放你上传的原始照片和视频)
你可以通过 fnOS 的文件管理器,在“Docker”共享文件夹下新建这些目录。路径示例:/vol1/1000/docker/immich/data 和 /vol1/1000/docker/immich/photos。
第二步:部署 Immich 服务
Immich 由多个组件构成(服务器、微服务、Redis、PostgreSQL 等),手动配置比较繁琐。最便捷的方式是使用官方提供的 docker-compose.yml 文件。
在飞牛NAS的“Docker”应用中,点击“项目” -> “新建项目”。在“项目名称”里填上 immich,然后选择“代码”模式,将以下内容复制粘贴进去:
version: "3.8"
name: immich
services:
immich-server:
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
command: ['start.sh', 'immich']
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
env_file:
- .env
ports:
- 2283:3001
depends_on:
- redis
- database
restart: always
immich-microservices:
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
command: ['start.sh', 'microservices']
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
env_file:
- .env
depends_on:
- redis
- database
restart: always
redis:
image: docker.io/redis:6.2-alpine
restart: always
database:
image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_DB: ${DB_DATABASE_NAME}
volumes:
- ${DB_DATA_LOCATION}:/var/lib/postgresql/data
restart: always
注意:这个 Compose 文件引用了环境变量,我们需要先创建一个 .env 配置文件。
在“项目”编辑界面,找到“环境变量”或“高级”选项卡,添加以下变量(或者你可以直接创建一个名为 .env 的文件放在同目录下):
# 请替换为你的实际路径
UPLOAD_LOCATION=/vol1/1000/docker/immich/photos
DB_DATA_LOCATION=/vol1/1000/docker/immich/data
# 数据库密码,请修改为强密码
DB_PASSWORD=your_strong_password
DB_USERNAME=immich
DB_DATABASE_NAME=immich
# 版本号,保持默认即可
IMMICH_VERSION=release
把上面这段代码保存为 .env 文件内容,然后在飞牛的 Docker 项目中,选择“使用 .env 文件”或者直接将上述变量粘贴到环境变量配置区域。点击“部署”即可。
等待几分钟,Docker 会自动拉取镜像并启动所有服务。当看到所有容器状态显示为“运行中”时,部署就成功了。
第三步:首次配置与使用
完成部署后,在浏览器中访问 http://你的NAS_IP:2283。
- 创建管理员账户:第一次访问会要求你创建管理员账号。填写邮箱和密码即可。
- 设置服务器名称:给你的相册起个名字,比如“我的家庭相册”。
登录后,你会看到一个空白的界面。接下来,我们可以进行以下设置:
- 管理用户:在“管理”->“用户”中,可以添加新用户,邀请家人朋友。
- 存储设置:建议在“管理”->“设置”->“存储模板”中,配置你喜欢的文件命名规则(例如
{{y}}/{{m}}/{{d}})。
第四步:手机 App 自动备份
Immich 最爽的功能就是手机自动备份。
- 在手机应用商店搜索 “Immich” 并安装。
- 打开 App,输入你的 NAS 地址(
http://NAS_IP:2283)以及刚才创建的账号密码。 - App 会弹出备份权限请求,授权后即可开启“自动备份”功能。它会自动将相册里的新照片悄悄传到你的 NAS 上,再也不用担心手机空间不够。
第五步:AI 智能搜索(人脸识别)
Immich 默认会进行 AI 识别,但需要一点时间后台处理。
- 在 Web 界面的“管理”->“机器学习”中,你可以看到人脸识别、对象检测等任务的进度。
- 如果识别速度慢,可以在该页面调整“工作模式”。对于性能较强的 NAS(如 Intel 8代以上 CPU),可以启用硬件加速,大幅提升识别速度。
- 处理完成后,在搜索栏输入“小狗”或“家人”的名字,就能立刻找到相关照片,体验非常惊艳。
进阶优化与注意事项
- 反向代理:如果你希望在外网也能访问,建议在飞牛的应用中心安装“飞牛穿透”或配置
Nginx Proxy Manager,配合域名使用,并务必开启 HTTPS 以保护数据安全。 - 备份策略:Immich 的数据库(
data目录)和照片(photos目录)是核心数据。请务必在飞牛NAS的“定时备份”任务中,将这两个文件夹纳入备份计划。 - 版本升级:Immich 迭代很快,升级前请先备份数据库。在飞牛 Docker 项目中,点击“更新”即可。升级后如遇问题,可以回滚到之前的镜像版本。
总结
通过飞牛NAS强大的 Docker 功能,我们仅用几分钟就部署了一套功能完整的 Immich 智能相册。它彻底解决了照片散落、难以检索的问题,更重要的是,所有数据都安全地保存在你自己的 NAS 中,隐私无忧。无论是整理个人回忆,还是作为家庭共享相册,Immich 都是一个近乎完美的选择。现在,就开始上传你的第一张照片,体验 AI 带来的便利吧!
暂无评论,来说两句吧