照片管理immich
照片管理immich

照片管理immich

https://immich.app/docs/install/docker-compose

一、Docker部署

1. 创建文件夹

创建一个您选择的目录(例如)来保存 and 文件。./immich-appdocker-compose.yml.env

移动到您创建的目录

mkdir ./immich-app
cd ./immich-app

2. 下载docker-compose配置文件

通过运行以下命令下载 docker-compose.yml 和 example.env

获取docker-compose.yml文件

wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml

获取 .env 文件

wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env

(可选)获取hwaccel.transcoding.yml文件

wget -O hwaccel.transcoding.yml https://github.com/immich-app/immich/releases/latest/download/hwaccel.transcoding.yml

(可选)获取hwaccel.ml.yml文件

wget -O hwaccel.ml.yml https://github.com/immich-app/immich/releases/latest/download/hwaccel.ml.yml

或者从浏览器下载并将文件移动到您创建的目录。

注意:如果您从浏览器下载了文件,请确保重命名为 。example.env.env

3. 编辑配置文件

示例内容.env

# You can find documentation for all the supported env variables at https://immich.app/docs/install/environment-variables

# The location where your uploaded files are stored
UPLOAD_LOCATION=./library

# The Immich version to use. You can pin this to a specific version like "v1.71.0"
IMMICH_VERSION=release

# Connection secret for postgres. You should change it to a random password
DB_PASSWORD=postgres

# The values below this line do not need to be changed
###################################################################################
DB_HOSTNAME=immich_postgres
DB_USERNAME=postgres
DB_DATABASE_NAME=immich
DB_DATA_LOCATION=./postgres

REDIS_HOSTNAME=immich_redis
  • 如有必要,请填充自定义数据库信息。
  • 填充用于存储备份资产的首选位置。UPLOAD_LOCATION
  • 考虑更改为随机生成的内容DB_PASSWORD

4. 修改docker-compose.yml文件

打开docker-compose.yml文件,编辑,将这两项替换到图中的位置里,改成和图片中的一样即可。

# 替换1
image: library/redis:6.2-alpine
# 替换2
image: tensorchord/pgvecto-rs:pg14-v0.2.0

5、 启动容器

docker compose up -d

6、后台管理

浏览器输入输入NAS IP:2283,当出现图标则说明部署完成

Immich导入外部库(图片、照片导入)

https://www.bilibili.com/video/BV1dJ4m1e79r?t=48.7

https://immich.app/docs/guides/external-library

https://github.com/immich-app/immich/discussions/3293

将目录装载到容器中。

编辑以在docker-compose.ymlvolumes:

编辑以在部分和下方添加两个新的挂载点docker-compose.ymlimmich-server:immich-microservices:volumes:

immich-server:
    volumes:
+       - ${EXTERNAL_PATH}:/usr/src/app/external

immich-microservices:
    volumes:
+       - ${EXTERNAL_PATH}:/usr/src/app/external

请务必将完全相同的行添加到 和 中。immich-server: immich-microservices:

编辑以定义 ,替换计算机的正确路径:.envEXTERNAL_PATH

EXTERNAL_PATH=<your-path-here>

例如,在我的计算机上,我使用以下路径:

EXTERNAL_PATH=/home/tenino/photos

二、文件解释

下面是 docker-compose.yml 配置文件解释

# 指定Docker Compose文件的版本为3.8
version: "3.8"

# 定义项目的名称为immich
name: immich

# 定义多个服务
services:
  # 定义一个服务名为immich-server
  immich-server:
    # 设置容器的名称为immich_server
    container_name: immich_server
    # 从GitHub Container Registry拉取immich-server的镜像,版本由IMMICH_VERSION环境变量指定,默认为release
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    # 容器启动后执行的命令
    command: [ "start.sh", "immich" ]
    # 指定挂载的卷
    volumes:
      # 将宿主机的UPLOAD_LOCATION目录挂载到容器的/usr/src/app/upload
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      # 将宿主机的/etc/localtime挂载到容器中,以只读方式同步时间
      - /etc/localtime:/etc/localtime:ro
    # 指定环境变量文件
    env_file:
      # 使用当前目录下的.env文件
      - .env
    # 指定端口映射
    ports:
      # 将容器的3001端口映射到宿主机的2283端口
      - 2283:3001
    # 定义服务依赖
    depends_on:
      # immich-server依赖于redis和database服务
      - redis
      - database
    # 设置容器的重启策略为始终重启
    restart: always

  # 定义另一个服务名为immich-microservices
  immich-microservices:
    # 设置容器的名称为immich_microservices
    container_name: immich_microservices
    # 使用相同的镜像和版本控制策略
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    # 启动微服务的命令
    command: [ "start.sh", "microservices" ]
    # 同样指定挂载的卷
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
    # 使用相同的环境变量文件
    env_file:
      - .env
    # 同样依赖于redis和database服务
    depends_on:
      - redis
      - database
    # 也设置为始终重启
    restart: always

# 以下是定义volumes的部分,用于指定所需的Docker卷
volumes:
  # 定义一个卷名为pgdata,用于持久化PostgreSQL数据库数据
  pgdata:
  # 定义一个卷名为model-cache,用于缓存机器学习模型数据
  model-cache:

下面是环境变量 .env文件解释

# 你可以在这个URL找到所有支持的环境变量的文档:https://immich.app/docs/install/environment-variables
# 上面这一行是注释,说明了如何找到关于所有支持的环境变量的官方文档。

# 你上传的文件将被存储在这个位置
UPLOAD_LOCATION=./library
# 设置`UPLOAD_LOCATION`环境变量,定义了上传文件的存储位置。这里设置为当前目录下的`library`文件夹。

# 使用的Immich版本。你可以将其固定在特定版本,比如 "v1.71.0"
IMMICH_VERSION=release
# 设置`IMMICH_VERSION`环境变量,指定Immich使用的版本。这里设置为`release`,意味着将使用最新的发布版本。

# 用于Postgres的连接密码。你应该将其更改为一个随机密码
DB_PASSWORD=postgres
# 设置`DB_PASSWORD`环境变量,定义连接PostgreSQL数据库的密码。默认设置为`postgres`,建议更改为更安全的密码。

# 以下这行不需要更改
###################################################################################
# 上面这行是注释,表示以下的环境变量通常不需要修改。

DB_HOSTNAME=immich_postgres
# 设置`DB_HOSTNAME`环境变量,指定PostgreSQL数据库服务的主机名。这里使用的是`docker-compose.yml`文件中定义的服务名称`immich_postgres`。

DB_USERNAME=postgres
# 设置`DB_USERNAME`环境变量,定义连接PostgreSQL数据库的用户名。默认设置为`postgres`。

DB_DATABASE_NAME=immich
# 设置`DB_DATABASE_NAME`环境变量,指定PostgreSQL数据库的名称。这里设置为`immich`。

REDIS_HOSTNAME=immich_redis
# 设置`REDIS_HOSTNAME`环境变量,指定Redis服务的主机名。这里使用的是`docker-compose.yml`文件中定义的服务名称`immich_redis`。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注