Immich部署

526 阅读2分钟

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。如果特定人物照片少的话,可以修改最少人脸数。如果识别不到,可以修改其他两个参数,最后在去人物中合并一下即可。

image.png 接下来安装模型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其它客户端下载

immich.app/download

据说服务端和客户端需要保持一致的版本

4.3外部图片挂载丢失

系统中有一个功能可以挂载图片的方式作为一个图库存在,但作者挂载后隔一段时间图片就会被放在回收站,详情提示找不到该文件,但是容器内和外面的磁盘都可以看见这张图。研究了一段时间无奈只能通过上传的方式去导入图库中。若你也碰到这个问题可以参照我这个方法去解决。

参考链接

win11部署immich相册,打造属于自己的相册管理工具

Immich相册服务——智能搜索与人脸识别

将immich相册反向地理编码设置为中文