在 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 的表現明顯更好。代價是安裝複雜一點,資源也用更多。
想更完整比較 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 啟動
- 打開 Container Manager → 專案
- 點右上角建立
- 名稱填
immich - 路徑選
/volume1/docker/immich - 點下一步,確認 compose 設定沒問題
- 點完成,等待映像下載(第一次需要幾分鐘)
或者如果你偏好用 SSH 執行:
cd /volume1/docker/immich
docker compose up -d
5. 確認服務正常運作
等所有容器啟動後,瀏覽器開啟:
http://NAS的IP:2283
看到 Immich 的設定頁面就代表安裝成功。
🚀 初次設定
建立管理員帳號
第一次進入 Immich 時,系統會要求你建立管理員帳號。輸入 Email 和密碼後即可完成。
注意: Email 只是作為登入帳號,不需要是真實的郵件地址,但建議使用方便記憶的格式。
設定儲存空間
進入 管理 → 系統設定 → 儲存空間,確認上傳路徑指向正確位置。預設是使用我們在 .env 設定的 UPLOAD_LOCATION,通常不需要更動。
匯入現有照片(可選)
如果你的 NAS 上已有照片,可以設定外部媒體庫,讓 Immich 直接讀取現有資料夾,不需要複製一份:
- 管理 → 系統設定 → 外部媒體庫
- 新增路徑,指向你 NAS 上的照片資料夾
- 返回後執行掃描媒體庫
📱 手機 App 設定
Immich 有官方 iOS 和 Android App,可以在 App Store 和 Google Play 搜尋「Immich」安裝。
連線設定
- 打開 App → 輸入伺服器位址
- 輸入
http://NAS的IP:2283(在家用區網直連) - 若要從外部連線,需要搭配 Cloudflare Tunnel 或 Tailscale
從外部安全連回家裡 NAS 的做法,可以參考 Cloudflare Tunnel 教學 或 Tailscale 教學。
開啟自動備份
登入後:
- 點右下角個人頭像 → 備份
- 開啟自動備份
- 選擇要備份的相簿(可以選「全部相片」或指定相簿)
- 設定充電時才備份和 Wi-Fi 才備份(建議都開)
第一次備份時間取決於你的照片量,有幾千張照片可能需要幾十分鐘到幾個小時。
✨ 常用功能
人臉辨識
Immich 會在背景自動對上傳的照片執行人臉辨識。辨識完成後:
- 點選左側選單人物
- 系統會自動把相同的臉歸類在一起
- 點進去後可以幫人物命名
- 之後搜尋名字就能找到所有這個人的照片
第一次辨識需要時間,照片量大的話可能要幾個小時。辨識在背景進行,不影響日常使用。
語意搜尋
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 上。
🔗 延伸閱讀
- Synology Photos vs Google Photos:自架相簿值不值得?
- Synology Container Manager 完整教學
- Synology Hyper Backup 備份策略教學
- Cloudflare Tunnel:從外部安全連回 NAS