本指南涵盖了在生产环境中部署 Immich 的各种方法。它侧重于推荐的部署方法、配置选项和安装后步骤。有关开发设置信息,请参阅开发指南。
Immich 提供了多种部署方法,以适应不同的环境和用户偏好。
来源
在部署 Immich 之前,请确保您的系统满足以下最低要求
| 组件 | 最低要求 | 推荐要求 |
|---|---|---|
| 操作系统 | 基于 Linux/Unix | Ubuntu, Debian |
| 内存 | 4 GB | 6+ GB |
| CPU | 2 核 | 4+ 核 |
| 存储 | 取决于媒体库大小 | 兼容 Unix 的文件系统(EXT4、ZFS 等) |
| 软件 | 带有 Compose 插件的 Docker Engine | 带有 Compose 插件的 Docker Engine |
特殊的数据库存储要求
DB_DATA_LOCATION) 理想情况下应使用本地 SSD 存储来源
Docker Compose 是 Immich 官方推荐的部署方法。下图展示了容器架构
来源
创建目录用于 Immich 安装
下载所需文件:
在 .env 文件中配置环境变量
UPLOAD_LOCATION 设置为您偏好的媒体存储位置DB_DATA_LOCATION 设置为您偏好的数据库存储位置DB_PASSWORD 更改为安全值(仅使用 A-Za-z0-9 字符)TZ= 行来选择性设置时区启动容器:
通过 http://your-server-ip:2283 访问网页界面以完成设置
来源
| 可变 | 描述 | 默认 | 备注 |
|---|---|---|---|
UPLOAD_LOCATION | 媒体文件存储位置 | ./library | 应有充足的可用空间 |
DB_DATA_LOCATION | 数据库文件存储位置 | ./postgres | 应位于本地存储,切勿使用网络共享 |
IMMICH_VERSION | 要使用的 Immich 版本 | release | 可设置为特定版本,例如 v1.71.0 |
DB_PASSWORD | Postgres 密码 | postgres | 更改为仅使用 A-Za-z0-9 字符的随机密码 |
DB_USERNAME | Postgres 用户名 | postgres | |
DB_DATABASE_NAME | Postgres 数据库名称 | immich | |
TZ | 时区 | Etc/UTC | 取消注释并根据需要更改 |
高级配置: 对于更高级的配置,可以使用 IMMICH_CONFIG_FILE 环境变量提供 JSON 或 YAML 配置文件。有关详细信息,请参阅配置文件。
来源
Immich 支持视频转码和机器学习任务的各种硬件加速选项
启用硬件加速
对于 视频转码
docker-compose.yml 中 immich-server 服务的 extends 部分service: cpu 更改为您想要的加速类型对于 机器学习
${IMMICH_VERSION:-release}-cuda)docker-compose.yml 中 immich-machine-learning 服务的 extends 部分来源
Immich 将媒体和数据组织在多个存储位置
重要提示
upload/<userID> 中library/<userID> 中,并可自定义组织方式来源
全面的备份策略应包括数据库和媒体文件
Immich 提供自动数据库备份,备份文件存储在 UPLOAD_LOCATION/backups 中。您可以在管理设置中调整备份计划和保留策略。
手动数据库备份
数据库恢复
Immich 将文件存储在多个应进行备份的目录中
关键文件夹(原始内容)
UPLOAD_LOCATION/library(当存储模板开启时)UPLOAD_LOCATION/upload(默认位置)UPLOAD_LOCATION/profile(用户头像)生成内容(如果需要可重新生成)
UPLOAD_LOCATION/thumbs(缩略图)UPLOAD_LOCATION/encoded-video(转码视频)来源
如果您在反向代理后部署 Immich,请确保其已正确配置以与 Immich 协同工作
Host、X-Real-IP、X-Forwarded-Proto 和 X-Forwarded-Forclient_max_body_size)/immich 等子路径)Nginx 配置示例
来源
要将 Immich 升级到新版本
.env 文件中的版本来源
Immich 可以使用预先存在的 PostgreSQL 服务器,而不是容器化版本
先决条件
postgresql.conf,使其包含 shared_preload_libraries = 'vectors.so'配置
在您的 .env 文件中设置 DB_URL 环境变量
DB_URL='postgresql://immichdbusername:immichdbpassword@postgreshost:postgresport/immichdatabasename'
在没有超级用户权限的情况下,准备数据库
来源
虽然推荐使用 Docker Compose,但 Immich 也可以通过以下方式部署
安装脚本(实验性)
Kubernetes:使用来自 https://github.com/immich-app/immich-charts/ 的官方 Helm chart
Portainer:使用官方 docker-compose.yml 作为堆栈添加到 Portainer 中
社区解决方案:
来源
| 问题 | 解决方案 |
|---|---|
| 数据库所有权错误 | 确保您没有将 NTFS 或 exFAT 文件系统用于 DB_DATA_LOCATION |
| 视频上传失败 | 检查反向代理配置,确保允许大文件上传 |
| 机器学习 worker 崩溃 | 检查可用 RAM,考虑禁用 ML 功能或增加更多 RAM |
| 服务器显示“离线/未知” | 在您的反向代理中启用 WebSocket |
| PostgreSQL 健康检查错误 | 如果使用旧版 Docker,请注释掉 docker-compose.yml 中的 start_interval |
| 无法看到大缩略图/预览 | 增加反向代理配置中的超时时间 |
检查数据库健康状况
来源