Immich:开源自托管照片&视频管理系统,对标Google相册,Docker部署,群晖Container Manager可以直接跑。 -✅ 官方演示地址(可以直接进去体验示范页面)
- https://demo.immich.app
- 账号:
demo@immich.app - 密码:
demo - 可以直接网页体验全部UI、搜索、时间线、地图相册功能。手机Immich APP也可以填这个demo地址连接测试。
一、Immich vs 群晖原生相册(Synology Photos)对比
| 项目 | Immich | 群晖Synology Photos |
|---|---|---|
| AI能力 | 本地AI人脸识别、人物分组;CLIP语义搜索(直接搜文字:海边、猫咪、日落,自动识别图片内容);重复照片自动检测; | 有人脸识别,没有图片内容语义搜索,只能搜标签/文件名 |
| 手机端 | iOS/安卓官方APP,后台自动原图备份,支持Apple实况照片LivePhoto、安卓动态照片MotionPhoto完整保存; | 群晖DS photo,备份稳定性一般,实况照片支持弱 |
| 视频能力 | 自动硬件转码H265,网页直接播放;支持长视频预览; | 依赖群晖自带转码引擎,低性能NAS转码吃力 |
| 界面体验 | 时间线、地图相册、回忆(当年今日),UI现代化,滑动流畅; | 界面偏传统,滑动大图加载慢 |
| 多用户&共享 | 独立账号空间,可创建公开分享链接、共享相册,精细权限; | 支持共享,但公开链接功能简单 |
| 资源开销 | 很大。AI人脸、CLIP图片语义模型非常吃内存。建议至少8G内存NAS;4G内存会很卡甚至OOM崩溃。 | 轻量,低内存NAS也能跑 |
| 存储机制 | 文件写入Immich托管目录,自动管理原图+缩略图,不要手动丢文件;数据库PostgreSQL | 可以直接读取NAS现有照片文件夹,不移动原图(优势) |
一句话结论: 如果你NAS内存≥8G,追求手机自动原图备份、强大AI识图、现代化云相册体验 → Immich完胜群晖Photos。 NAS只有4G内存,只是简单浏览SMB里老照片,不想移动原有图片文件 → 继续用群晖Photos。
二、Immich核心功能清单
- 📱手机APP:手机相册增量自动备份,只传新增照片视频,保留原图,支持选择性备份相册
- 🧠本地AI(不上传外网)
- 人脸识别,自动归类同一个人的所有照片
- CLIP语义搜索:输入文字描述直接检索图片,不需要打标签
- 重复图片自动识别合并
- 🗺️地图相册:读取照片GPS信息,在地图上展示拍摄地点
- 📅时间线 & 回忆(Memories):当年今日照片,类似谷歌相册回忆
- 🎬视频:自动转码,网页端在线播放H.264/H.265,支持视频缩略图
- 🖼️格式支持:JPG、PNG、HEIC、RAW(DNG/CR3/NEF)、GIF、MP4、MOV等
- 👥多用户隔离:每个用户独立相册空间,互不干扰
- 🔗分享:生成带时效的公开分享链接、共享相册给家人
- 🔒加密保护:锁定私密相册,EXIF元数据查看
- 网页端完整管理,支持拖拽上传、图片简单裁剪调色
三、⚠️重要缺点(部署前必须知道)
- 内存消耗巨大:AI模型启动就要占用4~6GB内存。4G内存群晖不推荐部署。
- 数据库是PostgreSQL,整套项目一共5个容器(immich-server、immich-microservices、immich-web、redis、postgres),不是单容器项目。
- 托管模式:默认会把上传照片复制到immich管理目录,不能直接读取你NAS原有照片文件夹(有只读外部库功能,但有限制)。
- 容器多,故障点比Calibre-web多,需要Dozzle看日志排错。
- 转码需要CPU/硬解,低性能J4125以下的NAS,大批量视频转码很慢。
四、群晖Container Manager部署前置准备
目录示例
/volume2/docker/immich-app/File Station手动创建文件夹:/volume2/docker/immich-app/ ├── library # 存储上传原图、缩略图 ├── pgdata # Postgres数据库文件 └── redis # Redis缓存权限:
immich-app整个文件夹,Everyone读取写入,递归应用到子文件夹。
项目:群晖Container Manager → 新建项目,
docker-compose.yml+.env两个文件。 Immich必须配套.env环境变量文件,不能只写compose。
docker-compose.yml(群晖可用版本)
services:
immich-server:
image: ghcr.io/immich-app/immich-server:release
container_name: immich-server
restart: unless-stopped
volumes:
- ./library:/usr/src/app/library
env_file:
- .env
depends_on:
- redis
- postgres
networks:
- immich_network
immich-microservices:
image: ghcr.io/immich-app/immich-server:release
container_name: immich-microservices
restart: unless-stopped
volumes:
- ./library:/usr/src/app/library
env_file:
- .env
depends_on:
- redis
- postgres
networks:
- immich_network
command: ["start-microservices"]
immich-web:
image: ghcr.io/immich-app/immich-web:release
container_name: immich-web
restart: unless-stopped
env_file:
- .env
networks:
- immich_network
ports:
- "2283:3000"
redis:
image: redis:alpine
container_name: immich-redis
restart: unless-stopped
networks:
- immich_network
postgres:
image: tensorchord/pgvecto-rs:pg14-v0.2.0
container_name: immich-postgres
restart: unless-stopped
volumes:
- ./pgdata:/var/lib/postgresql/data
env_file:
- .env
networks:
- immich_network
networks:
immich_network:
.env 文件(放在同目录,修改数据库密码)
# 数据库配置
DB_HOSTNAME=postgres
DB_USERNAME=immich
DB_PASSWORD=你的自定义强密码
DB_DATABASE_NAME=immich
# Redis
REDIS_HOSTNAME=redis
# 上传位置
UPLOAD_LOCATION=./library
DB_DATA_LOCATION=./pgdata
# 时区
TZ=Asia/Shanghai
部署完成后访问地址:
http://群晖IP:2283,打开网页注册管理员账号。 手机APP填写服务地址http://群晖IP:2283/api
五、部署常见坑(写入文档)
- 内存不足OOM:现象:容器反复崩溃重启,Dozzle日志out of memory。解决:扩容内存,或者关闭AI功能(不推荐)。
- 权限报错:library目录没有递归读写权限,上传图片失败。
- 端口2283冲突:提前检查端口占用。
- 升级Immich:直接在Container Manager重建项目,镜像会自动拉最新release;数据库会自动迁移(升级前务必备份pgdata文件夹)。
- 外部照片库:如果你想读取NAS已经存在的老照片,可以开启外部库,但外部库照片不能修改、不能备份,只能浏览,新建照片建议走APP上传。
六、访问信息汇总(部署成功后)
- Web访问:
[http://192.168.0.51:2283](http://192.168.0.51:2283) - 手机APP服务地址:
[http://192.168.0.51:2283/api](http://192.168.0.51:2283/api) - 端口:宿主机2283 → 容器3000
- 挂载目录
- library:原图、缩略图存储
- pgdata:PostgreSQL数据库
- redis:缓存
体验建议
先打开官方demo页面玩一下:https://demo.immich.app ,看看界面和功能是不是你想要的。