1、前言
官网地址:immich.app
GitHub地址:github.com/immich-app/…
Immich可以做什么?
- 相册管理:拥有云端备份功能,支持多个设备将照片或视频存储到服务器中
- 地图:根据照片中的GPS在地图中生成足迹图
- 智能化:支持文字、人物、地点搜图
2、安装
本教程环境:Windows11+Docker+一块HDD硬盘做存储
2.1、从github拉最新包
Github链接:github.com/immich-app/…
拉下来后进入docker目录,编辑docker-compose.yml与example.env文件
name: immich
services:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
volumes:
# 图片存储位置
- ${UPLOAD_LOCATION}:/data
- /etc/localtime:/etc/localtime:ro
env_file:
- .env
ports:
- '2283:2283'
depends_on:
- redis
- database
restart: always
healthcheck:
disable: false
immich-machine-learning:
container_name: immich_machine_learning
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
volumes:
# 挂载本地模型
- F:/Immich/mode:/cache/clip
env_file:
- .env
restart: always
healthcheck:
disable: false
redis:
container_name: immich_redis
image: docker.io/valkey/valkey:8-bookworm@sha256:fea8b3e67b15729d4bb70589eb03367bab9ad1ee89c876f54327fc7c6e618571
healthcheck:
test: redis-cli ping || exit 1
restart: always
database:
container_name: immich_postgres
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:bcf63357191b76a916ae5eb93464d65c07511da41e3bf7a8416db519b40b1c23
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_DB: ${DB_DATABASE_NAME}
POSTGRES_INITDB_ARGS: '--data-checksums'
# 如果数据是在SSD硬盘上,那么此处注释
DB_STORAGE_TYPE: 'HDD'
volumes:
- ${DB_DATA_LOCATION}:/var/lib/postgresql/data
shm_size: 128mb
restart: always
volumes:
model-cache:
#容器内部的网络定义
networks:
default:
name: my-network
external: true
# 图片存储位置
UPLOAD_LOCATION=F:/ImmichPhotos
# 数据库存储位置
DB_DATA_LOCATION=F:/ImmichData
# 设置时区(可选)
TZ=Asia/Shanghai
# 使用的 Immich 版本 改为固定版本比较稳定 生产环境 → 固定版本(如 v1.71.0)避免意外升级 测试环境 → 使用 release 或 latest(但可能有风险)
IMMICH_VERSION=v2.0.1
# 数据库连接密码
DB_PASSWORD=yourPassword
DB_USERNAME=immich
DB_DATABASE_NAME=immich
DB_DATA_LOCATION=./immich-db
文件完成后,将example.env重命名为.env文件
2.2、启动
在程序的docker目录中执行 docker-compose up -d启动程序,这过程中可能会下载一段时间,如果出现网络的问题,可以尝试更换docker镜像源或者是使用其他方式下载。
启动完成之后就可以打开2283端口去初始化程序的一些内容,本文已经部署完成,这里就不多写了。
3、机器学习设置
1、修改URL:修改为http://immich_machine_learning:3003
注:此处其实访问的是machine_learning容器的地址,并不是公网,所以需要保证server容器与machine_learning连通性正常,在前面的脚本已经设置过了,所以此处只需要修改地址即可。
2、智能搜索
智能搜索本次教程采用的是常用的XLM-Roberta-Large-Vit-B-16Plus模型
人脸识别模型采用的是antelopev2。如果特定人物照片少的话,可以修改最少人脸数。如果识别不到,可以修改其他两个参数,最后在去人物中合并一下即可。
接下来安装模型XLM-Roberta-Large-Vit-B-16Plus、antelopev2模型
import os
os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'
os.system('huggingface-cli download --resume-download immich-app/antelopev2 --local-dir ./antelopev2')
import os
os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'
os.system('huggingface-cli download --resume-download immich-app/XLM-Roberta-Large-Vit-B-16Plus --local-dir ./XLM-Roberta-Large-Vit-B-16Plus')
执行这两段Python脚本即可下载。下载后,将模型移动到docker-compose.yml中immich-machine-learning定义挂载目录即可使用
PS:作者在操作时发现antelopev2模型总是在server中报500的错误,machine-learning服务日志中总是提示无法清除缓存,最终是把外部挂载的antelopev2删除就正常自己下载了。如果碰到此问题可以按照我的方法进行尝试。
4、其它
4.1地图问题
使用过程中发现图片中的地点是拼音。解决办法是更换国内的地图反编码。在docker-compose.yml文件中新增挂载目录
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
volumes:
# 图片存储位置
- ${UPLOAD_LOCATION}:/data
- /etc/localtime:/etc/localtime:ro
# 国内的地图反编码
- F:/Immich/geodata:/build/geodata
- F:/Immich/i18n-iso-countries:/usr/src/app/node_modules/i18n-iso-countries
下载地址:www.123pan.com/s/mYvMTd-SJ…
i18n-iso-countries会有作者不定期更新,按需下载。下载地址:github.com/ZingLix/imm…
4.2其它客户端下载
据说服务端和客户端需要保持一致的版本
4.3外部图片挂载丢失
系统中有一个功能可以挂载图片的方式作为一个图库存在,但作者挂载后隔一段时间图片就会被放在回收站,详情提示找不到该文件,但是容器内和外面的磁盘都可以看见这张图。研究了一段时间无奈只能通过上传的方式去导入图库中。若你也碰到这个问题可以参照我这个方法去解决。
参考链接