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核心功能清单

  1. 📱手机APP:手机相册增量自动备份,只传新增照片视频,保留原图,支持选择性备份相册
  2. 🧠本地AI(不上传外网)
    • 人脸识别,自动归类同一个人的所有照片
    • CLIP语义搜索:输入文字描述直接检索图片,不需要打标签
    • 重复图片自动识别合并
  3. 🗺️地图相册:读取照片GPS信息,在地图上展示拍摄地点
  4. 📅时间线 & 回忆(Memories):当年今日照片,类似谷歌相册回忆
  5. 🎬视频:自动转码,网页端在线播放H.264/H.265,支持视频缩略图
  6. 🖼️格式支持:JPG、PNG、HEIC、RAW(DNG/CR3/NEF)、GIF、MP4、MOV等
  7. 👥多用户隔离:每个用户独立相册空间,互不干扰
  8. 🔗分享:生成带时效的公开分享链接、共享相册给家人
  9. 🔒加密保护:锁定私密相册,EXIF元数据查看
  10. 网页端完整管理,支持拖拽上传、图片简单裁剪调色

三、⚠️重要缺点(部署前必须知道)

  1. 内存消耗巨大:AI模型启动就要占用4~6GB内存。4G内存群晖不推荐部署。
  2. 数据库是PostgreSQL,整套项目一共5个容器(immich-server、immich-microservices、immich-web、redis、postgres),不是单容器项目。
  3. 托管模式:默认会把上传照片复制到immich管理目录,不能直接读取你NAS原有照片文件夹(有只读外部库功能,但有限制)
  4. 容器多,故障点比Calibre-web多,需要Dozzle看日志排错。
  5. 转码需要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

五、部署常见坑(写入文档)

  1. 内存不足OOM:现象:容器反复崩溃重启,Dozzle日志out of memory。解决:扩容内存,或者关闭AI功能(不推荐)。
  2. 权限报错:library目录没有递归读写权限,上传图片失败。
  3. 端口2283冲突:提前检查端口占用。
  4. 升级Immich:直接在Container Manager重建项目,镜像会自动拉最新release;数据库会自动迁移(升级前务必备份pgdata文件夹)。
  5. 外部照片库:如果你想读取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 ,看看界面和功能是不是你想要的。