自架相簿,終於有和 Google Photos 一樣好用的選擇了。

Immich 是功能最接近 Google Photos 的自架相簿軟體,支援手機自動備份、人臉辨識、影片播放。這篇用 Docker Compose 在 Synology NAS 上安裝 Immich,從設定到日常使用一次搞定。

在 Synology NAS 上架設 Immich:最接近 Google Photos 的自架相簿方案

Google Photos 免費無限儲存結束之後,不少人開始找替代方案。

Synology Photos 是第一個浮現的名字,但實際用過的人都知道它和 Google Photos 的體驗差距不小——AI 辨識弱、行動端 App 動作慢、搜尋功能有限。

Immich 是目前自架相簿軟體裡,體驗最接近 Google Photos 的選項。它有:

  • 手機 App 自動備份(iOS / Android)
  • 人臉辨識與分類
  • 地圖檢視
  • 影片播放與備份
  • 相簿共享
  • 時間軸瀏覽(幾乎和 Google Photos 一模一樣)

這篇帶你在 Synology NAS 上用 Docker Compose 安裝 Immich,完成初次設定,並把手機連上去自動備份。


🎯 這篇適合誰

你的情況 建議先看哪段
還不確定 Immich 夠不夠用 先看「Immich vs Synology Photos」
已決定裝,想直接看步驟 跳到「安裝步驟」
裝好了,想把手機連上去 跳到「手機 App 設定」
想了解人臉辨識怎麼用 跳到「常用功能」

📸 Immich vs Synology Photos

如果你已經有 Synology NAS,可能會先考慮用內建的 Synology Photos。兩者最關鍵的差異在這裡:

功能 Immich Synology Photos
手機自動備份 App 有(iOS / Android)
人臉辨識 有,且準確度高 有,但精準度有限
地圖檢視
影片播放 有,支援轉碼 有限
共享相簿 有,可對外分享連結
搜尋能力 強(語意搜尋) 基本
安裝方式 Docker Compose(需要手動安裝) DSM 套件,點幾下就好
系統資源 較高(機器學習模型需要記憶體) 較低
開源 / 活躍維護 是,更新非常頻繁 官方套件

Immich Docker Compose 架構:四個容器協同運作,照片備份與 AI 功能全在 NAS 上

如果你對相簿管理有要求,特別是人臉辨識、語意搜尋、手機體驗,Immich 的表現明顯更好。代價是安裝複雜一點,資源也用更多。

想更完整比較 Synology Photos 和 Google Photos 的差異,可以參考這篇


📋 安裝前準備

在開始前,先確認幾件事:

  • Synology DSM 7.2 以上(Container Manager 需要)
  • 已安裝 Container Manager
  • 記憶體 8GB 以上建議(機器學習模型需要)
  • NVMe 或 SSD 儲存空間(建議把 Immich 資料放在快速存取的位置)

如果你的 NAS 記憶體不足 8GB,Immich 還是可以跑,但人臉辨識和語意搜尋的速度會比較慢。

還沒安裝 Container Manager?可以參考這篇教學


🛠️ 安裝步驟

1. 建立資料夾結構

先在 File Station 建立 Immich 需要的目錄:

/volume1/docker/immich/
├── upload/        ← 所有照片和影片存這裡
└── pgdata/        ← 資料庫資料(由 Docker 自動管理)

你可以在 File Station 手動建立,或透過 SSH:

mkdir -p /volume1/docker/immich/upload

2. 建立 .env 設定檔

/volume1/docker/immich/ 目錄下建立 .env

# 資料庫設定(可以自訂密碼)
DB_HOSTNAME=database
DB_USERNAME=postgres
DB_PASSWORD=your_secure_password
DB_DATABASE_NAME=immich

# Redis
REDIS_HOSTNAME=redis

# 照片儲存路徑(對應 NAS 上的資料夾)
UPLOAD_LOCATION=/volume1/docker/immich/upload

# Immich 版本(建議用 release 跟隨最新穩定版)
IMMICH_VERSION=release

請把 your_secure_password 換成你自己的密碼,之後不要再改。

3. 建立 docker-compose.yml

在同一個目錄下建立 docker-compose.yml

version: "3.8"

services:
  immich-server:
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env
    ports:
      - 2283:2283
    depends_on:
      - redis
      - database
    restart: always

  immich-machine-learning:
    image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
    volumes:
      - model-cache:/cache
    env_file:
      - .env
    restart: always

  redis:
    image: docker.io/redis:6.2-alpine
    restart: always

  database:
    image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
      POSTGRES_INITDB_ARGS: '--data-checksums'
    volumes:
      - pgdata:/var/lib/postgresql/data
    restart: always
    command: >
      postgres
      -c shared_preload_libraries=vectors.so
      -c search_path="$$user", public, vectors
      -c logging_collector=on
      -c max_wal_size=2GB
      -c shared_buffers=512MB
      -c wal_compression=lz4

volumes:
  pgdata:
  model-cache:

4. 用 Container Manager 啟動

  1. 打開 Container Manager → 專案
  2. 點右上角建立
  3. 名稱填 immich
  4. 路徑選 /volume1/docker/immich
  5. 下一步,確認 compose 設定沒問題
  6. 完成,等待映像下載(第一次需要幾分鐘)

