Rclone
簡介¶
Rclone 是一個命令列程式,用於將檔案同步到各種雲端儲存服務,包括 Nextcloud、Google Drive、S3 等。它支援多種協定,尤其擅長透過 WebDAV 與私有雲整合。在 Self-host 自架 Obsidian 的架構中,Rclone 常被用作「同步旁車」容器,將雲端上的筆記拉取到本地,供其他服務(如 Quartz)讀取。
安裝與設定¶
Rclone 提供原生 ARM64 的 Docker 映像檔,可直接執行:
docker run --rm rclone/rclone obscure "您的密碼"
此指令會將明文密碼加密成一串亂碼,用於後續設定檔。Rclone 的設定檔(rclone.conf)可定義遠端儲存,例如 Nextcloud WebDAV:
[nextcloud]
type = webdav
url = http://nextcloud-app/remote.php/webdav/
vendor = nextcloud
user = <帳號>
pass = <加密密碼>
使用範例¶
在 Oracle 私有雲 環境中,Rclone 常用於單向同步。以下指令每 60 秒執行一次,將 Nextcloud 上的 ObsidianVault 同步到本地 /vault:
rclone sync nextcloud:ObsidianVault /vault -v
配合 Docker Compose,可以將 Rclone 包裝為 sidecar 容器,與 Quartz 等服務共用網路與磁碟:
rclone-sync:
image: rclone/rclone:latest
container_name: quartz_rclone_sync
networks: [cf_network]
volumes:
- /opt/docker/quartz/config:/config/rclone:ro
- /opt/docker/quartz/vault:/vault
command: sh -c "while true; do rclone sync nextcloud:ObsidianVault /vault -v; sleep 60; done"
在 Docker 中使用¶
Rclone 官方映像檔(rclone/rclone)支援多種架構,非常適合部署在 docker 容器中。與 cloudflare-tunnel 或 cloudflare-pages 搭配時,可將同步後的靜態檔案交由雲端服務建置,達成零維護架構。
安全性考量¶
- 勿使用主要密碼,應建立 Nextcloud 應用程式密碼,並用
rclone obscure加密。 - 盡量透過 Docker 內部網路(如
cf_network)連線 WebDAV,避免暴露外網。 - 同步目錄掛載為唯讀,避免污染雲端資料。