为什么你需要自托管照片管理?
2021 年 6 月,Google Photos 结束了免费无限量高画质备份的时代。如今 200GB 的 Google One 订阅需要 💰 $2.99/月,2TB 则要 $9.99/月。如果你有多个家庭成员,成本还会翻倍。
除此之外,你还要面对:
- 隐私问题:你的照片被用于训练 AI 模型(即使你有权选择退出)
- 锁定效应:一旦存储量太大,迁移成本剧增
- 压缩损失:即使是"原始画质"备份,Google 也会做有损压缩
Immich 就是答案——一个开源的、自托管的照片/视频管理平台,提供近乎完整的 Google Photos 体验。
| 功能 | Google Photos | Immich |
|---|---|---|
| 自动备份 | ✅ | ✅ |
| AI 人脸识别 | ✅ | ✅ (本地运行) |
| 对象/场景识别 | ✅ | ✅ (本地运行) |
| 相册共享 | ✅ | ✅ |
| 地图浏览 | ✅ | ✅ |
| 原始质量存储 | ❌ 有压缩 | ✅ 无损 |
| 月费 (1TB) | $9.99 | 💸 VPS 成本 ($5-10) |
| 数据控制权 | Google 所有 | 你100%掌控 |
Immich 是什么?
Immich 是一个用 TypeScript (NestJS) + Svelte 构建的开源照片管理平台。它运行在 Docker 上,支持:
- 📱 手机端自动备份 — iOS & Android App
- 🧠 本地 AI 分析 — 人脸识别、物体检测、OCR 文字识别
- 👨👩👧👦 多用户支持 — 家庭共享
- 🗺️ 地图视图 — 按拍摄地点浏览
- 🔍 强大的搜索 — 基于元数据 + AI 语义搜索
- 🔗 相册分享 — 生成公开链接分享
最低硬件要求
| 配置 | 最低要求 | 推荐配置 |
|---|---|---|
| CPU | 2 核 | 4 核 |
| 内存 | 4 GB | 8 GB |
| 存储 | 100 GB | 500 GB+ |
| Docker | ✅ 必需 | Compose v2 |
💡 省钱提示:Hetzner CX22 (2核/4GB/40GB) 约 €4/月 + 额外挂载 Block Storage 存储卷(€0.06/GB/月),100GB 存储合计约 < €10/月。
Docker 部署完整指南
第一步:准备工作
# 创建项目目录
mkdir -p /opt/immich
cd /opt/immich
# 下载官方 docker-compose 和 .env 文件
wget 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=./library
DB_HOSTNAME=immich_postgres
DB_USERNAME=postgres
DB_PASSWORD=change_me_to_a_strong_password
DB_DATABASE_NAME=immich
REDIS_HOSTNAME=immich_redis
第三步:配置反向代理 (Nginx Proxy Manager)
Immich 默认运行在 2283 端口。用 Nginx Proxy Manager (或 Traefik) 配置反向代理:
server {
listen 80;
server_name photos.yourdomain.com;
location / {
proxy_pass http://localhost:2283;
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;
# WebSocket 支持
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
第四步:启动
docker compose up -d
首次启动后,访问 http://你的VPS_IP:2283,注册管理员账号,即可开始使用。
备份策略
Immich 的数据安全至关重要。推荐以下备份方案:
#!/bin/bash
# /opt/immich/backup.sh — 每周运行
TIMESTAMP=$(date +%Y%m%d)
BACKUP_DIR="/backups/immich/$TIMESTAMP"
mkdir -p "$BACKUP_DIR"
# 1. 备份 PostgreSQL 数据库
docker exec immich_postgres pg_dump -U postgres immich > "$BACKUP_DIR/db.sql"
# 2. 备份上传的文件和缩略图
rsync -av /opt/immich/library/ "$BACKUP_DIR/library/"
rsync -av /opt/immich/upload/ "$BACKUP_DIR/upload/" 2>/dev/null
# 3. 压缩并加密
tar -czf "$BACKUP_DIR/immich-backup.tar.gz" -C "$BACKUP_DIR" db.sql library/
gpg --symmetric --cipher-algo AES256 "$BACKUP_DIR/immich-backup.tar.gz"
# 4. 同步到远程存储(如 Backblaze B2)
rclone sync "$BACKUP_DIR" "b2:my-immich-backups/$TIMESTAMP" --progress
echo "✅ Immich 备份完成: $TIMESTAMP"
定时任务
# 每周日凌晨 3:00 自动备份
0 3 * * 0 /bin/bash /opt/immich/backup.sh
实测性能对比
在 Hetzner CX22 (€4/月) 上运行 3 个月的真实数据:
📸 照片数量: 12,347 张
🎥 视频数量: 415 个
💾 总存储: 89.7 GB
⏱️ ML 分析时间: ~6 小时(首次)
🔄 日常备份大小: ~2.3 GB(增量)
💸 每月成本: €4 (VPS) + €5.40 (90GB Block Storage) = €9.40
对比 Google One 2TB: $9.99/月 → 每年节省约 $80,且享受无损存储和完全数据控制。
高级优化技巧
1. 使用硬件加速转码
在 docker-compose.yml 中添加 GPU 支持:
services:
immich-machine-learning:
image: ghcr.io/immich-app/immich-machine-learning:release
devices:
- /dev/dri:/dev/dri # Intel QuickSync
deploy:
resources:
reservations:
devices:
- capabilities: [gpu] # NVIDIA GPU
2. 配置外部存储(不占用 VPS 系统盘)
# 挂载 Hetzner Volume
mkfs.ext4 /dev/sdb
mount /dev/sdb /mnt/immich-storage
# 修改 .env 中的 UPLOAD_LOCATION
UPLOAD_LOCATION=/mnt/immich-storage/library
3. 限制内存和 CPU
Immich 的 ML 模块比较吃资源,可以限制:
services:
immich-machine-learning:
deploy:
resources:
limits:
cpus: '2'
memory: 2G
4. 启用自动清理
docker exec immich_server immich-admin jobs --task thumbnail-generation
# 配合 cron 每天凌晨运行
常见问题
Q: 手机端备份耗电吗?
A: Immich 支持后台备份和仅 WiFi 上传,与 Google Photos 体验一致,耗电水平相当。
Q: 能从 Google Photos 迁移过来吗?
A: 可以!使用 Google Takeout 导出照片后,通过 Immich Web UI 的批量上传功能导入。也可以使用社区工具 immich-go 直接导入 Google Takeout 的压缩包。
Q: 多人使用怎么收费?
A: 免费!Immich 本身完全免费,你只需要支付 VPS 和存储的费用。5 口之家共享一个实例,每月成本通常不超过 $15。
Q: 人脸识别准确率如何?
A: Immich 使用本地运行的机器学习模型(基于 CLIP + 自研人脸识别),准确率与 Google Photos 相当。初次分析较慢,后续增量分析极快。
Q: 支持 Live Photos 吗?
A: 支持!iOS Live Photos 会被正确识别并在 Web/App 上播放。
总结
Immich 是目前最接近 Google Photos 体验的自托管方案。它成熟度极高(GitHub 50k+ ⭐),社区活跃,功能迭代快。如果你:
- 每年付 $120+ 给 Google Photos
- 在意照片隐私和数据控制权
- 有一台 VPS 或 NAS
- 希望全家共享一个照片平台
那么 今天就动手搭建 Immich。只需一杯咖啡的时间,就能拥有属于自己的、完全可控的照片云。
快速参考
# 一键部署(如果你的 VPS 有 Docker)
git clone https://github.com/immich-app/immich.git
cd immich/docker
cp example.env .env
# 编辑 .env 修改密码和存储路径
docker compose up -d
你的数据,你做主。☁️🔐