或者如果你偏好用 SSH 執行:

cd /volume1/docker/immich
docker compose up -d

5. 確認服務正常運作

等所有容器啟動後,瀏覽器開啟:

http://NAS的IP:2283

看到 Immich 的設定頁面就代表安裝成功。


🚀 初次設定

建立管理員帳號

第一次進入 Immich 時,系統會要求你建立管理員帳號。輸入 Email 和密碼後即可完成。

注意: Email 只是作為登入帳號,不需要是真實的郵件地址,但建議使用方便記憶的格式。

設定儲存空間

進入 管理 → 系統設定 → 儲存空間,確認上傳路徑指向正確位置。預設是使用我們在 .env 設定的 UPLOAD_LOCATION,通常不需要更動。

匯入現有照片(可選)

如果你的 NAS 上已有照片,可以設定外部媒體庫,讓 Immich 直接讀取現有資料夾,不需要複製一份:

  1. 管理 → 系統設定 → 外部媒體庫
  2. 新增路徑,指向你 NAS 上的照片資料夾
  3. 返回後執行掃描媒體庫

📱 手機 App 設定

Immich 有官方 iOS 和 Android App,可以在 App Store 和 Google Play 搜尋「Immich」安裝。

連線設定

  1. 打開 App → 輸入伺服器位址
  2. 輸入 http://NAS的IP:2283(在家用區網直連)
  3. 若要從外部連線,需要搭配 Cloudflare Tunnel 或 Tailscale

從外部安全連回家裡 NAS 的做法,可以參考 Cloudflare Tunnel 教學Tailscale 教學

開啟自動備份

登入後:

  1. 點右下角個人頭像 → 備份
  2. 開啟自動備份
  3. 選擇要備份的相簿(可以選「全部相片」或指定相簿)
  4. 設定充電時才備份Wi-Fi 才備份(建議都開)

第一次備份時間取決於你的照片量,有幾千張照片可能需要幾十分鐘到幾個小時。


✨ 常用功能

人臉辨識

Immich 會在背景自動對上傳的照片執行人臉辨識。辨識完成後:

  1. 點選左側選單人物
  2. 系統會自動把相同的臉歸類在一起
  3. 點進去後可以幫人物命名
  4. 之後搜尋名字就能找到所有這個人的照片

第一次辨識需要時間,照片量大的話可能要幾個小時。辨識在背景進行,不影響日常使用。

語意搜尋

Immich 支援自然語言搜尋。在搜尋框輸入:

  • 「海邊的夕陽」
  • 「吃飯的照片」
  • 「有狗的戶外照片」

它會用 AI 找出符合描述的照片,不需要你手動標籤。這是 Synology Photos 目前還做不到的功能。

地圖檢視

有 GPS 資訊的照片會自動顯示在地圖上,點地點可以看到在那裡拍的所有照片。

分享相簿

選取照片 → 分享 → 建立分享連結,可以設定有效期限或密碼。對方不需要有 Immich 帳號就能開啟。


❓ 常見問題

Q1:Immich 的照片存在哪裡?

所有照片存在 .env 裡設定的 UPLOAD_LOCATION,也就是 /volume1/docker/immich/upload。這是一般的資料夾,你可以直接在 File Station 看到和備份。

Q2:怎麼備份 Immich 的資料?

需要備份兩個部分: 1. 照片本身/volume1/docker/immich/upload/,用 Hyper Backup 設定定期備份 2. 資料庫:用 Immich 內建的備份功能(管理 → 系統設定 → 資料庫備份),或直接備份整個 docker volume

Hyper Backup 的設定方式可以參考這篇

Q3:人臉辨識一直沒有跑完怎麼辦?

先確認 immich-machine-learning 容器有正常運作。可以在 Container Manager 確認容器狀態,或在日誌裡查看有沒有錯誤訊息。記憶體不足(低於 4GB 可用)有時候會造成機器學習容器重啟。

Q4:可以把 Google Photos 的照片匯入嗎?

可以。先從 Google Takeout 下載你的 Google Photos 資料,解壓縮後可以: - 透過 Immich 網頁介面上傳 - 或直接複製到 NAS 的共享資料夾後,設定外部媒體庫讓 Immich 掃描

Q5:更新 Immich 怎麼做?

Immich 更新頻率很高,建議定期更新:

cd /volume1/docker/immich
docker compose pull
docker compose up -d

在 Container Manager 的專案頁面,也可以直接點更新


✨ 總結

Immich 是目前自架相簿裡體驗最接近 Google Photos 的方案。安裝比 Synology Photos 複雜,資源也用得更多,但如果你在意:

  • 手機備份的流暢度
  • 人臉辨識的準確性
  • AI 搜尋能力
  • 功能的持續更新

那 Immich 值得花時間設定。

設定好之後,日常使用幾乎和 Google Photos 一樣自然,照片還存在自己的 NAS 上。


🔗 延伸閱讀

這篇有幫助嗎? 自架相簿,終於有和 Google Photos 一樣好用的選擇了。