1. Immich 介紹:Google Photos 的最佳開源替代
在尋找 Google Photos 的替代方案時,Immich 無疑是近年來最強大的選手。它提供了極為相似的使用者體驗,包括:
- 流暢的手機 App (iOS/Android)
- 自動備份
- 人臉辨識與地圖檢視
- 高效能的網頁介面
最重要的是,它是 Self-hosted 的,這意味著你的照片完全掌握在自己手中,不再受制於雲端硬碟的容量限制。
2. iCloud Photo Downloader 介紹:從 iCloud 把照片「救」回來
雖然 Immich 很棒,但我們的手機 (iPhone) 還是被 iCloud 綁架。為了把 iCloud 上的照片無縫同步到我們的 NAS 或 Server 上,我們需要 iCloudpd。
我們採用 Docker 方式部署,這裡推薦使用 boredazfcuk/icloudpd 這個映像檔,它封裝得很好,支援自動化排程與 2FA 處理。
Docker Compose 範例
services:
icloudpd:
image: boredazfcuk/icloudpd
container_name: icloudpd
environment:
- TZ=Asia/Taipei
- user=your_apple_id@email.com
- user_id=1000
- group_id=1000
- download_path=/data/photos
volumes:
- ./config:/config
- /path/to/your/photos:/data/photos
restart: unless-stopped
3. 整合:打造自動化流水線
整體的整合邏輯如下:
- 來源:iPhone 拍照 -> 上傳 iCloud。
- 中介:iCloudpd (Docker) 定時執行,將 iCloud 照片下載到 Server 的
/data/photos目錄。 - 終點:Immich 設定 External Library (外部圖庫),掛載
/data/photos(唯讀模式)。
這樣做的好處是,iCloudpd 負責「搬運」,Immich 負責「展示」。即使 Immich 資料庫掛了,你的原始照片依然安好地躺在硬碟裡。
4. 除錯與常見問題
在整合過程中,最常遇到的問題通常與驗證有關:
- 2FA 驗證過期:iCloud 的 Cookie 大約每 30 天會過期。當 Docker Log 出現驗證錯誤時,需要進入容器重新驗證:
docker exec -it icloudpd sync-icloud.sh --Initialise - 檔案權限:確保 iCloudpd 下載的檔案 (PUID/PGID) 與 Immich 讀取的權限一致,否則 Immich 會掃描不到照片。
- 重複檔案:iCloudpd 支援
.heic轉.jpg,建議保留原始檔,讓 Immich 處理轉檔展示,避免佔用雙倍空間。
5. 成果:完美的混合雲備份
完成設定後,我們達成了一個完美的混合雲架構:
- 前端:繼續享受 iPhone 拍照與 iCloud 的便利。
- 後端:自動化將照片「落地」到私有雲,不再擔心 iCloud 空間爆滿。
- 體驗:在 Immich 上享受極速的照片瀏覽與 AI 搜尋功能。
這套組合拳,徹底解決了照片備份的焦慮。