定义
高性能自托管照片和视频备份方案,支持手机自动备份、人脸识别、相册共享,常被称为"自托管版 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里面镜像后面的指定的拉取路径,换成下面的。
- Immich 主服务 (使用南京大学 GHCR 镜像源)
docker pull ghcr.nju.edu.cn/immich-app/immich-server:v3 - Immich 机器学习 (使用南京大学 GHCR 镜像源)
docker pull ghcr.nju.edu.cn/immich-app/immich-machine-learning:v3 - Valkey 缓存 (使用 DaoCloud 的 Docker Hub 源)
docker pull docker.m.daocloud.io/valkey/valkey:9 - Postgres 数据库 (使用南京大学 GHCR 镜像源,去掉了冗余的 sha256)
docker pull ghcr.nju.edu.cn/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0