容器项目&相册类
相册
说起相册,大家肯定都是熟悉群辉的 Synology Photo s这样的品牌 NAS 的相册。当然,免费的飞牛 NAS 的相册也是不错的,而且有 AI 相册。容器类得相册项目,现在主要有两个项目,国产收费的 MT Photos 和国外免费项目 immich。
我先把我的 docker 树目录再放出来,方便你修改路径,如果和我一样的路径就不需要修改。
root(根目录)├── docker(分支节点:docker目录)│ ├── apps(叶子节点:docker app目录)│ │ ├── mt-photos路径│ │ └── immich路径│ └── docker-compose(叶子节点:docker-compose.yaml目录)│ │ ├── mt-photos│ │ │ └── docker-compsoe.yaml│ │ ├── immich│ │ └──── docker-compsoe.yaml│ ├── photos│ │ ├── mt-photos│ │ └── immich-photos...1 MT Photos
1.1 什么是MT Photos
MT Photos 是什么? MT Photos 是一款为NAS用户量身打造的照片管理系统。通过 AI 技术,自动将您的照片整理、分类,包括但不限于时间、地点、人物、照片类型。先不看项目地址,我们先来看一下 MT Photos 在线 dome 地址体验一下。
账号:demo,密码:mtphotos

1.2 部署项目 MT Photos
如果不需要同时部署 MT Photos AI,那么只需要下面的代码就行。
# 官方文档# https://mtmt.tech/
# 体验demo,账号demo,密码demo# https://d.mtmt.tech/login
# GPS API 配置# https://mtmt.tech/docs/start/gps_api/
# 生成激活码# https://auth.mtmt.tech/iKey
# ---
name: mt-photos# 最后编辑时间:2025-02-28services: mt-photos: # 镜像地址 image: registry.cn-hangzhou.aliyuncs.com/mtphotos/mt-photos:latest # 容器名 container_name: mt-photos # 主机名 hostname: mt-photos environment: # 用户和用户组权限,ssh中使用“id 用户名”查看,用户组一般为100(users) # 第一个用户而言,群晖为1026,新绿联为1001,linux类系统为1000,后续用户均+1 # 如果出现无法下载的情况,改为0 - PUID=1000 - PGID=100 # 默认创建新文件的权限,一般写022 - UMASK=022 # 时区 - TZ=Asia/Shanghai # 驱动 devices: # 添加硬件加速转码 - /dev/dri:/dev/dri # dns dns: - 114.114.114.114 # 路径 volumes: # 配置文件目录 # mt-photos配置文件路径 - /docker/apps/mt-photos/config:/config # mt-photos手机相册上传路径 - /docker/apps/mt_photos/upload:/upload # 其他相册路径 - /photos/mt-photos:/photos # 网络模式:桥接模式 network_mode: bridge # 端口 ports: # webUI端口 - 8063:8063 # 重启策略,总是重启 restart: always但是如果需要同时部署 MT Photos AI,那么需要下面的代码才可以。
# 官方文档# https://mtmt.tech/
# 体验demo,账号demo,密码demo# https://d.mtmt.tech/login
# 添加智能识别# https://mtmt.tech/docs/advanced/ocr_api/
# 添加人脸识别API# https://mtmt.tech/docs/advanced/facial_api/
# GPS API 配置# https://mtmt.tech/docs/start/gps_api/
# 生成激活码# https://auth.mtmt.tech/iKey
# ---
name: mt-photos# 最后编辑时间:2025-02-28services: mt-photos: # 镜像地址 image: registry.cn-hangzhou.aliyuncs.com/mtphotos/mt-photos:latest # 容器名 container_name: mt-photos # 主机名 hostname: mt-photos environment: # 用户和用户组权限,ssh中使用“id 用户名”查看,用户组一般为100(users) # 第一个用户而言,群晖为1026,新绿联为1001,linux类系统为1000,后续用户均+1 # 如果出现无法下载的情况,改为0 - PUID=1000 - PGID=100 # 默认创建新文件的权限,一般写022 - UMASK=022 # 时区 - TZ=Asia/Shanghai # 驱动 devices: # 添加硬件加速转码 - /dev/dri:/dev/dri # dns dns: - 114.114.114.114 # 依赖 depends_on: # 连接AI相册 - mtphotos_ai # 连接AI人脸识别 - mtphotos_face_api # 路径 volumes: # 配置文件目录 # mt-photos配置文件路径 - /docker/apps/mt-photos/config:/config # mt-photos手机相册上传路径 - /docker/apps/mt_photos/upload:/upload # 其他相册路径 - /photos/mt-photos:/photos # 网络模式:桥接模式 network_mode: bridge # 端口 ports: # webUI端口 - 8063:8063 # 重启策略,总是重启 restart: always
mtphotos_ai: # 镜像地址 image: registry.cn-hangzhou.aliyuncs.com/mtphotos/mt-photos-ai:onnx-latest # 容器名 container_name: mtphotos_ai # 主机名 hostname: mtphotos_ai environment: # mtphotos_ai密码,可以自定义,不改也行 - API_AUTH_KEY=mt_photos_ai_extra ports: # AI相册连接端口 - 8060:8060 # 重启策略,总是重启 restart: always
mtphotos_face_api: # 镜像地址 # 如果下载不到,前面加上加速地址 # crpi-gcuyquw9co62xzjn.cn-guangzhou.personal.cr.aliyuncs.com image: devfox101/mt-photos-insightface-unofficial:latest # 容器名 container_name: mtphotos_face_api # 主机名 hostname: mtphotos_face_api environment: # mtphotos_face_ai密码,可以自定义,不改也行 - API_AUTH_KEY=mt_photos_ai_extra ports: # AI人脸识别连接端口 - 8066:8066 # 重启策略,总是重启 restart: always- mt-photos ai,识别需要填写接口地址
http://ip:8060,API_AUTH_KEY填写mt\_photos\_ai\_extra(或者你自定义密码)。 - 添加人脸识别 API,需要填写接口地址
http://ip:8066,API_AUTH_KEY填写mt\_photos\_ai\_extra(或者你自定义密码)。 - 最后一个需要 GPS 信息识别地址的话,那就看教程 wiki 地址,注册高德地图,获取 api 填写就行。为什么我不用内置的识别模型,首先内置识别识别率低,其次自己跟着搭建各种API有参与感。
- 总结,mt-photos 是付费的国产相册软件,体验也不错,安装免费试用一个月,好用就买,不好用就看下面我介绍得 immich。
2 immich
2.1 什么是 immich
immich 是作者仿照谷歌相册写的一款相册软件,非常得外国化,以前不支持中文,现在加入了中文。永久免费的软件,自带 AI 识别,更新快其实有的时候也不是一件好事儿,作者开发积极,更新频繁。当然你不更新其实也没什么事情的,一样的好用。先不看项目地址,我们先来看一下 immich 在线 dome 地址体验一下。
邮箱:demo@immich.app,密码:demo

