快轉到主要內容

Immich相簿架設與使用,界面長得最像Google相簿的照片管理軟體

Linux系統 Self-hosting自架 Photo Gallery Google Photo
🗓️ 民國113年 甲辰年
✍ 切換正體/簡體字
目錄

「Immich」是一款開源的自架雲端相簿服務,提供網頁及手機APP,協助整理照片。

對不想依賴商業相簿服務的人來說,Immich十分適合部署到NAS或私人伺服器,用於備份與整理照片,使用起來體驗不輸「Google相簿」這類商業相簿服務,可做為Google相簿替代品。

以下是Immich的圖示。開發者alextran1502說很喜歡日本文化,Immich的圖示即修改自日本戰國時期的織田家家徽,他還景仰吉川英治《新書太閤記》中豐臣秀吉的精神。

本文讓Ivon介紹Immich的安裝與使用方式。

1. Immich特色功能
#

優點
#

就上傳照片而言,Immich可以手動拖到網頁上傳,或是讓Immich掃描電腦現有資料夾自動新增。

Ivon用下來,覺得Immich功能做得很像Google相簿,繼承Google相簿簡單的特色,該有的功能都有:讀取Exif、公開共享相簿、回憶集錦(歷史上的今天)、臉部辨識、定時備份。

網頁界面的操作邏輯很像Google相簿,拖動右邊的軸線檢視照片時間軸

點選照片後查看相機、地點資訊

上傳照片後,Immich會自動掃描人臉

以及將照片繪製在世界地圖上。

AI會識別照片中的物件,讓使用者可以用關鍵字搜尋。有趣的是Immich允許您自選AI物件辨識背後用的模型,硬體夠強的可以用大模型得到更精準的結果。

Immich還會挑選過去的照片,在照片列表最上方顯示回憶集錦(歷史上的今天)


Immich強項在於提供手機APP,可以當一般的相簿APP使用。

主界面手機和伺服器的照片會顯示在一塊,並用「雲朵」圖示標示哪些圖片尚未上傳。

當然,用來分別檢視手機資料夾的照片也是可以的。

Immich的APP方便備份照片到伺服器,可選擇定時背景排程備份,支援RAW檔和原況照片。

支援只備份特定手機資料夾(相簿),而非把DCIM資料夾的照片都傳上去。

Immich光這點就比類似產品 PhotoPrism有誠意多了,後者竟然到現在還在叫使用者認命用PWA網頁程式。

Immich支援單一伺服器、多用戶登入。

缺點
#

Immich標籤系統不若PhotoPrism明瞭,雖然Immich可以用「顏色」、「物件」標籤下去搜尋照片,但是他不會像PhotoPrism把掃描到的標籤列成一個完整清單,標籤也沒辦法自己新增。

此外,Immich開發者開發好幾年了,Github收穫了幾萬顆星,還無法保證軟體絕對穩定。Immich幾乎每週推出一個新版本,Github首頁到現在仍寫著:「不要把Immich當作唯一的照片備份方案!」相較之下PhotoPrism採取穩定發表版本的模式,還把一些功能弄成付費版。

Immich跑AI辨識的時候比PhotoPrism吃資源,CPU常常跑到100%;PhotoPrism在資源調度方面比較穩定。

2. 安裝Immich
#

撰文當下的Immich版本:v1.97.0

2.1. 設定伺服器端
#

硬體需求部份,Immich官方建議CPU至少2核心、RAM至少4GB。

官方文件有提到Docker、Kubernetes、Unraid的裝法。

其中Docker-compose是最簡單的方式。

  1. 於系統安裝 Docker

  2. 建立存放資料的目錄。

mkdir immich-app
cd immich-app
  1. 取得官方範本。此docker-compose內含Immich所需的各項服務,包含反向代理。
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
  1. Immich的變數都寫在.env裡面了,官方建議把TYPESENSE_API_KEY改成隨機產生的數字,或者維持預設。

  2. 啟動容器服務

docker compose up -d
  1. 用瀏覽器開啟http://localhost:2283存取Immich網頁界面,一開始要用電子郵件註冊管理員帳號。

  2. 在上傳照片之後,你可以點選右上角Administration → Jobs頁面,將所有選項都設定為Active,開始掃描分類照片。

  3. 如果你覺得圖片辨識不夠精準的話,那麼請在Administration → Machine Learning Settings → Smart Search → Clip Model,改用較大的多語言模型immich-app/nllb-clip-large-siglip__v1

停止Immich全部容器服務的指令:

cd immich-app
docker compose down

更新容器的指令:

docker compose pull

2.2. 設定外部網路存取Immich
#

Immich只要有電腦網頁就可以用,手機推薦用APP存取。

不過若是要從外面的網路連線到Immich伺服器怎麼辦呢?我會使用 內網穿透軟體。設定好內網穿透後,你就可以用http://電腦IP:2283存取遠端Immich伺服器了。

2.3. 適時關閉吃資源的服務
#

影像辨識和影片轉檔是Immich最吃資源的服務,如果用不到可以將其關閉。

關閉影像辨識:Administration → Settings → Machine Learning Settings,將Enabled取消打勾。

