快轉到主要內容

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

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

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

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

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

2024年, Immich專案加入FUTO組織,由全職開發者負責軟體開發。

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

1. Immich特色功能
#

優點
#

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

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

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

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

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

Immich支援以檔案名稱搜尋照片。AI會識別照片中的物件,讓使用者可以用關鍵字搜尋

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

備份的時候Immich提供二種模式:你可以上傳照片讓Immich自動整理,或者手動把照片放到硬碟資料夾分類,並讓Immich掃描,將照片顯示在網頁。

對於喜歡用硬碟資料夾整理照片的用戶,Immich能讓你在網頁直接依照資料夾結構去找照片。


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

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

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

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

Immich支援多用戶登入,可以給各個用戶設定照片容量配額。

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

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

缺點
#

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

中文支援尚不齊全,雖然中文界面有了,但是地圖搜尋依然顯示的是英文地址。

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

2. 安裝Immich
#

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

2.1. 設定伺服器端
#

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

官方文件有提到Docker、Kubernetes、Unraid的裝法。其中Docker-compose是最簡單的方式。

  1. 於Linux電腦安裝 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:2283http://電腦區域IP:2283,存取Immich網頁界面,一開始要用電子郵件註冊管理員帳號。

  2. 上傳照片(方法後述),你就可以點選右上角大頭貼 → 管理 → 作業,將所有選項都設定為「活躍」,開始掃描分類照片。

  3. 如果你覺得圖片辨識不夠精準的話,那麼請在右上角大頭貼 → 管理 → 機器學習設定 → 智慧搜尋 → Clip模型,改用較大的多語言模型immich-app/nllb-clip-large-siglip__v1

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

cd immich-app
docker compose down
  1. 更新容器的指令:
docker compose pull

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

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

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

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

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

關閉影像辨識:右上角大頭貼 → 管理 → 設定 → 機器學習設定,將所有服務取消打勾。

關閉影片轉檔:用意是讓影片能在網頁更快載入,但是影片太多會轉檔很久。如果要關閉的話,點選右上角大頭貼 → 管理 → 設定 → 影片轉碼,將轉碼策略改為「不轉碼」。

3. 手動上傳照片至Immich
#

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

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

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

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

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

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

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

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

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

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

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

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

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

4. 掃描現有照片資料夾
#

此功能稱作外部圖庫(Library),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:下面的volumes區塊新增唯讀volume:
  immich-server:
    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. 回到網頁界面,點選右上角大頭貼 → 管理 → 使用者 → 外部圖庫,新增圖庫,加入資料夾路徑

  2. 點選掃描開始掃描照片

  3. 在右上角大頭貼 → 管理 → 作業頁面,可以看照片掃描分類的進度。

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網頁界面 → 右上角大頭貼 → 帳號設定 → API金鑰,產生新金鑰

  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

相關文章

標籤式圖片管理軟體,Hydrus Network的Docker遠端存取方案
分類   Linux系統 Self-hosting自架
標籤   Hydrus Network Docker Media Server Photo Gallery
PhotoPrism,用Docker架設Google相簿替代品
分類   Linux系統 Self-hosting自架
標籤   Photo Gallery Google Photo
Jellyfin:用Docker自架可調畫質 + 硬體解碼的影片音樂串流伺服器
分類   Linux系統 Self-hosting自架
標籤   Media Server

留言板

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

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

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用圖床網站。