immich自托管平台

内容纲要

定义

高性能自托管照片和视频备份方案,支持手机自动备份、人脸识别、相册共享,常被称为"自托管版 Google Photos"

安装

部署文档路径:
https://docs.immich.app/install/docker-compose
要求:
4核8G

Docker Compose [推荐]

Docker Compose 是在生产环境中运行 Immich 的推荐方式。以下是使用 Docker Compose 部署 Immich 的步骤。

第 1 步 – 下载所需文件

Create a directory of your choice (e.g. ./immich-app) to hold the docker-compose.yml and .env files.
创建一个您选择的目录(例如 ./immich-app),用于存放 docker-compose.yml 和 .env 文件。

切换到您创建的目录

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

通过运行以下命令下载 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

您也可以选择通过浏览器下载这两个文件,并将它们移动到您创建的目录中。若采用此方式,请务必确保将 example.env 重命名为 .env。

第 2 步 – 使用自定义值填充 .env 文件

默认环境变量内容

您可以在 https://docs.immich.app/install/environment-variables 找到所有支持的环境变量的文档
上传文件的存储位置

UPLOAD_LOCATION=./library

数据库文件的存储位置。数据库不支持使用网络共享(Network shares)

DB_DATA_LOCATION=./postgres

要设置时区,请取消注释下一行,并将 Etc/UTC 更改为此列表中的时区标识符:https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List

TZ=Etc/UTC

要使用的 Immich 版本。您可以将其固定为特定版本,例如 "v2.1.0"

IMMICH_VERSION=v3

Postgres 的连接密钥。您应将其更改为随机密码
请仅使用“A-Za-z0-9”字符,不要包含特殊字符或空格

DB_PASSWORD=postgres

此行以下的值无需更改
################################################################################
DB_USERNAME=postgres
DB_DATABASE_NAME=immich

原文 :

Step 2 – Populate the .env file with custom values
Default environmental variable content

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

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

# The location where your database files are stored. Network shares are not supported for the database
DB_DATA_LOCATION=./postgres

# To set a timezone, uncomment the next line and change Etc/UTC to a TZ identifier from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
# TZ=Etc/UTC

# The Immich version to use. You can pin this to a specific version like "v2.1.0"
IMMICH_VERSION=v3

# Connection secret for postgres. You should change it to a random password
# Please use only the characters <code>A-Za-z0-9</code>, without special characters or spaces
DB_PASSWORD=postgres

# The values below this line do not need to be changed
###################################################################################
DB_USERNAME=postgres
DB_DATABASE_NAME=immich

使用您首选的备份资产存储位置来填充 UPLOAD_LOCATION。它应该是服务器上一个具有充足可用空间的新目录。

建议将 DB_PASSWORD 更改为自定义值。Postgres 并未公开暴露,因此此密码仅用于本地身份验证。为避免 Docker 解析此值时出现问题,最好仅使用 A-Za-z0-9 字符。pwgen 是一个适用于此目的的实用工具。

通过取消注释 TZ= 行来设置您的时区。

如有必要,请填充自定义数据库信息。

第 3 步 – 启动容器

在您在“第 1 步”中创建的目录下(该目录现在应包含您自定义的 docker-compose.yml 和 .env 文件),运行以下命令将 Immich 作为后台服务启动:
启动容器

docker compose up -d
DOCKER 版本

如果您遇到类似 unknown shorthand flag: 'd' in -d 或 open <location of your .env file>: permission denied 的错误,说明您运行的 Docker 版本可能有误。(例如,在 Ubuntu 22.04.3 LTS 中通过 docker.io 软件包安装的版本就会出现此问题)。您可以按照适用于您发行版的完整 Docker Engine 安装流程来修复此问题,关键是执行“卸载旧版本”(Uninstall old versions)和“使用 apt/rpm 仓库安装”(Install using the apt/rpm repository)这两个部分。这些操作会用 Docker 官方软件包替换掉发行版自带的 Docker 软件包。

请注意,正确的命令实际上是 docker compose,而不是 docker-compose。如果您在原版 Ubuntu 22.04 上尝试使用后者,它将以另一种方式报错:
The Compose file './docker-compose.yml' is invalid because:
'name' does not match any of the regexes: '^x-'

请参阅上一段关于从 Docker 官方仓库进行安装的内容。

健康检查启动间隔 (HEALTH CHECK START INTERVAL)

如果您遇到错误 can't set healthcheck.start_interval as feature require Docker Engine v25 or later(无法设置 healthcheck.start_interval,因为该功能要求 Docker Engine v25 或更高版本),解决办法是注释掉 docker-compose.yml 文件中 database 部分的 start_interval 所在行。

4条一次性拉取命令

记得同步修改docker-compose里面镜像后面的指定的拉取路径,换成下面的。

  1. Immich 主服务 (使用南京大学 GHCR 镜像源)
    docker pull ghcr.nju.edu.cn/immich-app/immich-server:v3
  2. Immich 机器学习 (使用南京大学 GHCR 镜像源)
    docker pull ghcr.nju.edu.cn/immich-app/immich-machine-learning:v3
  3. Valkey 缓存 (使用 DaoCloud 的 Docker Hub 源)
    docker pull docker.m.daocloud.io/valkey/valkey:9
  4. Postgres 数据库 (使用南京大学 GHCR 镜像源,去掉了冗余的 sha256)
    docker pull ghcr.nju.edu.cn/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0

发表评论

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

滚动至顶部