先说结论:Immich 是目前最像 Google Photos 的开源自托管相册,手机自动备份、人脸识别、相册共享、地图浏览都有。但它不是“1 核 1G 能跑”的轻量工具:官方要求最低 6GB 内存、推荐 8GB,CPU 最低 2 核、推荐 4 核,数据库还要放本地 SSD。
部署前先确认三件事:
- 内存:6GB 起步,8GB 更稳;4GB 只能关掉机器学习功能跑
- 存储:照片和视频之外,缩略图和转码还会多占 10% 到 20%
- 备份:数据库和上传目录要一起备,只备照片库恢复不完整
下面按“要求 → Docker 部署 → HTTPS → 手机备份 → 备份恢复 → 升级排错”讲,命令以 Linux + Docker Compose 为例。

Immich 是什么
Immich 是一套自托管的照片和视频管理服务,包含 Web 端、手机 App、服务端和机器学习容器。它能自动备份手机相册、按时间和地点浏览、识别人脸和物体、创建共享相册,数据存在你自己的服务器上。
和 Nextcloud 这类网盘相比,Immich 更像“相册产品”:时间线、缩略图、人脸聚类、地图都是原生功能。代价是资源占用更高,尤其是机器学习容器。
硬件要求
| 项目 | 最低 | 推荐 | 说明 |
|---|---|---|---|
| 内存 | 6GB | 8GB | 4GB 需关闭机器学习 |
| CPU | 2 核 | 4 核 | amd64/arm64,需 x86-64-v2 |
| 存储 | 按照片量 | SSD/NVMe | 数据库必须本地盘,不要网络存储 |
| 系统 | Linux 64 位 | Debian/Ubuntu | 建议整机 VM,不推荐 LXC |
官方特别说明:Postgres 数据文件通常 1 到 3GB,必须放本地 SSD;如果给 Docker 设了内存限制,数据库至少留 2GB。低于 6GB 内存的机器,上传和生成缩略图时很容易 OOM。
部署前准备
- 一台 2 核 4G 起步的 VPS,建议 2 核 8G 或 4 核 8G
- 一个域名,用来 HTTPS 访问和手机 App 连接
- 安装 Docker Engine 和 Compose 插件,确认是
docker compose而不是旧的docker-compose - 规划存储目录,最好单独挂一块数据盘
- 放行 2283 端口给反向代理,公网只开 80/443
Docker Compose 部署
mkdir -p /opt/immich && cd /opt/immich
wget -O docker-compose.yml \
https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
wget -O .env \
https://github.com/immich-app/immich/releases/latest/download/example.env
编辑 .env,至少改这几项:
UPLOAD_LOCATION=/mnt/data/immich/upload
DB_DATA_LOCATION=/mnt/data/immich/postgres
TZ=Asia/Shanghai
DB_PASSWORD=换成强密码
IMMICH_VERSION=release
启动并检查:
docker compose up -d
docker compose ps
docker compose logs -f immich-server
浏览器访问 http://服务器IP:2283,注册第一个管理员账号。确认能上传一张照片后,再配 HTTPS;不要长期用 IP + 明文端口对外。
反向代理和 HTTPS
用 Caddy 最省事,自动申请证书:
immich.example.com {
reverse_proxy localhost:2283
}
用 Nginx 时注意三件事:client_max_body_size 调大(视频文件可能很大)、proxy_read_timeout 放长、转发真实 IP 和协议头。否则会出现上传中断、缩略图 502、App 登录失败。
手机端备份
- 安装 Immich App(iOS/Android),服务器地址填
https://immich.example.com - 登录后开启“后台备份”,选择要备份的相册
- 先用几十张照片测试,确认上传、缩略图、视频播放都正常
- 再开全量备份,注意手机流量和电池策略
iOS 的后台任务受系统限制,不能保证实时;Android 可以设置前台服务和电池白名单。备份是“最终会同步”,不是“立刻同步”,重要照片别只依赖手机端。

存储和备份
Immich 的数据分两块:上传目录(原图、缩略图、转码)和 Postgres 数据库(元数据、人脸、相册关系)。备份要同时覆盖:
# 数据库逻辑备份
docker compose exec -T database pg_dumpall -U postgres > /backup/immich-db.sql
# 上传目录
tar czf /backup/immich-upload-$(date +%F).tgz /mnt/data/immich/upload
数据库服务名以 docker compose ps 为准,不同版本可能叫 database 或 immich_postgres。备份放到另一台机器或对象存储,不要和被备份的数据在同一块盘上。定期做一次恢复演练,确认备份真的能用。

升级和排错
docker compose pull
docker compose up -d
docker compose logs -f --tail=100
升级前先备份,升级后看 release notes,尤其是数据库迁移和大版本变更。常见问题:
- 上传失败/502:反向代理 body 限制或超时,调大
client_max_body_size和超时 - OOM:内存不足,关机器学习或升配;数据库单独留 2GB
- 缩略图不生成:看 immich-machine-learning 日志,确认 CPU 指令集和容器状态
- 数据库连不上:检查
DB_DATA_LOCATION权限和磁盘空间,别把数据库放网络盘
常见问题 FAQ
Q1:1 核 1G 能跑 Immich 吗?
不能。官方最低 6GB 内存,4GB 只能关机器学习勉强跑。1 核 1G 会在上传和生成缩略图时 OOM。
Q2:必须用 GPU 吗?
不必须。人脸识别和物体识别用 CPU 也能跑,只是慢。照片量很大再考虑 GPU 或独立机器学习节点。
Q3:照片存对象存储行不行?
上传目录可以放对象存储或网络盘,但 Postgres 数据库必须本地 SSD。数据库放网络存储,延迟和锁会出问题。
Q4:怎么从 Google Photos 迁过来?
先用 Google Takeout 导出,再用 Immich 的导入工具或 CLI 上传,保留拍摄时间。导入前先小批量测试元数据。
Q5:备份只备 upload 目录够吗?
不够。数据库里有相册、人脸、分享和元数据,必须一起备份,否则恢复后库是空的。
参考来源
总结
Immich 是自托管相册里体验最接近 Google Photos 的方案,但资源门槛不低:6GB 内存起步、8GB 更稳,数据库必须本地 SSD,备份要同时覆盖数据库和上传目录。按官方 Compose 部署,先把 HTTPS 和手机备份跑通,再逐步导入照片。
需要一台 2 核 8G 的机器跑 Immich,可以看萤光云香港 CN2 VPS,先按小时开一台测试上传和缩略图性能。







