immich 高性能相册管理工具-私有化部署【群晖】
背景和软件特点
以下是当前生活照片、视频的管理思路。其他图片和视频会单独管理,有机会再分享。
iCloud + immich + 百度云
-
iCloud
-
immich
-
性能超好,而且还支持网页查看,看生活视频非常流畅而且无损。拍的视频分享和家人和朋友预览,简直太棒了!无损、速度超快、界面友好。(前提是你已经做好了内网穿透)
-
我会将视频上传后,将本地和iCloud的视频删除,空间释放。
-
原本用的群晖自带的moment,看图片还可以。但是对于视频支持非常糟糕,特别是iPhone 的HEVC格式,长一点mov视频,网页端可能根本看不了,app端还有加载进度条?! 查看视频非常难受,超级难用!分享给家人朋友预览界面也特别差!
-
百度云
- 用于冷备份,最后的保护;免费空间有2T,阿里云免费空间小,而且被电影资源占据一些空间,所以选择百度云。
以部署到群晖NAS - docker为例
官方文档
https://github.com/imagegenius/docker-immich
民间大佬制作的轻量docker版
imagegenius/docker-immich)
操作步骤
一、先在docker目录下创建文件夹

二、开始部署
在 portioner 里部署,docker 管理方便。

点击 步骤2会构建出3个容器

官方的 docker-compose
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| --- version: "2.1" services: immich: image: ghcr.io/imagegenius/immich:latest container_name: immich environment: - PUID=1000 - PGID=1000 - TZ=Etc/UTC - DB_HOSTNAME=192.168.1.x - DB_USERNAME=postgres - DB_PASSWORD=postgres - DB_DATABASE_NAME=immich - REDIS_HOSTNAME=192.168.1.x - DISABLE_MACHINE_LEARNING=false - DISABLE_TYPESENSE=false - DB_PORT=5432 - REDIS_PORT=6379 - REDIS_PASSWORD= - MACHINE_LEARNING_WORKERS=1 - MACHINE_LEARNING_WORKER_TIMEOUT=120 volumes: - path_to_appdata:/config - path_to_photos:/photos - path_to_machine-learning:/config/machine-learning - path_to_imports:/import ports: - 8080:8080 restart: unless-stopped
redis: image: redis ports: - 6379:6379 container_name: redis
postgres14: image: postgres:14 ports: - 5432:5432 container_name: postgres14 environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: immich volumes: - path_to_postgres:/var/lib/postgresql/data
|
我修改过的 docker-compose
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| --- version: "2.1" services: immich: image: ghcr.io/imagegenius/immich:latest container_name: immich environment: - PUID=1026 - PGID=101 - TZ=Asia/Shanghai - DB_HOSTNAME=192.168.3.3 - DB_USERNAME=postgres - DB_PASSWORD=postgres - DB_DATABASE_NAME=immich - REDIS_HOSTNAME=192.168.3.3 - DISABLE_MACHINE_LEANRNING=false - DISABLE_TYPESENSE=false - DB_PORT=15432 - REDIS_PORT=6379 - REDIS_PASSWORD= - CUDA_ACCELERATION=false volumes: - /volume1/docker/immich/config:/config - /volume1/docker/immich/photos:/photos - /volume1/docker/immich/machine:/config/machine-learning ports: - 18080:8080 restart: unless-stopped redis: image: redis ports: - 6379:6379 container_name: redis postgres14: image: postgres:14 ports: - 15432:5432 container_name: postgres14 environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: immich volumes: - /volume1/docker/immich/db:/var/lib/postgresql/data
|
如果有出现问题: 建议看看这个简短的视频!https://www.bilibili.com/video/BV1ro4y1K76U/
目录介绍
备份恢复
我发现备份这4个目录是可以恢复的, 但是如果里面的信息被破坏了就麻烦了,我就经历过 😦
-
旧设备:
-
新设备:
- 先创建 immich 主目录, 再分别创建4个子目录
- 重新拉取镜像,创建容器,启动,页面打开成功!
你可能想问为什么要多次一举? 主要是怕目录权限出现问题,官方建议不要手动创建 db 目录,以免读取不到 immich 数据库。我也不记得哪里出现了问题,即使权限拉满了,依旧识别不到 immich 数据库。恢复备份后来单独做过测验,证明是可行的。跟官方沟通过,记得在替换的时候把相关容器先关闭哦!
注意事项
之前上传过的图片,即便拖拽到文件目录也会再上传一遍,因为是根据数据库信息做的校验,所以相同的会存有两份。所以只能通过官方的上传入口
immich 缺点
- 稳定性
- 开源团队维护和疑问解答都非常积极,项目发展前景很好。但是只建议将 immich 只作为辅助工具,服务蹦了也不怕。
- 同步
- 因为是依赖数据库存储和加载内容,所以你直接将文件拖进
library/admin/ 里面,它是不会处理的。你必须通过上传,系统会自动产生这张图片的相关信息。
- 最坏的情况出现
- 当镜像无法启动,启动后无法进入管理页面,出现 502 等情况;不要着急, 建议直接去官方 issues 里搜索,或创建 issue 提问。
在使过用一段时间后我发现了一些细节问题,当前和 MT-Photo 双持使用。