Immich 是一个高性能、开源的自托管照片和视频管理解决方案,常被视为 Google Photos 的开源替代品。本教程将指导你使用官方推荐的 Docker Compose 方式,在自己的服务器上完成 Immich 的部署。

1. 准备工作

在开始之前,请确保你的服务器满足以下最低要求

  • 操作系统:Linux(Ubuntu/Debian/CentOS 等)或 macOS。
  • 硬件:至少 6GB RAM2个 CPU 核心
  • 软件:已安装 DockerDocker Compose(注意:是 docker compose 命令,而非旧版的 docker-compose)。

⚠️ 重要提醒:Immich 官方文档开头就着重强调,永远不要将 Immich 作为你珍贵照片和视频的唯一存储。请务必遵循 3-2-1 备份策略(3份数据、2种不同介质、1份异地备份)。

2. 部署 Immich 服务器

官方推荐使用 Docker Compose 进行部署,这是最简单和可维护的方式。

2.1 下载配置文件

首先,创建一个目录来存放 Immich 的配置和数据文件,并进入该目录:

1
2
mkdir ./immich-app
cd ./immich-app

然后,使用 wget 下载官方提供的最新 docker-compose.yml 和示例环境变量文件(.env):

1
2
3
4
5
# 下载 docker-compose.yml
wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml

# 下载 .env 示例文件,并重命名为 .env
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env

2.2 配置环境变量(.env 文件)

使用文本编辑器(如 nanovim)打开 .env 文件,并根据你的需求修改以下关键参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 你的照片和视频文件将存储在这里。请确保该目录有足够的磁盘空间
UPLOAD_LOCATION=./library

# PostgreSQL 数据库文件存储位置。注意:**不支持网络共享存储**!
DB_DATA_LOCATION=./postgres

# 设置你的时区(可选),取消注释并修改,例如:TZ=Asia/Shanghai
# TZ=Etc/UTC

# Immich 版本,建议保持为 'v3' 以使用最新稳定版
IMMICH_VERSION=v3

# PostgreSQL 数据库密码。**强烈建议你修改此默认值**!
# 为了安全,密码应仅包含字母和数字,避免特殊字符,例如:DB_PASSWORD=YourStrongP@ssw0rd
DB_PASSWORD=postgres

# 以下通常无需修改
DB_USERNAME=postgres
DB_DATABASE_NAME=immich
  • UPLOAD_LOCATION:这是最重要的路径,所有你通过 Immich 上传的照片和视频都会存放在这里。请确保它指向一个存储空间充足的位置。
  • DB_PASSWORD:出于安全考虑,务必修改此默认密码。你可以使用 pwgen 这样的工具生成一个强密码。

2.3 启动 Immich 服务

在包含 docker-compose.yml.env 文件的目录下,执行以下命令来启动所有服务(包括 Immich 服务器、PostgreSQL 数据库和 Valkey/Redis 缓存):

1
docker compose up -d

此命令会以后台服务(-d 参数)的方式启动容器。首次启动时,Docker 会自动拉取所需的镜像,这可能需要一些时间。

执行后,你可以通过以下命令检查所有容器的运行状态:

1
docker compose ps

3. 首次配置与使用

Immich 启动后,你就可以开始进行初始设置了。

3.1 注册管理员账户

  1. 在浏览器中访问 http://<你的服务器IP地址>:2283(例如 http://192.168.1.100:2283)。
  2. 页面加载后,点击 “Getting Started”(开始使用)按钮。
  3. 第一个注册的用户将自动成为管理员。按照提示填写你的邮箱、密码等信息完成注册。

3.2 体验 Web 端功能

注册并登录后,你就可以在 Web 界面中开始使用了:

  • 上传照片:通过界面右上角的“上传”按钮,可以直接从浏览器上传照片和视频,体验基础功能。
  • 探索功能:Immich 提供了丰富的功能,包括相册管理、人脸识别与聚类、按元数据/对象/人脸搜索、回忆(多年前今日)、全球地图视图等。

4. 移动端配置(推荐)

Immich 的强项之一是移动端自动备份。

4.1 下载 App

你可以从以下官方渠道下载 Immich 移动端 App:

  • iOS:Apple App Store
  • Android:Google Play Store 或 GitHub Releases(APK 文件)
  • F-Droid:开源应用商店

4.2 登录并设置备份

  1. 打开 App,在 “Server Endpoint URL”(服务器端点 URL)字段中输入你的服务器地址:http://<你的服务器IP地址>:2283
  2. 使用你在第 3.1 步注册的管理员账号(或新创建的用户)登录。
  3. 登录后,点击右上角的云朵图标进入备份设置页面。
  4. 你可以选择要备份的手机相册,然后向下滚动并点击 “Enable Backup”(启用备份)按钮。App 将开始自动上传你选中的照片和视频。

5. 进阶配置:配置反向代理(可选)

为了安全地通过域名访问 Immich(启用 HTTPS),官方强烈推荐配置一个反向代理服务器。以下是使用 Nginx 的简要示例。

  1. 在 Nginx 的 sites-available 目录中创建一个新的配置文件(如 /etc/nginx/sites-available/immich.conf)。

  2. 添加以下配置,将 immich.your-domain.com 替换为你的实际域名:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    server {
    listen 80;
    server_name immich.your-domain.com;

    location / {
    # 注意:客户端最大上传大小,根据需求调整,例如 10G
    client_max_body_size 10M;
    proxy_pass http://127.0.0.1:2283;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    }
    }
  3. 启用配置并重新加载 Nginx。之后,你还需要使用 Let’s Encrypt 等工具为这个域名配置 SSL 证书以实现 HTTPS 访问。

6. 维护与更新

Immich 是一个活跃开发的项目,定期更新可以获得新功能和修复。

  • 更新 Immich:在 docker-compose.yml 文件所在目录执行以下命令即可更新到最新版本:

    1
    2
    docker compose pull
    docker compose up -d
  • 备份数据:请务必定期备份你的 UPLOAD_LOCATION(原始照片)和 DB_DATA_LOCATION(PostgreSQL 数据库文件)目录。

总结

恭喜!通过以上步骤,你已经成功部署了一个功能强大、完全属于你自己的私有照片管理平台。

Immich 的核心价值在于它让你重获数据主权,将个人隐私照片和视频从公有云服务中解放出来,同时提供了近乎 Google Photos 的现代使用体验。其 Docker Compose 部署方式使得安装和维护都相对简单。

如果你在部署过程中遇到问题,可以随时参考 Immich 官方文档 或访问其 GitHub 仓库 寻求帮助。