为什么选择Immich?
如果你正在寻找一个能替代Google Photos的私有照片管理方案,Immich绝对值得一试。Immich是一款开源自托管的照片和视频管理平台,它提供了:
- 🖼️ 智能AI识别:自动识别人脸、物体、场景,并支持以自然语言搜索照片
- 📱 全平台客户端:iOS、Android端体验流畅,支持自动备份手机照片
- 🗂️ 强大的相册管理:时间线浏览、地图视图、相册分享等功能一应俱全
- 🔒 数据完全私有:所有照片存储在你自己飞牛NAS上,不用担心隐私泄露
- ⚡ 硬件转码支持:可利用飞牛NAS的核显进行视频硬件转码
相比其他方案,Immich的UI/UX设计更接近Google Photos,学习成本极低,家人也能轻松上手。
准备工作
在飞牛NAS上部署Immich之前,请确保:
- 飞牛NAS已安装Docker和Docker Compose:fnOS系统自带Docker支持,可在应用中心直接启用
- 存储空间充足:建议为Immich预留至少100GB空间用于照片存储
- 了解基础路径:需要确定照片存放的物理路径,比如
/vol1/1000/photos
创建目录结构
登录飞牛NAS终端,创建Immich所需的目录结构:
# 创建Immich主目录
mkdir -p /vol1/1000/docker/immich
cd /vol1/1000/docker/immich
# 创建数据存放子目录
mkdir -p {postgres,redis,library,upload,profile,video,thumbs,encoded-video}
合理的目录规划能让日后的维护和备份更加方便。
Docker Compose 部署
在 /vol1/1000/docker/immich 目录下创建 docker-compose.yml 文件:
version: '3.8'
services:
immich-server:
image: ghcr.io/immich-app/immich-server:release
container_name: immich-server
volumes:
- /vol1/1000/photos:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
environment:
DB_HOSTNAME: immich-postgres
DB_USERNAME: postgres
DB_PASSWORD: postgres
DB_DATABASE_NAME: immich
REDIS_HOSTNAME: immich-redis
TZ: Asia/Shanghai
ports:
- 2283:3001
depends_on:
- immich-redis
- immich-postgres
restart: unless-stopped
immich-machine-learning:
image: ghcr.io/immich-app/immich-machine-learning:release
container_name: immich-machine-learning
volumes:
- ./model-cache:/cache
environment:
TZ: Asia/Shanghai
restart: unless-stopped
immich-redis:
image: redis:6.2-alpine
container_name: immich-redis
restart: unless-stopped
immich-postgres:
image: tensorchord/pgvecto-rs:pg14-v0.2.0
container_name: immich-postgres
environment:
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
POSTGRES_DB: immich
volumes:
- ./postgres:/var/lib/postgresql/data
restart: unless-stopped
相比复杂的多容器拆分方案,这个配置精简了服务数量,更适合家用飞牛NAS的性能水平。如果你的NAS内存超过8GB,也可以替换为官方最新版的完整多容器配置。
启动与初始化
# 在docker-compose.yml所在目录执行
docker-compose up -d
# 查看各容器启动状态
docker-compose ps
等待所有容器状态变为 healthy 后,在浏览器访问 http://你的飞牛IP:2283 即可看到Immich初始化页面。
初始化设置
- 创建管理员账户(邮箱+密码)
- 进入「管理」→「设置」,配置以下关键项:
- 外部库:可导入飞牛NAS上已有的照片文件夹
- 转码设置:根据NAS硬件能力调整视频转码参数
- 模板存储:建议与上传目录一致
关键配置说明
存储路径优化
上面配置中 /vol1/1000/photos 是照片的实际存储位置。你可以修改为飞牛NAS上任何有足够空间的路径。Immich会在这个目录下自动创建以下结构:
photos/
├── library/ # 原始照片和视频
├── upload/ # 上传缓存
├── profile/ # 用户头像
├── thumbs/ # 缩略图
└── encoded-video/ # 转码后的视频
核显硬件加速(可选)
如果你的飞牛NAS搭载Intel CPU,可以启用硬件转码。在 immich-server 的配置中添加:
devices:
- /dev/dri:/dev/dri
environment:
- HWACCEL_ENABLED=true
启用后可大幅降低视频转码时的CPU占用。
手机端配置
- 从App Store或Google Play下载Immich客户端
- 打开App,输入服务器地址:
http://你的飞牛IP:2283/api
- 登录管理员账户
- 开启「自动备份」,选择需要备份的相册
如果希望在外网也能访问Immich,可以配合飞牛NAS的DDNS和反向代理实现安全访问。
日常使用技巧
- 智能搜索:试试搜索"猫"、"海滩"、"生日蛋糕",AI识别会让搜索结果非常精准
- 共享相册:可以为家人创建共享相册,各自上传但共同查看
- 重复检测:Immich支持自动检测重复照片,帮你节省存储空间
- 定期备份数据库:建议每周导出一次PostgreSQL数据库:
bash
docker exec immich-postgres pg_dump -U postgres immich > immich-backup.sql
常见问题
Q: 容器启动后访问页面空白?
A: 检查 immich-machine-learning 容器是否正常启动,它负责AI模型推理。可以查看日志:docker logs immich-machine-learning
Q: 上传大视频失败?
A: 在飞牛NAS的Docker设置中增加内存限制,或关闭视频转码功能。
Q: 移动端备份很慢?
A: 确保手机和NAS在同一个局域网下,传输速度取决于WiFi带宽。首次全量备份建议在家完成。
总结
Immich是目前开源社区最优秀的自托管照片管理方案,配合飞牛NAS的Docker能力,搭建过程非常简单。部署完成后,你会拥有一个功能不输商业云相册的私有照片平台,数据完全由自己掌控,再也不必为云存储订阅付费。
如果这篇文章对你有帮助,欢迎分享给更多飞牛NAS玩家!