備份與還原
在系統設定 → 備份設定。備份工作有自己的 Cron 排程,與任務排程無關。
備份內容
- Walis 資料庫,透過
VACUUM INTO——是一致的副本,不是對執行中資料庫做檔案複製。 - 建置產出檔案。
- 你列出的額外絕對路徑,一行一個。目錄整個打包,符號連結會跳過。
- 選用的 PostgreSQL,透過
pg_dump。
加密
AES-256-CBC 搭配 PBKDF2-SHA256,寫成 OpenSSL 的 Salted__ 容器格式——所以還原不需要 Walis。只要有通關密語,openssl enc -d 就夠了。
只要有遠端目的地,通關密語就是必填,沒填的話畫面不讓你存。備份內含密碼雜湊與已儲存的憑證,不能以明文離開這台機器。
目的地
| 類型 | 需要的欄位 |
|---|---|
| 本機路徑 | 一個目錄。 |
| S3 相容 | Bucket、區域、Endpoint(AWS 可留空)、Access Key、Secret Key。 |
| Dropbox | Client ID、Client Secret、Refresh Token。 |
| Google Drive | Client ID、Client Secret、Refresh Token、資料夾 ID。 |
| OneDrive | Client ID、Client Secret、Refresh Token。 |
全部在程序內實作——SigV4 由 Walis 自己簽。不會去呼叫 aws、rclone 之類的外部程式,所以沒有額外的執行檔要裝、要跟版本。
保留規則逐目的地套用同一套設定。金鑰與通關密語讀回來是 ********,原樣送回代表「不要動」,所以你可以編輯目的地而不必重打憑證。
還原
還原會清空目前所有資料再寫回備份內容,無法復原。
- 備份與資料庫種類無關,所以在 SQLite 上取的備份可以還原到 PostgreSQL、MySQL 或 SQL Server。 這也是從單節點搬到多節點的正規路徑。
- 產出檔案是否一併還原可選。
- 有一個強制開關可在建置執行中還原。別用:執行中的建置事後寫回結果時會找不到自己的紀錄。等它跑完。
驗證
沒還原過的備份只是一個假設。通關密語是單一失效點——弄丟就救不回來,這是設計如此。把它存在不是被備份那台機器的地方。