From f61148243252ea380c6a5cabeafe2c4210e9621d Mon Sep 17 00:00:00 2001 From: Jay Lin Date: Sun, 23 Nov 2025 14:02:27 +0000 Subject: [PATCH 1/2] add new posts: rclone-pcloud-backup --- .../posts/rclone-pcloud-backup/dsm-task-1.png | Bin 0 -> 24191 bytes .../posts/rclone-pcloud-backup/dsm-task-2.png | Bin 0 -> 48094 bytes content/posts/rclone-pcloud-backup/index.md | 287 ++++++++++++++++++ 3 files changed, 287 insertions(+) create mode 100644 content/posts/rclone-pcloud-backup/dsm-task-1.png create mode 100644 content/posts/rclone-pcloud-backup/dsm-task-2.png create mode 100644 content/posts/rclone-pcloud-backup/index.md diff --git a/content/posts/rclone-pcloud-backup/dsm-task-1.png b/content/posts/rclone-pcloud-backup/dsm-task-1.png new file mode 100644 index 0000000000000000000000000000000000000000..007946eb25ee3a6e396588c1cd0e9619e44e5d41 GIT binary patch literal 24191 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 literal 0 HcmV?d00001 diff --git a/content/posts/rclone-pcloud-backup/index.md b/content/posts/rclone-pcloud-backup/index.md new file mode 100644 index 0000000..193b370 --- /dev/null +++ b/content/posts/rclone-pcloud-backup/index.md @@ -0,0 +1,287 @@ +--- +title: "在 Synology NAS 上用 rclone + pCloud 建立加密雲端備份" +summary: "使用 Docker 版 rclone 將 Synology NAS 的資料端對端加密後備份到 pCloud,包含配置、headless 授權、排程與驗證建議。" +tags: ["rclone", "pcloud", "synology", "backup", "docker"] +categories: [] +date: 2025-11-22T10:00:00+08:00 +lastmod: 2025-11-22T10:00:00+08:00 +draft: false + +# toha params +menu: + sidebar: + name: 在 Synology NAS 上用 rclone + pCloud 建立加密雲端備份 + identifier: rclone-pcloud-backup + parent: + weight: 20 +--- + +## 前言 +本文說明如何在 Synology NAS 上使用 `rclone` 這套工具,搭配 pCloud 這個雲端來做到雲端方案的端對端加密備份,讓資料的保障更上一層樓 + +## 安裝 rclone +這邊以 macOS 為例, 透過 `brew` 安裝 rclone +```sh +brew install rclone +``` + +Synology NAS 的部分,本文會使用 docker 來執行 rclone, 因此無須在 Synolog 的 host 上面安裝 rclone + +## 設定 rclone remote for pCloud + +這個步驟是為了讓 rclone 取得存取 pCloud 的權限 + +ssh 進 Synology, 透過 docker 執行 rclone config +```sh +docker run --rm -it --volume /volume1/docker/rclone/config:/config/rclone --user $(id -u):$(id -g) rclone/rclone config +``` + +這邊請透過 volume 選項將 rclone 的 `rclone.conf` 設定檔放到你想放的 NAS 位置,如果沒加 volume 的話 `rclone.conf` 會放在 container 內,這樣就沒辦法保存設定給後面的備份設定使用,例如這邊的範例是我將 config 檔保存在 `/volume1/docker/rclone/config` 中,這樣一來在後面的 rclone 備份指令中就可以沿用這個步驟設定完成的 `rclone.conf` + + +進到 rclone 的互動式介面後,選擇 New remote,接著按照系統提示一步一步設定 pcloud remote (storage type 選擇 42 代表要加入 pcloud) + +``` +42 / Pcloud + \ (pcloud) +``` + +範例設定如下 (client_id, client_secret 留空即可) +``` +Storage> 42 + +Option client_id. +OAuth Client Id. +Leave blank normally. +Enter a value. Press Enter to leave empty. +client_id> + +Option client_secret. +OAuth Client Secret. +Leave blank normally. +Enter a value. Press Enter to leave empty. +client_secret> + +Edit advanced config? +y) Yes +n) No (default) +y/n> n + +Use web browser to automatically authenticate rclone with remote? + * Say Y if the machine running rclone has a web browser you can use + * Say N if running rclone on a (remote) machine without web browser access +If not sure try Y. If Y failed, try N. + +y) Yes (default) +n) No +y/n> N + +Option config_token. +For this to work, you will need rclone available on a machine that has +a web browser available. +For more help and alternate methods see: https://rclone.org/remote_setup/ +Execute the following on the machine with the web browser (same rclone +version recommended): + rclone authorize "pcloud" +Then paste the result. +Enter a value. +config_token> +``` + +
+ +到了 Option config_token 這步,由於 Synology NAS 沒有 Web browser, 因此選擇 `n`,我們回到 macOS, 使用以下指令進行認證 +```sh +rclone authorize pcloud +``` + +瀏覽器會跳轉到 pcloud 的登入頁面,登入成功後瀏覽器會顯示一個 access token,將這個 access token 貼回 Synology 的 rclone config 中就設定完成了 + +完成後 NAS 的檔案總管上在你指定的 volume 底下的 folder 預期可以得到一份 rclone.conf,請把這個檔案備份好 + + +## 設定 rclone crypt remote pcloud + +順利讓 rclone 取得 pcloud 的存取權限後,接下來我們要在 rclone 開一個 crypt remote, 把 pcloud 的指定路徑變成我們的端對端加密備份的路徑 + +在 Synology 上透過 docker 執行 rclone config +```sh +docker run --rm -it --volume /volume1/docker/rclone/config:/config/rclone --user $(id -u):$(id -g) rclone/rclone config +``` + +選擇 New remote,remote name 輸入 `pcloud_crypt`,Storage type 選擇 crypt +``` +15 / Encrypt/Decrypt a remote + \ (crypt) +``` + +接著會要你輸入想要 encrypt/decrypt 的 remote 以及 path +``` +Storage> 15 + +Option remote. +Remote to encrypt/decrypt. +Normally should contain a ':' and a path, e.g. "myremote:path/to/dir", +"myremote:bucket" or maybe "myremote:" (not recommended). +Enter a value. +remote> +``` + +remote 就輸入你前面步驟設定的 pcloud remote (這裡的 remote name 以 `pcloud` 為例),path 的部分,需要指定一個路徑,rclone 會在 pcloud 上面建立這個路徑的 folder, 並將這個 folder 作為 rclone 使用,因此若你平常就有在使用 pcloud 存放檔案的話,強烈建議一定要指定路徑,否則 rclone 會將整個 plcoud 的根目錄都拿來使用 + +這邊我指定了 `nas_backup` 這個路徑,這樣一來在之後透過這個 remote 操作備份時,rclone 就會在 pcloud 的根目錄建立 nas_backup 這個 folder 並將我們的檔案加密後放進這個 folder 中 +``` +Option remote. +Remote to encrypt/decrypt. +Normally should contain a ':' and a path, e.g. "myremote:path/to/dir", +"myremote:bucket" or maybe "myremote:" (not recommended). +Enter a value. +remote> pcloud:nas_backup +``` + +接著設定是否要加密檔案名稱 (預設加密)、是否要加密資料夾名稱(預設不加密),這邊依照個人偏好設定即可 + +接著最重要的一步:設定你的的加密金鑰 (password) +``` +Option password. +Password or pass phrase for encryption. +Choose an alternative below. +y) Yes, type in my own password +g) Generate random password +``` + +可以選擇自己設定一個或是系統幫忙產一個 random password, 不論選哪一種,都請將這個加密金鑰備份好,否則將來無法解開你的備份檔案 + +後續還有一些進階保護的設定選項,例如是否要為你的 password 添加一個 salt、是否要加密 `rclone.conf` 等等,可根據個人需求參考官方文件去設定,本文不再贅述。 + +設定完成儲存後,在 rclone config 就可以看到我們成功新增了一個 crypt remote,至此 remote 的部分已經全數設定完畢,可以開始使用 rclone 備份資料了 + +## 使用 Docker Compose 執行備份 + +在這個步驟,我們要設定以下這個 docker-compose.yml 來當作我們的自動備份 task +```sh +version: "3.9" + +services: + rclone-foobar: + image: rclone/rclone:latest + container_name: rclone-foobar + environment: + - TZ=Asia/Taipei + volumes: + - /volume1/foobar:/data:ro # backup target + - /volume1/docker/rclone/config:/config/rclone # rclone.conf + - /volume1/docker/rclone/logs:/logs # log files + - /volume1/docker/rclone/scripts:/scripts # backup script + # For Synology NAS, use the following entrypoint to run a custom script + entrypoint: ["/bin/sh", "/scripts/backup-foobar.sh"] +``` + +有幾個設定的重點,皆透過 docker volume 進行 +1. 備份目標資料夾 (e.g. `/volume1/foobar`) +2. `rclone.conf` 位置,把前面步驟設定 pcloud 產生的 rclone.conf 儲存在你要的地方並將 NAS 上的檔案路徑 (e.g. `/volume1/docker/rclone/config`) 正確的 map 到 container 的 `/config/rclone` 這個路徑 +3. log file 存放位置:為了日後備份失敗時可以 debug, 因此可以在 NAS 上開一個 log 資料夾給 rclone 使用 +4. 備份 script 路徑 (e.g. `/volume1/docker/rclone/scripts`) : 用來執行 `rclone sync` 指令,是備份主要的觸發點,將要執行的備份 script 透過 entrypoint 設定進 compose 中 + +範例的備份 script (`backup-foobar.sh`) 如下 + +```sh +#!/bin/sh +# This script is executed every time the container starts +# Can be used with DSM scheduler to start the container daily and trigger automatic backup + +LOG_FILE="/logs/rclone.log" +echo "=== Rclone backup started at $(date) ===" >> "$LOG_FILE" + +# Upload data to the encrypted remote +rclone sync /data pcloud_crypt:nas_backup \ + --transfers=2 \ + --checkers=4 \ + --exclude-from=/config/exclude_list.txt \ + --log-file="$LOG_FILE" \ + --log-level=INFO + +echo "=== Rclone backup completed at $(date) ===" >> "$LOG_FILE" +``` + +- script 中的 `/data` 會透過 docker volume 指向你的備份目標資料夾,而 `pcloud_crypt:nas_backup` 就是剛剛我們在建立 crypt remote 時的 remote name 以及路徑 +- `--transfers` 和 `--checkers` 可以根據個人的網路能力及需求設定,log 稍候可以透過 docker volume 的方式儲存在 NAS 上面以供日後 debug + +接著我們設定檔案排除以及 logrotate 兩個功能 + +#### 設定排除檔案 +Synology NAS 的資料夾會有一些 synology 專用的索引檔案可以不用備份,我們可以透過 `--exclude-from` 來設定這些 ignore file list,以下附上我從網路上找到用來 ignore Synology 檔案的清單: +``` +@eaDir/** +#recycle/** +Thumbs.db +desktop.ini +.DS_Store +._* +.SynologyWorkingDirectory/** +``` + +#### 設定 logrotate +上面的 docker-compose.yml 範例,我們將 rclone 產生的 log 存在 `/volume1/docker/rclone/logs/` 中,為了必面日後 log 大小過大,因此我們利用 linux 的 logrotate 來處理 log 檔案的自動 rotate + +在 NAS host 上新增一個 logrotate 設定 +```sh +sudo vi /etc/logrotate.d/rclone +``` + +範例設定如下,細部設定可以依照個人需求調整 +``` +/volume1/docker/rclone/logs/*.log { + daily + rotate 7 + compress + delaycompress + missingok + notifempty + copytruncate + size 50M + maxage 14 +} +``` + +測試是否能手動 rotate +```sh +sudo logrotate -f /etc/logrotate.d/rclone +``` + +### 測試 +全部設定完成後,可以 ssh 進 NAS 確認 docker-compose 是否能順利執行: +```sh +docker-compose up +``` + +執行完畢後,container 會自動 exit,檢查 log 無異狀並且檔案有成功上傳到 pcloud 的話就表示成功了 +可以順便在 pcloud 上面看你的檔案有沒有被成功的加密 + +## 透過 DSM 自動化排程備份 +在前面的步驟中,我們已經寫好了一個可以手動進行端對端加密備份的 docker-compose.yml 了,下一步就是要將備份自動化,融入日常的 NAS 任務中,我們要利用 DSM 的 排程任務 (Task Scheduler) 來作這件事情 + +### 建立 rclone user +首先,為了防止 rclone 的權限過大,因此我們在 NAS 上為 rclone 建立一個獨立的 user, 來限制 rclone 能存取的資料夾以及讀寫權限,目標是只讓 rclone 可以讀我們的備份目標資料夾以及 docker 的執行權限,其他沒有要透過 rclone 備份的資料夾,該 user 無法存取 + +在 DSM 的控制台新增一個名為 `rclone` 的 user, 並將其加入 `docker` 這個 group,讓這個 user 可以不用透過 sudo 執行 docker (如何在 Synology 上建立 docker group 可以參考我之前寫的這篇[如何在 Synology NAS 使用 non-root user 執行 Docker command](/posts/run-docker-command-without-sudo-on-synology-nas)) + +資料夾權限、應用程式權限預設全部禁止存取,之後根據個人需求允許個別的資料夾權限就好 + +### 新增 DSM 排程任務 +接著在 DSM 控制台的「任務排程表 (Task Scheduler)」建立一個任務 + +使用者設定 rclone +![dsm-task-1](dsm-task-1.png) + + +指令欄位輸入 docker-compose up 指令來執行我們上面步驟寫好的 yaml,範例如下: + +```sh +docker-compose -f /path/to/your/docker-compose.yml up +``` + +![dsm-task-2](dsm-task-2.png) + + +設定好排程時間後就大功告成了,現在你的 NAS 已經實現了一個端對端加密的雲端異地備份服務 From 4cfc3641a4c27abaff4c779e14fc7903f4fc798a Mon Sep 17 00:00:00 2001 From: Jay Lin Date: Sun, 23 Nov 2025 14:08:07 +0000 Subject: [PATCH 2/2] fix hugo version to v0.124.1 in deploy workflow --- .github/workflows/deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index e39af0b..61cd0b7 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -27,7 +27,7 @@ jobs: uses: peaceiris/actions-hugo@v3 with: # The Hugo version to download (if necessary) and use. Example: 0.58.2 - hugo-version: 'latest' # optional, default is latest + hugo-version: '0.124.1' # optional, default is latest # Download (if necessary) and use Hugo extended version. Example: true extended: true # optional, default is false