Skip to content
此頁面由 AI 翻譯,內容可能有疏漏。歡迎到 GitHub 協助改進。

設定備份與排程備份 ​

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 共用):

欄位說明
名稱必填
儲存掛載選擇「儲存掛載」中既有的掛載點,唯讀或已停用的掛載點無法選取
目錄掛載點內的子目錄,留空為根目錄
啟用開關

還沒有掛載點時,先到「儲存掛載」新增。刪除目的地不會刪除已經寫入的備份。

執行流程 ​

  1. 打包設定目錄;設定了密碼則加密。
  2. 寫入本機目錄(如已開啟)和每個已啟用的目的地,所有位置使用同一個檔名。
  3. 寫入成功後,依保留數量清理該位置中較舊的備份。清理只處理檔名以 gately-backup- 開頭、副檔名為 .zip 或 .zip.enc 的檔案,其他檔案保持原樣。
  4. 彙整結果,寫入模組日誌並發布通知事件。

沒有啟用本機目錄也沒有已啟用的目的地時,備份記為失敗。同一時刻只執行一次備份。

通知事件 ​

事件層級觸發條件
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 與備份檔案放在同一台機器上時,密碼保護的價值有限。建議把加密備份寫入另一台裝置的掛載點,並另行記錄密碼。

以 Apache-2.0 授權條款開源發布。