我原本習慣使用OneDrive備份我裝置上的照片,但OneDrive的存取速度真的超慢,基本上是連影片都預覽不了。後來發現了「Immich」這個自架的相簿服務,用一用感覺挺好用,就把OneDrive的照片遷移過去,順便做個紀錄。
Immich 介紹
「Immich」是一個開源的自架相片與影片管理解決方案,介面類似於Google相簿,也有提供手機App。
UI 介面
整體介面採用 Material Design,我個人認為挺好看的
Immich網頁介面
智慧搜尋
Immich還會用本地AI識別照片主題物件、圖片OCR文字辨識,如此一來就可以透過自然語言搜尋照片 (影片的話會以封面為主)

介紹完後,將開始安裝環節~~
安裝 Immich
NOTE本文以我使用的 Ubuntu Server 系統 + Docker 為主,不同發行版可能略有不同
Immich有多種部署方式,其中官方推薦以 Docker Compose 的方式安裝,也是本文將使用的部署方式
安裝 Docker
不同系統安裝方式略有不同,請參閱 安裝 Docker
下載所需檔案
先建立一個資料夾存放資料
mkdir ./immich-appcd ./immich-app下載 docker-compose.yml
wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml下載 .env 檔案
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env修改 .env 的內容
基本上大部分不用修改,注意以下幾個參數就好:
DB_PASSWORD: Immich資料庫的密碼,建議修改UPLOAD_LOCATION: 透過Immich上傳的媒體存放位置
啟動容器
基本上設定好後,就可以啟動容器了
docker compose up -d於瀏覽器輸入 http://localhost:2283 來打開網頁介面並繼續設定
遷移OneDrive上的資料
這部分是最浪費時間的,原本想說用OneDrive的網頁介面下載所有圖片,但我的所有圖片加起來大概有50GB大,導致網頁下載一直失敗。後來找到的方式是使用 Rclone 下載OneDrive上的資料
使用 Rclone 下載雲端資料
Rclone 是一款開源、多執行緒的命令列工具,專門用於管理與同步雲端硬碟及伺服器檔案。
Rclone 支援Google雲端硬碟、OneDrive等超過70種儲存服務,所以如果你用其他雲端服務應該也能照著我的方式操作
安裝 Rclone
sudo -v ; curl https://rclone.org/install.sh | sudo bash使用網頁管理 Rclone
雖然Rclone是命令行工具,但亦有提供網頁GUI,這樣設定會比較方便,可透過下列指令啟動:
rclone gui --user=[網頁存取帳號] --pass=[網頁存取密碼] --addr localhost:12345 -ip-addr localhost:54321於瀏覽器打開 http://localhost:12345 來存取Rclone WebUI
設定遠端空間
在網頁GUI,點 Remotes 裡的 Add New Remote

會跳轉到新增遠端空間的畫面,輸入以下資訊
name: 你想設定的遠端名稱type: 選擇 OneDrive
輸入完後點選 Create Remote,應該會跳出微軟帳號授權服務的畫面,照著步驟授權

NOTE如果你使用遠端連線,可能會遇到無法授權存取,這時你可以使用SSH Tunnel做端口轉發,然後找到終端輸出的授權URL,再用瀏覽器打開
Terminal window ssh -L localhost:53682:localhost:53682 username@remote_server
成功加入後,應該就能在 Explorer 頁面看到新增的遠端空間,就可以進行傳輸,下載到電腦上