影片轉檔的用意是讓影片能在網頁更快載入,但是影片太多會轉檔很久。如果要關閉:Administration → Settings → Video Transcoding Settings → TRANSCODE POLICY,選取Dont't transcode any videos.

3. 上傳照片至Immich,手機備份
#

照片「上傳」就是說,使用者必須將照片整理,「上傳」到Immich的資料庫。

也就是說,日後照片是直接上傳照片到Immich的資料庫,不做任何資料夾分類,照片只有Immich能讀取。

此方法適合手機備份照片。

如果你不喜歡這麼做,那麼請參考下一節「自動掃描資料夾新增照片」。

  1. Immich網頁版就可以拖拉上傳了。至於手機,請先按照你的系統下載: Android iOS

  2. 開啟後登入Immich伺服器帳號

  3. 點選右上角雲朵上傳圖示,點選Backup Album,選取要備份的資料夾。預設是手機全部照片(Recent)。Android的話可以個別設定要備份的資料夾。

  4. 接著下面有二個備份方式,Foreground Backup是一開啟APP便自動上傳,Background service是自動在背景備份。

  5. 一切設定好後,點選Start Backup。

目前Immich的備份邏輯:Immich備份後會自動計算校驗值,標記已經上傳的照片,這樣就不會重複上傳了。

照片上傳後,本機照片不會刪除。如果要保留伺服器照片,只刪除本機照片的話,你要手動用其他APP刪本機照片。

如果在Immich APP裡面按刪除,則該照片會從伺服器和本機一併刪除。

另外,只有選取備份的手機資料夾,才會跟伺服器的照片一起顯示在時間軸上。

4. 自動掃描資料夾新增照片,免上傳
#

這是Immich 1.79.1之後才加入的功能,稱作「Libraries」,Immich預設的Library是UPLOAD,不能刪除。使用者可以新增多個Library,直接掃描現有的硬碟資料夾,讓Immich讀取並彩現在網頁(不會對照片做任何變更),這樣就不用重新上傳照片了。

  1. 首先,停止Immich服務
cd immich-app
sudo docker compose down
  1. 編輯docker-compose.yml,加入照片所在資料夾的路徑,使其成為Docker volume。

例如我有/run/media/user/TOSHIBA1TB/DCIM這個照片資料夾,就要在immich-server:immich-microservices:下面的volumes區塊分別新增唯讀volume:

  immich-server:
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /run/media/user/TOSHIBA1TB/DCIM:/run/media/user/TOSHIBA1TB/DCIM:ro

  immich-microservices:
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /run/media/user/TOSHIBA1TB/DCIM:/run/media/user/TOSHIBA1TB/DCIM:ro
  1. 啟動容器服務
sudo docker compose up -d
  1. 回到網頁界面,點選右上角Administration → Users,新增External Path,加入資料夾路徑

  2. 點選右上角大頭貼 → Account Settings → Libraries,新增Library,並加入資料夾路徑

  3. 點選Scan開始掃描照片

  4. 在右上角Administration → Jobs頁面,可以看照片掃描分類的進度。

5. 將Google相簿的照片搬家至Immich
#

這裡我提供二種搬家方法。

嚴格來說,你沒辦法「線上」搬移Google相簿的照片到Immich,你必須先將Google相簿的照片下載到電腦,才能搬移至Immich。

如果你想把Google相簿跟Immich照片分開處理 → 使用Library方法

如果你把Google相簿跟Immich照片融合在一起 → 使用Immich CLI上傳

Library方法
#

自動掃描Google相簿資料夾新增照片。

  1. 使用 GoogleTakeoutHelper整理下載照片,將其變成一個資料夾

  2. 參考上面 #4 的步驟,把Google相簿所在照片的資料夾變成Library,再讓Immich掃描。

Immich CLI上傳
#

根據 官方文件,Immich有提供命令列工具Immich CLI,用於批次上傳照片到伺服器。適用本機有大量照片的場合,例如剛從Google相簿下載回來的照片。

  1. 使用 GoogleTakeoutHelper整理下載照片。

  2. 到Immich網頁界面 → 右上角大頭貼 → Account Settings → API Keys,產生新金鑰

  3. 使用Docker跑Immich CLI。依序輸入Google相簿所在資料夾路徑、金鑰、Immich伺服器位址,便可以上傳整個資料夾的照片檔案到Immich了。

sudo docker run -it --rm -v "/Google相簿所在資料夾/:/import" ghcr.io/immich-app/immich-cli:latest upload --recursive --key "你的金鑰" --server http://192.168.1.216:2283/api

相關文章

PhotoPrism,用Docker架設Google相簿替代品
Linux系統 Self-hosting自架 Photo Gallery Google Photo
標籤式圖片管理軟體,Hydrus Network的Docker遠端存取方案
Linux系統 Self-hosting自架 Hydrus Network Docker Media Server Photo Gallery
Suwayomi + Tachidesk教學,架設免費線上看漫畫伺服器,電腦版Tachiyomi
Linux系統 Self-hosting自架 Media Server Tachiyomi E-hentai Pixiv Manga

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur連結。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。