Featured image of post 自托管 Immich:Google Photos 的最佳开源替代方案

自托管 Immich:Google Photos 的最佳开源替代方案

告别 Google Photos 订阅费!手把手教你用 Immich 在 VPS 上搭建属于你自己的照片备份与管理平台——AI 智能分类、人脸识别、相册共享,完全掌控你的数据

为什么你需要自托管照片管理?

2021 年 6 月,Google Photos 结束了免费无限量高画质备份的时代。如今 200GB 的 Google One 订阅需要 💰 $2.99/月,2TB 则要 $9.99/月。如果你有多个家庭成员,成本还会翻倍。

除此之外,你还要面对:

  • 隐私问题:你的照片被用于训练 AI 模型(即使你有权选择退出)
  • 锁定效应:一旦存储量太大,迁移成本剧增
  • 压缩损失:即使是"原始画质"备份,Google 也会做有损压缩

Immich 就是答案——一个开源的、自托管的照片/视频管理平台,提供近乎完整的 Google Photos 体验。

功能Google PhotosImmich
自动备份
AI 人脸识别✅ (本地运行)
对象/场景识别✅ (本地运行)
相册共享
地图浏览
原始质量存储❌ 有压缩✅ 无损
月费 (1TB)$9.99💸 VPS 成本 ($5-10)
数据控制权Google 所有你100%掌控

Immich 是什么?

Immich 是一个用 TypeScript (NestJS) + Svelte 构建的开源照片管理平台。它运行在 Docker 上,支持:

  • 📱 手机端自动备份 — iOS & Android App
  • 🧠 本地 AI 分析 — 人脸识别、物体检测、OCR 文字识别
  • 👨‍👩‍👧‍👦 多用户支持 — 家庭共享
  • 🗺️ 地图视图 — 按拍摄地点浏览
  • 🔍 强大的搜索 — 基于元数据 + AI 语义搜索
  • 🔗 相册分享 — 生成公开链接分享

最低硬件要求

配置最低要求推荐配置
CPU2 核4 核
内存4 GB8 GB
存储100 GB500 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

你的数据,你做主。☁️🔐

📺 看视频版教程 → DuckDB Lab YouTube

Subscribe for more DuckDB & AI automation tutorials