設定備份與排程備份
Gately 的全部設定都儲存在設定目錄下的 *.json 檔案中。備份功能把這些檔案打包,支援手動下載、排程寫入多個位置,以及用備份覆寫還原。管理介面位於側邊欄「系統」分組 → 「設定」→「備份與遷移」分頁。
備份內容
備份包是一個 zip 檔案,包含設定目錄根部的全部 *.json(帳號、各模組規則、憑證、權杖雜湊等)。其中有密碼雜湊、金鑰、API 權杖雜湊與憑證私鑰,需要妥善保存。執行日誌(logs/)與操作稽核日誌(audit.log)不在備份中。
檔名格式為 gately-backup-YYYYMMDD-HHMMSS.zip,加密備份為 gately-backup-YYYYMMDD-HHMMSS.zip.enc。
手動備份與還原
下載備份
「備份 Gately 設定」卡片的「下載備份」按鈕會下載目前設定的 zip。手動下載的備份不加密。
還原
在「還原設定」卡片選擇備份檔案後點擊「還原」,在確認框中輸入「還原」兩個字。
- 還原會覆寫目前全部設定,上傳大小上限 64 MB。
- 覆寫前,現有設定先複製到設定目錄下的
backup-時間資料夾(時間格式YYYYMMDD-HHMMSS),還原成功後介面會提示該路徑。 - 還原後 Gately 自動重新啟動。
- 備份中必須包含帳號設定,缺失時拒絕還原。
- 備份包只接受位於 zip 根目錄、非隱藏、內容為合法 JSON 的
*.json,其餘項目會被忽略。 - 選擇
.enc檔案時介面會出現「備份密碼」輸入框,填寫建立該備份時設定的密碼。密碼錯誤或檔案損毀時還原失敗。
備份下載與還原介面只接受登入工作階段,API 權杖 無法呼叫。
排程備份
「備份與遷移」分頁下方的「排程備份」卡片,右上角開關控制是否啟用。對應模組 ID 為 backup,權杖權限域為 backup:read 與 backup:write。
| 設定 | 說明 |
|---|---|
| 執行排程 | 5 段 cron 運算式,預設 0 3 * * *(每天 03:00),也可用 @daily、@weekly 等描述符 |
| 保留數量 | 每個目的地各保留最新的 N 份,範圍 1 到 365,預設 7 |
| 加密密碼 | 留空不加密;設定後產生 .zip.enc 備份。已設定密碼時輸入框留空表示維持不變 |
| 本機目錄 | 開關,預設開啟。寫入設定目錄下的 backups 資料夾 |
點擊「儲存設定」使排程生效,「立即備份」立即執行一次。卡片顯示最近一次的執行時間、觸發方式(手動或排程)、下次執行時間,以及每個目的地的成功或失敗結果與清理的舊備份數量。本機備份檔案在卡片中列出,可下載。
備份目的地
除本機目錄外,可以新增多個遠端目的地,每個目的地寫入「儲存掛載」中的一個掛載點(本機目錄、遠端 WebDAV 或 SMB 共用):
| 欄位 | 說明 |
|---|---|
| 名稱 | 必填 |
| 儲存掛載 | 選擇「儲存掛載」中既有的掛載點,唯讀或已停用的掛載點無法選取 |
| 目錄 | 掛載點內的子目錄,留空為根目錄 |
| 啟用 | 開關 |
還沒有掛載點時,先到「儲存掛載」新增。刪除目的地不會刪除已經寫入的備份。
執行流程
- 打包設定目錄;設定了密碼則加密。
- 寫入本機目錄(如已開啟)和每個已啟用的目的地,所有位置使用同一個檔名。
- 寫入成功後,依保留數量清理該位置中較舊的備份。清理只處理檔名以
gately-backup-開頭、副檔名為.zip或.zip.enc的檔案,其他檔案保持原樣。 - 彙整結果,寫入模組日誌並發布通知事件。
沒有啟用本機目錄也沒有已啟用的目的地時,備份記為失敗。同一時刻只執行一次備份。
通知事件
| 事件 | 層級 | 觸發條件 |
|---|---|---|
backup.done | 資訊 | 所有位置寫入成功,訊息中列出檔名與各位置結果 |
backup.failed | 錯誤 | 打包失敗或任一位置寫入失敗,訊息中列出每個位置的結果 |
在 通知中心 中建立訂閱 backup.* 的規則,即可透過 Telegram、電子郵件等管道收到備份結果。
加密
設定密碼後,備份依以下方式加密:
- 金鑰衍生:scrypt(N=32768,r=8,p=1),輸出 32 位元組金鑰,鹽為 16 位元組隨機數。
- 加密:AES-256-GCM,nonce 為 12 位元組隨機數。
- 檔案格式:魔數
GATELYBK1、鹽、nonce、密文依序串接,魔數同時作為 GCM 的附加驗證資料。
密碼只儲存在設定目錄的 backup.json 中,遺失密碼後備份無法解密。
注意
backup.json 與備份檔案放在同一台機器上時,密碼保護的價值有限。建議把加密備份寫入另一台裝置的掛載點,並另行記錄密碼。