設定バックアップと定期バックアップ
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 はログインセッションからのみ利用でき、API トークン では呼び出せません。
定期バックアップ
「バックアップと移行」タブの下部にある「定期バックアップ」カードでは、右上のスイッチで有効にするかを切り替えます。対応するモジュール ID は backup で、トークンの権限スコープは backup:read と backup:write です。
| 設定 | 説明 |
|---|---|
| 実行スケジュール | 5 フィールドの cron 式。デフォルトは 0 3 * * *(毎日 03:00)で、@daily、@weekly などの記述子も使えます |
| 保持数 | 保存先ごとに最新の N 件を保持します。範囲は 1〜365、デフォルトは 7 |
| 暗号化パスフレーズ | 空欄で暗号化しません。設定すると .zip.enc のバックアップが生成されます。すでにパスフレーズが設定されている場合は、空欄にすると変更されません |
| ローカルディレクトリ | スイッチ。デフォルトはオン。設定ディレクトリ配下の backups フォルダーに書き込みます |
「設定を保存」を押すとスケジュールが反映され、「今すぐバックアップ」で即座に 1 回実行できます。カードには、前回の実行日時、実行方法(手動または定期)、次回の実行日時、保存先ごとの成功または失敗の結果、整理された古いバックアップの件数が表示されます。ローカルのバックアップファイルはカードに一覧表示され、ダウンロードできます。
バックアップの保存先
ローカルディレクトリに加えて、複数のリモート保存先を追加できます。各保存先は、「ストレージマウント」にある 1 つのマウントポイント(ローカルディレクトリ、リモート WebDAV、SMB 共有)に書き込みます。
| フィールド | 説明 |
|---|---|
| 名前 | 必須 |
| ストレージのマウント | 「ストレージマウント」にある既存のマウントポイントを選びます。読み取り専用または無効のマウントポイントは選べません |
| ディレクトリ | マウントポイント内のサブディレクトリ。空欄でルート |
| 有効化 | スイッチ |
まだマウントポイントがない場合は、先に「ストレージマウント」で追加してください。保存先を削除しても、すでに書き込まれたバックアップは削除されません。
実行の流れ
- 設定ディレクトリをアーカイブにまとめます。パスフレーズが設定されていれば暗号化します。
- ローカルディレクトリ(有効な場合)と、有効なすべての保存先に書き込みます。すべての場所で同じファイル名を使います。
- 書き込みに成功したら、保持数に従って、その場所にある古いバックアップを整理します。整理の対象は、ファイル名が
gately-backup-で始まり、拡張子が.zipまたは.zip.encのファイルだけで、それ以外のファイルはそのまま残されます。 - 結果をまとめ、モジュールのログに書き込み、通知イベントを発行します。
ローカルディレクトリも有効な保存先も有効になっていない場合、バックアップは失敗として記録されます。バックアップは同時に 1 つだけ実行されます。
通知イベント
| イベント | レベル | 発生条件 |
|---|---|---|
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 とバックアップファイルが同じマシンにある場合、パスフレーズによる保護の価値は限られます。暗号化したバックアップは別のデバイスのマウントポイントに書き込み、パスフレーズは別途控えておくことをおすすめします。