Docker容器——immich
点击展开更新日志
2025
08-11
Created
nexttime
会有些什么呢(❁´◡`❁)
¶源起
因为想折腾不想用威联通自带的相册管理软件,因此经过浅浅的搜索,决定部署 immich。
本文所用的 docker-compose.yml 是实际跑过的,因此基本不会存在什么大问题(如果遇到了其它问题,那就遇到了吧。。),请善用搜索引擎及大模型,特别是 GitHub issue,会很有帮助。
¶部署环境
-
硬件环境
- CPU:n7505 2C4T,核显
- 内存:32G
- 硬盘:100G
-
软件环境
- 底层系统:PVE9.0.3
- OS:Debian13 trixie
- 虚拟化容器:LXC 非特权模式
- Docker:28.3.3
¶部署
¶创建数据目录
根据你的喜好决定数据目录位置!
1 | mkdir -p /data/docker/immich |
¶下载部署文件
docker-compose.yml
官方 docker-compose.yml:
1 | wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml |
建议调整项:
immich-machine-learning开启硬件加速- 更新镜像
- 取消 hwaccl 注释
- 添加自定义网络,如
immich - 如果是 HDD,取消
database相关注释
🍀:关于模型如果有条件是建议在 immich 后台修改直接下载的,如果不行就只能找一下网上第三方的下载地址,然后拷贝到挂载目录。
.env
1 | wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env |
- 修改时区:
TZ=Asia/Shanghai - 修改数据库密码:注意建议仅使用大小写字母和数字
hwaccel.ml.yml
如果需要使用 GPU 加速机器学习,还需要进行额外配置。
以 Intel 核显为例:
-
下载配置:
1
wget https://github.com/immich-app/immich/releases/latest/download/hwaccel.ml.yml
-
在
immich-machine-learning下的 docker-compose.yml 中,取消注释 extends 部分并将 cpu 更改为适当的后端,这里是openvino -
immich-machine-learning中,在镜像末尾添加-openvino以使用硬件加速镜像
如果配置了智能搜索检查日志存在错误:
No GPU device found in OpenVINO. Falling back to CPU.可能需要修改
hwaccel.ml.yml,在openvino下新增环境变量和group_add:
1 | openvino: |
¶部署
1 | # 建议先用这个命令检查启动是否正常 |
¶immich cli
官方文档在这里:Immich CLI
简单使用:
¶安装
1 | # 卸载旧版本 |
¶登录认证:
1 | # 1. 从账户设置获取 API Key |
¶命令行参数
1 | $ immich |
上传命令选项
1 | Usage: immich upload [paths...] [options] |
¶迁移备份
20250817: 已实际测试可以使用以下操作完成数据完整迁移。
¶数据库备份
进入 docker 容器
1 | pg_dumpall -U postgres -h localhost -p 5432 2> "/tmp/error.log" | gzip > immich_postgres_dump_$(date +%Y%m%d).sql.gz |
¶文件备份
打包 library 目录即可:
1 | tar -zcvf library.tar.gz library/ |
¶传输数据
- 将以上备份的数据库和文件拷贝到新的服务器 immich 数据目录下
- 将
docker-compose.yml、.env、hwaccel.ml.yml拷贝到新的服务器 immich 数据目录下
¶恢复数据备份
执行以下命令恢复备份(注意操作及顺序):
1 | # 此时应该还没有创建容器,有的话就删除,包括数据 |
¶问题处理
¶openvino 不工作
解决方案是修改 hwaccel.ml.yml ,增加相关环境变量配置。
参考 issue
报错信息:
1 | pthread_setaffinity_np failed for thread: 19, index: 0, mask: {2, 3, }, error code: 22 error msg: Invalid argument. Specify the number of threads explicitly so the affinity is not set |
解决方案是 .env 添加一个环境变量:
1 | MACHINE_LEARNING_MODEL_INTRA_OP_THREADS=2 |
参考 issue
¶升级2.2版本照片不显示
现象:相册及首页照片不显示
原因:F12看到是因为 CSP 策略阻止了WebAssembly模块的编译:
1 | CompileError: WebAssembly.Module(): Compiling or instantiating WebAssembly module violates the following Content Security policy directive because 'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive: |
解决方案:修改 CSP 策略,可以直接注释掉 Content-Security-Policy 相关配置,不放心可以在 server 块下添加如下配置:
1 | add_header Content-Security-Policy "script-src 'self' 'wasm-unsafe-eval'; object-src 'self';" always; |
重新刷新页面即可。这里有个笨b一直在改其它网站的 Content-Security-Policy,还说怎么不生效,我不说是谁。




