hugo-teek is loading...

部署

最后更新于:

部署

目录

[toc]

环境

1docker 19.03.9
2docker-compose version v2.23.0
3系统:CentOS Linux release 7.6.1810 (Core)

硬件要求

  • 最低配置:2 核 CPU + 4G 内存(照片量 < 1 万张)
  • 推荐配置:4 核 CPU + 8G 内存(照片量 1-5 万张,支持 AI 人脸识别)
  • 存储:本地照片目录需提前规划(建议单独挂载大容量磁盘,避免系统盘占满)

1、启动容器

(1)创建基础目录:

1cd /root
2mkdir immich
3##创建以下2个文件

(2)创建docker-compose.yaml:

vim /root/immich/docker-compose.yaml

  1# 基于官方模板制作
  2# 官方文档
  3# https://immich.app
  4# 官方compose教程
  5# https://immich.app/docs/install/docker-compose
  6# 官方变量说明
  7# https://immich.app/docs/install/environment-variables
  8# 官方CLIP说明
  9# https://immich.app/docs/features/command-line-interface
 10# 官方硬件转码说明
 11# https://immich.app/docs/features/hardware-transcoding
 12# https://hub.docker.com/r/tensorchord/pgvecto-rs
 13
 14# 如果官方的镜像不好拉取,可以选择拉取以下两个镜像作为替代,部署参数完全相同,将模板上对应的镜像进行修改即可,tag也是release
 15# https://hub.docker.com/r/altran1502/immich-server
 16# https://hub.docker.com/r/altran1502/immich-machine-learning
 17
 18# ---
 19
 20name: immich
 21# 最后编辑时间:2025-02-14
 22services:
 23  immich-server:
 24    # 镜像地址
 25    image: ghcr.nju.edu.cn/immich-app/immich-server:${IMMICH_VERSION:-release}
 26    # 容器名
 27    container_name: immich_server
 28    # 主机名
 29    hostname: immich-server
 30    volumes:
 31      # 请去.env修改路径
 32      - ${UPLOAD_LOCATION}:/usr/src/app/upload 
 33      - /etc/localtime:/etc/localtime:ro
 34      - /root/immich/local-photos:/mnt/external/old-photos:ro
 35    # 配置文件,指定版本,指定相册路径,数据库路径
 36    env_file:
 37      - .env
 38    # 调用数据库
 39    depends_on:
 40      - redis
 41      - database
 42    # 健康检查
 43    healthcheck:
 44      disable: false
 45    # webUI端口  
 46    ports:
 47      - 2283:2283
 48    # 重启策略,总是重启
 49    restart: always
 50
 51  immich-machine-learning:
 52    # 镜像名称
 53    image: ghcr.nju.edu.cn/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}-openvino
 54    # 容器名
 55    container_name: immich_machine_learning
 56    # 主机名
 57    hostname: immich_machine_learning
 58    volumes:
 59      #修改机器学习模型存储路径
 60      - /docker/apps/immich/model-cache:/cache
 61    # 配置文件,指定版本,指定相册路径,数据库路径
 62    env_file:
 63      - .env
 64    # 健康检查
 65    healthcheck:
 66      disable: false
 67    # 重启策略,总是重启
 68    restart: always
 69
 70  redis:
 71    # 镜像名称
 72    image: docker.io/redis:6.2-alpine
 73    # 容器名
 74    container_name: immich_redis
 75    # 主机名
 76    hostname: immich_redis
 77    # 健康检查
 78    healthcheck:
 79      test: redis-cli ping || exit 1
 80    # 重启策略,总是重启
 81    restart: always
 82
 83  database:
 84    # 镜像名称
 85    image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0
 86    # 容器名
 87    container_name: immich_postgres
 88    # 主机名
 89    hostname: immich_postgres
 90    # 配置文件
 91    environment:
 92      # 数据库用户
 93      POSTGRES_USER: ${DB_USERNAME}
 94      # 数据库密码
 95      POSTGRES_PASSWORD: ${DB_PASSWORD}
 96      # 数据库名称
 97      POSTGRES_DB: ${DB_DATABASE_NAME}
 98      POSTGRES_INITDB_ARGS: '--data-checksums'
 99    volumes:
100      # 请去.env修改路径
101      - ${DB_DATA_LOCATION}:/var/lib/postgresql/data
102    # 健康检查
103    healthcheck:
104      test: >-
105        pg_isready --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" || exit 1;
106        Chksum="$$(psql --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" --tuples-only --no-align
107        --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')";
108        echo "checksum failure count is $$Chksum";
109        [ "$$Chksum" = '0' ] || exit 1
110      interval: 5m
111      start_interval: 30s
112      start_period: 5m
113    command: >-
114      postgres
115      -c shared_preload_libraries=vectors.so
116      -c 'search_path="$$user", public, vectors'
117      -c logging_collector=on
118      -c max_wal_size=2GB
119      -c shared_buffers=512MB
120      -c wal_compression=on
121    # 重启策略,总是重启
122    restart: always

(3)创建.env:

vim /root/immich/.env

 1# immich照片存储路径
 2UPLOAD_LOCATION=/docker/apps/immich/library
 3
 4# postgres数据库存储路径,这里建议存储在/docker/apps/immich目录下,方便管理。
 5DB_DATA_LOCATION=/docker/apps/immich/postgres
 6TZ=Asia/Shanghai
 7
 8#要使用的immich版本。您可以将其固定到特定版本,如“v1.71.0”
 9IMMICH_VERSION=release
10
11#postgres数据库的访问用户和密码
12DB_USERNAME=postgres
13DB_PASSWORD=postgres
14#postgres数据库名称
15DB_DATABASE_NAME=immich

(4)直接运行:

1[root@one-local-vm immich]#pwd
2/root/immich
3[root@one-local-vm immich]#ls
4docker-compose.yaml  local-photos
5[root@one-local-vm immich]#docker-compose up -d

2、登录验证

登录后,直接下一步就好:

image-20251204212154251

image-20251204212317689

image-20251204212347558

image-20251204212356591

image-20251204212409814

image-20251204212423429

image-20251204212433828

image-20251204212447571

image-20251204212459544

image-20251204212518053

image-20251204212527882

image-20251204224138384

image-20251204224148679

3、日常维护

  1. 停止/重启 Immich
1# 停止服务
2docker-compose down
3
4# 重启服务(配置修改后需重启)
5docker-compose restart
  1. 查看日志(排查问题)
1# 查看所有容器日志
2docker-compose logs -f
3
4# 只看 immich-server 日志(常用)
5docker-compose logs -f immich-server
  1. 更新 Immich 到最新版本
1# 进入部署目录
2cd /opt/immich
3
4# 拉取最新镜像
5docker-compose pull
6
7# 重启服务(应用更新)
8docker-compose up -d

引用

官方链接:https://docs.immich.app/install/docker-compose

推荐使用微信支付
微信支付二维码
推荐使用支付宝
支付宝二维码
最新文章

文档导航