体验了dome相册,我们再来看看immich项目具体的wiki。
immich 我们需要创建 4 个文件,immich 原本项目的 docker-compose.yaml 文件,但是根据不同硬件我介绍了四个配置,你可以根据自己硬件选择不同的文件。最后就是需要创建硬件加速 hwaccel.ml.yaml,ai大模型 hwaccel.transcoding.yaml 以及 .env 的配置文件。
2.2 创建路径配置文件
首先我们来创建 .env 配置文件。
# immich照片存储路径UPLOAD_LOCATION=/docker/apps/immich/library
# postgres数据库存储路径,这里建议存储在/docker/apps/immich目录下,方便管理。DB_DATA_LOCATION=/docker/apps/immich/postgresTZ=Asia/Shanghai
#要使用的immich版本。您可以将其固定到特定版本,如“v1.71.0”IMMICH_VERSION=release
#postgres数据库的访问密码DB_PASSWORD=postgresDB_USERNAME=postgresDB_DATABASE_NAME=immich2.3 创建硬件加速文件
其次我们来创建 hwaccel.ml.yaml 硬件加速文件。
services: armnn: devices: - /dev/mali0:/dev/mali0 volumes: - /lib/firmware/mali_csffw.bin:/lib/firmware/mali_csffw.bin:ro # Mali firmware for your chipset (not always required depending on the driver) - /usr/lib/libmali.so:/usr/lib/libmali.so:ro # Mali driver for your chipset (always required)
cpu: {}
cuda: deploy: resources: reservations: devices: - driver: nvidia count: 1 capabilities: - gpu
openvino: device_cgroup_rules: - 'c 189:* rmw' devices: - /dev/dri:/dev/dri volumes: - /dev/bus/usb:/dev/bus/usb
openvino-wsl: devices: - /dev/dri:/dev/dri - /dev/dxg:/dev/dxg volumes: - /dev/bus/usb:/dev/bus/usb - /usr/lib/wsl:/usr/lib/wsl2.4 创建 AI 大模型文件
再次,我们来创建 hwaccel.transcoding.yaml 文件。
services: cpu: {}
nvenc: deploy: resources: reservations: devices: - driver: nvidia count: 1 capabilities: - gpu - compute - video
quicksync: devices: - /dev/dri:/dev/dri
rkmpp: security_opt: - systempaths=unconfined - apparmor=unconfined group_add: - video devices: - /dev/rga:/dev/rga - /dev/dri:/dev/dri - /dev/dma_heap:/dev/dma_heap - /dev/mpp_service:/dev/mpp_service #- /dev/mali0:/dev/mali0 # only required to enable OpenCL-accelerated HDR -> SDR tonemapping volumes: #- /etc/OpenCL:/etc/OpenCL:ro # only required to enable OpenCL-accelerated HDR -> SDR tonemapping #- /usr/lib/aarch64-linux-gnu/libmali.so.1:/usr/lib/aarch64-linux-gnu/libmali.so.1:ro # only required to enable OpenCL-accelerated HDR -> SDR tonemapping
vaapi: devices: - /dev/dri:/dev/dri
vaapi-wsl: # use this for VAAPI if you're running Immich in WSL2 devices: - /dev/dri:/dev/dri volumes: - /usr/lib/wsl:/usr/lib/wsl environment: - LIBVA_DRIVER_NAME=d3d122.5 创建无核显+cpu 运行大模型文件
众所周知,硬件加速需要硬件支持,假如你的硬件是不支持核显或者图形显卡加速,再或者你不知道怎么选择,直接用本文件肯定没错。根据自己配置,我们来创建 docker-compose.yaml 文件。
# 基于官方模板制作# 官方文档# https://immich.app# 官方compose教程# https://immich.app/docs/install/docker-compose# 官方变量说明# https://immich.app/docs/install/environment-variables# 官方CLIP说明# https://immich.app/docs/features/command-line-interface# 官方硬件转码说明# https://immich.app/docs/features/hardware-transcoding# https://hub.docker.com/r/tensorchord/pgvecto-rs
# 如果官方的镜像不好拉取,可以选择拉取以下两个镜像作为替代,部署参数完全相同,将模板上对应的镜像进行修改即可,tag也是release# https://hub.docker.com/r/altran1502/immich-server# https://hub.docker.com/r/altran1502/immich-machine-learning
# ---
name: immich# 最后编辑时间:2025-02-14services: immich-server: # 镜像地址 image: ghcr.nju.edu.cn/immich-app/immich-server:${IMMICH_VERSION:-release} # 容器名 container_name: immich_server # 主机名 hostname: immich-server volumes: # 请去.env修改路径 - ${UPLOAD_LOCATION}:/usr/src/app/upload - /etc/localtime:/etc/localtime:ro # 配置文件,指定版本,指定相册路径,数据库路径 env_file: - .env # 调用数据库 depends_on: - redis - database # 健康检查 healthcheck: disable: false # webUI端口 ports: - 2283:2283 # 重启策略,总是重启 restart: always
immich-machine-learning: # 镜像名称 image: ghcr.nju.edu.cn/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}-openvino # 容器名 container_name: immich_machine_learning # 主机名 hostname: immich_machine_learning volumes: #修改机器学习模型存储路径 - /docker/apps/immich/model-cache:/cache # 配置文件,指定版本,指定相册路径,数据库路径 env_file: - .env # 健康检查 healthcheck: disable: false # 重启策略,总是重启 restart: always
redis: # 镜像名称 image: docker.io/redis:6.2-alpine # 容器名 container_name: immich_redis # 主机名 hostname: immich_redis # 健康检查 healthcheck: test: redis-cli ping || exit 1 # 重启策略,总是重启 restart: always
database: # 镜像名称 image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0 # 容器名 container_name: immich_postgres # 主机名 hostname: immich_postgres # 配置文件 environment: # 数据库用户 POSTGRES_USER: ${DB_USERNAME} # 数据库密码 POSTGRES_PASSWORD: ${DB_PASSWORD} # 数据库名称 POSTGRES_DB: ${DB_DATABASE_NAME} POSTGRES_INITDB_ARGS: '--data-checksums' volumes: # 请去.env修改路径 - ${DB_DATA_LOCATION}:/var/lib/postgresql/data # 健康检查 healthcheck: test: >- pg_isready --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" || exit 1; Chksum="$$(psql --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" --tuples-only --no-align --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')"; echo "checksum failure count is $$Chksum"; [ "$$Chksum" = '0' ] || exit 1 interval: 5m start_interval: 30s start_period: 5m command: >- postgres -c shared_preload_libraries=vectors.so -c 'search_path="$$user", public, vectors' -c logging_collector=on -c max_wal_size=2GB -c shared_buffers=512MB -c wal_compression=on # 重启策略,总是重启 restart: always2.6 创建 intel 6 代核显 vaapi+cpu 运行大模型文件
众所周知,硬件加速需要硬件支持,假如你的硬件是 intel 6 代以上 hd610 或者 hd630 核显加速,那么你选择本文件。根据自己配置,我们来创建 docker-compose.yaml 文件。
# 基于官方模板制作# 官方文档# https://immich.app# 官方compose教程# https://immich.app/docs/install/docker-compose# 官方变量说明# https://immich.app/docs/install/environment-variables# 官方CLIP说明# https://immich.app/docs/features/command-line-interface# 官方硬件转码说明# https://immich.app/docs/features/hardware-transcoding# https://hub.docker.com/r/tensorchord/pgvecto-rs
# 如果官方的镜像不好拉取,可以选择拉取以下两个镜像作为替代,部署参数完全相同,将模板上对应的镜像进行修改即可,tag也是release# https://hub.docker.com/r/altran1502/immich-server# https://hub.docker.com/r/altran1502/immich-machine-learning
# ---
name: immich# 最后编辑时间:2025-02-14services: immich-server: # 镜像地址 image: ghcr.nju.edu.cn/immich-app/immich-server:${IMMICH_VERSION:-release} # 容器名 container_name: immich_server # 主机名 hostname: immich-server # 拓展 extends: # 调用转码文件 file: hwaccel.transcoding.yaml # 请去设置四个中的一个转码方式 [nvenc 英伟达, quicksync 英特尔核显, rkmpp rk系列的arm, vaapi, vaapi-wsl] service: vaapi volumes: # 请去.env修改路径 - ${UPLOAD_LOCATION}:/usr/src/app/upload - /etc/localtime:/etc/localtime:ro # 配置文件,指定版本,指定相册路径,数据库路径 env_file: - .env # 调用数据库 depends_on: - redis - database # 健康检查 healthcheck: disable: false # webUI端口 ports: - 2283:2283 # 重启策略,总是重启 restart: always
immich-machine-learning: # 镜像名称 image: ghcr.nju.edu.cn/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}-openvino # 容器名 container_name: immich_machine_learning # 主机名 hostname: immich_machine_learning # [armnn arm图形使用, cuda n卡cuda, openvino intel核显],机器学习调用编码器 # Example tag: ${IMMICH_VERSION:-release}-cuda 在image的镜像最后面添加相应的图形解码,如果想使用cpu则删除就可以 # 拓展 extends: # 调用转码文件 file: hwaccel.ml.yaml service: openvino # 设置四个图形解码中的一个 [armnn arm图形使用, cuda n卡cuda, openvino 优先使用,intel核显, openvino-wsl intel核显] volumes: #修改机器学习模型存储路径 - /docker/apps/immich/model-cache:/cache # 配置文件,指定版本,指定相册路径,数据库路径 env_file: - .env # 健康检查 healthcheck: disable: false # 重启策略,总是重启 restart: always
redis: # 镜像名称 image: docker.io/redis:6.2-alpine # 容器名 container_name: immich_redis # 主机名 hostname: immich_redis # 健康检查 healthcheck: test: redis-cli ping || exit 1 # 重启策略,总是重启 restart: always
database: # 镜像名称 image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0 # 容器名 container_name: immich_postgres # 主机名 hostname: immich_postgres # 配置文件 environment: # 数据库用户 POSTGRES_USER: ${DB_USERNAME} # 数据库密码 POSTGRES_PASSWORD: ${DB_PASSWORD} # 数据库名称 POSTGRES_DB: ${DB_DATABASE_NAME} POSTGRES_INITDB_ARGS: '--data-checksums' volumes: # 请去.env修改路径 - ${DB_DATA_LOCATION}:/var/lib/postgresql/data # 健康检查 healthcheck: test: >- pg_isready --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" || exit 1; Chksum="$$(psql --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" --tuples-only --no-align --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')"; echo "checksum failure count is $$Chksum"; [ "$$Chksum" = '0' ] || exit 1 interval: 5m start_interval: 30s start_period: 5m command: >- postgres -c shared_preload_libraries=vectors.so -c 'search_path="$$user", public, vectors' -c logging_collector=on -c max_wal_size=2GB -c shared_buffers=512MB -c wal_compression=on # 重启策略,总是重启 restart: always2.7 创建 intel 核显 qsv+openvino 文件
众所周知,硬件加速需要硬件支持,假如你的硬件是 intel 11 代以上核显加速,那么你选择本文件。根据自己配置,我们来创建 docker-compose.yaml 文件。
# 基于官方模板制作# 官方文档# https://immich.app# 官方compose教程# https://immich.app/docs/install/docker-compose# 官方变量说明# https://immich.app/docs/install/environment-variables# 官方CLIP说明# https://immich.app/docs/features/command-line-interface# 官方硬件转码说明# https://immich.app/docs/features/hardware-transcoding# https://hub.docker.com/r/tensorchord/pgvecto-rs
# 如果官方的镜像不好拉取,可以选择拉取以下两个镜像作为替代,部署参数完全相同,将模板上对应的镜像进行修改即可,tag也是release# https://hub.docker.com/r/altran1502/immich-server# https://hub.docker.com/r/altran1502/immich-machine-learning
# ---
name: immich# 最后编辑时间:2025-02-14services: immich-server: # 镜像地址 image: ghcr.nju.edu.cn/immich-app/immich-server:${IMMICH_VERSION:-release} # 容器名 container_name: immich_server # 主机名 hostname: immich-server # 拓展 extends: # 调用转码文件 file: hwaccel.transcoding.yaml # 请去设置四个中的一个转码方式 [nvenc 英伟达, quicksync 英特尔核显, rkmpp rk系列的arm, vaapi, vaapi-wsl] service: quicksync volumes: # 请去.env修改路径 - ${UPLOAD_LOCATION}:/usr/src/app/upload - /etc/localtime:/etc/localtime:ro # 配置文件,指定版本,指定相册路径,数据库路径 env_file: - .env # 调用数据库 depends_on: - redis - database # 健康检查 healthcheck: disable: false # webUI端口 ports: - 2283:2283 # 重启策略,总是重启 restart: always
immich-machine-learning: # 镜像名称 image: ghcr.nju.edu.cn/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}-openvino # 容器名 container_name: immich_machine_learning # 主机名 hostname: immich_machine_learning # [armnn arm图形使用, cuda n卡cuda, openvino intel核显],机器学习调用编码器 # Example tag: ${IMMICH_VERSION:-release}-cuda 在image的镜像最后面添加相应的图形解码,如果想使用cpu则删除就可以 # 拓展 extends: # 调用转码文件 file: hwaccel.ml.yaml # 设置四个图形解码中的一个 [armnn arm图形使用, cuda n卡cuda, openvino 优先使用,intel核显, openvino-wsl intel核显] service: openvino volumes: #修改机器学习模型存储路径 - /docker/apps/immich/model-cache:/cache # 配置文件,指定版本,指定相册路径,数据库路径 env_file: - .env # 健康检查 healthcheck: disable: false # 重启策略,总是重启 restart: always
redis: # 镜像名称 image: docker.io/redis:6.2-alpine # 容器名 container_name: immich_redis # 主机名 hostname: immich_redis # 健康检查 healthcheck: test: redis-cli ping || exit 1 # 重启策略,总是重启 restart: always
database: # 镜像名称 image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0 # 容器名 container_name: immich_postgres # 主机名 hostname: immich_postgres # 配置文件 environment: # 数据库用户 POSTGRES_USER: ${DB_USERNAME} # 数据库密码 POSTGRES_PASSWORD: ${DB_PASSWORD} # 数据库名称 POSTGRES_DB: ${DB_DATABASE_NAME} POSTGRES_INITDB_ARGS: '--data-checksums' volumes: # 请去.env修改路径 - ${DB_DATA_LOCATION}:/var/lib/postgresql/data # 健康检查 healthcheck: test: >- pg_isready --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" || exit 1; Chksum="$$(psql --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" --tuples-only --no-align --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')"; echo "checksum failure count is $$Chksum"; [ "$$Chksum" = '0' ] || exit 1 interval: 5m start_interval: 30s start_period: 5m command: >- postgres -c shared_preload_libraries=vectors.so -c 'search_path="$$user", public, vectors' -c logging_collector=on -c max_wal_size=2GB -c shared_buffers=512MB -c wal_compression=on # 重启策略,总是重启 restart: always2.9 创建 N 卡 nvenc+cuda 文件
众所周知,硬件加速需要硬件支持,假如你的硬件是 N 卡英伟达 cuda 加速,那么你选择本文件。根据自己配置,我们来创建 docker-compose.yaml 文件。
# 基于官方模板制作# 官方文档# https://immich.app# 官方compose教程# https://immich.app/docs/install/docker-compose# 官方变量说明# https://immich.app/docs/install/environment-variables# 官方CLIP说明# https://immich.app/docs/features/command-line-interface# 官方硬件转码说明# https://immich.app/docs/features/hardware-transcoding# https://hub.docker.com/r/tensorchord/pgvecto-rs
# 如果官方的镜像不好拉取,可以选择拉取以下两个镜像作为替代,部署参数完全相同,将模板上对应的镜像进行修改即可,tag也是release# https://hub.docker.com/r/altran1502/immich-server# https://hub.docker.com/r/altran1502/immich-machine-learning
# ---
name: immich# 最后编辑时间:2025-02-14services: immich-server: # 镜像地址 image: ghcr.nju.edu.cn/immich-app/immich-server:${IMMICH_VERSION:-release} # 容器名 container_name: immich_server # 主机名 hostname: immich-server extends: file: hwaccel.transcoding.yml # 请去设置四个中的一个转码方式 [nvenc 英伟达, quicksync 英特尔核显, rkmpp rk系列的arm, vaapi, vaapi-wsl] service: nvenc volumes: # 请去.env修改路径 - ${UPLOAD_LOCATION}:/usr/src/app/upload - /etc/localtime:/etc/localtime:ro # 配置文件,指定版本,指定相册路径,数据库路径 env_file: - .env # 调用数据库 depends_on: - redis - database # 健康检查 healthcheck: disable: false # webUI端口 ports: - 2283:2283 # 重启策略,总是重启 restart: always
immich-machine-learning: # 镜像名称 image: ghcr.nju.edu.cn/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}-openvino # 容器名 container_name: immich_machine_learning # 主机名 hostname: immich_machine_learning # [armnn arm图形使用, cuda n卡cuda, openvino intel核显],机器学习调用编码器 # Example tag: ${IMMICH_VERSION:-release}-cuda 在image的镜像最后面添加相应的图形解码,如果想使用cpu则删除就可以 # 拓展 extends: # 调用转码文件 file: hwaccel.ml.yaml service: cuda # 设置四个图形解码中的一个 [armnn arm图形使用, cuda n卡cuda, openvino 优先使用,intel核显, openvino-wsl intel核显] volumes: #修改机器学习模型存储路径 - /docker/apps/immich/model-cache:/cache # 配置文件,指定版本,指定相册路径,数据库路径 env_file: - .env # 健康检查 healthcheck: disable: false # 重启策略,总是重启 restart: always
redis: # 镜像名称 image: docker.io/redis:6.2-alpine # 容器名 container_name: immich_redis # 主机名 hostname: immich_redis # 健康检查 healthcheck: test: redis-cli ping || exit 1 # 重启策略,总是重启 restart: always
database: # 镜像名称 image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0 # 容器名 container_name: immich_postgres # 主机名 hostname: immich_postgres # 配置文件 environment: # 数据库用户 POSTGRES_USER: ${DB_USERNAME} # 数据库密码 POSTGRES_PASSWORD: ${DB_PASSWORD} # 数据库名称 POSTGRES_DB: ${DB_DATABASE_NAME} POSTGRES_INITDB_ARGS: '--data-checksums' volumes: # 请去.env修改路径 - ${DB_DATA_LOCATION}:/var/lib/postgresql/data # 健康检查 healthcheck: test: >- pg_isready --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" || exit 1; Chksum="$$(psql --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" --tuples-only --no-align --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')"; echo "checksum failure count is $$Chksum"; [ "$$Chksum" = '0' ] || exit 1 interval: 5m start_interval: 30s start_period: 5m command: >- postgres -c shared_preload_libraries=vectors.so -c 'search_path="$$user", public, vectors' -c logging_collector=on -c max_wal_size=2GB -c shared_buffers=512MB -c wal_compression=on # 重启策略,总是重启 restart: always2.9 immich 总结
根据自己的配置创建好这 4 个文件,我们直接把 immich 这个文件夹上传到我们对应的目录,然后运行 compose 项目就行。

3 AI 大模型配置
3.1 MT Photos AI 大模型配置
mt photos 的 ai 大模型配置在官方文档都有介绍,想用高德地图也有教程文档,我这里就不多说了。
3.2 immich AI 大模型配置
immich 基本都是英文文档,首先主要是智能搜索中的中文模型。安装好 immich 后,依次打开设置→机器学习设置→智能搜索→CLIP模型修改为以下的代码。
XLM-Roberta-Large-Vit-B-16Plus其次,就是需要改成中文地图。依次打开设置→地图与GPS设置→地图→浅色模式和深色模式都修改为以下的代码,其他设置根据自己需求修改,以下的 aip 是通过一个地图网站自己编辑的。
https://api.maptiler.com/maps/5f203af3-3f1d-4a6d-b1ab-612ec5b58ceb/style.json?key=18pTCzPiaEcdoABeRqDh部分信息可能已经过时
















