GitBucketのオールインワンのバックアップ機能を提供します。
この以下のデータの定期的なバックアップを実行します。
- データベース
- ユーザリポジトリ
- Wikiリポジトリ
- issue及びリリースページの添付ファイル
- アバターイメージ
また、バックアップの成功もしくは失敗時にメール通知を行います。
本プラグインを使用するにはGITBUCKET_HOME/backup.conf
を以下のように設定します。
# バックアップタイミング(必須)
# 詳細は http://www.quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/crontrigger.html と
# https://github.com/enragedginger/akka-quartz-scheduler/blob/master/README.md を参照してください。
# この例では毎日午前0時にバックアップを実行します
# また、タイムゾーンは明示しないとUTCとなる為、Asia/Tokyoを明示的に指定します
akka {
quartz {
schedules {
Backup {
expression = "0 0 0 * * ?"
timezone = "Asia/Tokyo"
}
}
}
}
backup {
# バックアップアーカイブの保存先(オプション)
# 指定されなかった場合、 GITBUCKET_HOME に保存されます
archive-destination = """/path/to/archive-dest-dir"""
# バックアップアーカイブを保持する最大数(0もしくは負数の場合は無限に保持しようとします)(オプション)
# 指定されなかった場合、無限に保持します
archive-limit = 10
# バックアップに成功した場合、通知メールを送信します(オプション、デフォルトでfalse)
notify-on-success = true
# バックアップに失敗した場合、通知メールを送信します(オプション、デフォルトでfalse)
notify-on-failure = true
# 通知メールの送信先(オプション)
notify-dest = ["jyuch@localhost"]
# バックアップ処理のタイムアウト値(分)(オプション、デフォルトで30分)
timeout = 60
# バックアップをアップロードするS3互換のオブジェクトストレージ(オプション)
s3 {
# エンドポイントURL
endpoint = "http://localhost:9000"
# リージョン
region = "US_EAST_1"
# アクセスキー
access-key = "access-key"
# セキュリティキー
secret-key = "secret-key"
# バックアップを格納するバケット名
bucket = "gitbucket"
# バケット内にアーカイブを保持する最大数(0もしくは負数の場合は無限に保持しようとします)(オプション)
# 指定されなかった場合、無限に保持します
# 1.3.0以降
archive-limit = 10
}
}
また、メール通知を使用する場合はGitBucketのSMTP設定を設定しておく必要があります。
通知メールのテストメールを送信するには管理者権限でhttp://localhost:8080/api/v3/backup/mail-test
にHTTP POSTを送信します。
バックアップを即時実行するには管理者権限でhttp://localhost:8080/api/v3/backup/execute
にHTTP POSTを送信します。
- 一度GitBucketを実行します。
data
及びrepositories
をバックアップアーカイブからGITBUCKET_HOME
にコピーします。System administration
->Data export/import
よりgitbucket.sql
をインポートします。- 他のプラグインを再設定します。
また、PostgreSQLを使用している場合、以下のSQLを実行してシーケンスの値を設定する必要があります。
SELECT setval('label_label_id_seq', (select max(label_id) + 1 from label));
SELECT setval('access_token_access_token_id_seq', (select max(access_token_id) + 1 from access_token));
SELECT setval('commit_comment_comment_id_seq', (select max(comment_id) + 1 from commit_comment));
SELECT setval('commit_status_commit_status_id_seq', (select max(commit_status_id) + 1 from commit_status));
SELECT setval('milestone_milestone_id_seq', (select max(milestone_id) + 1 from milestone));
SELECT setval('issue_comment_comment_id_seq', (select max(comment_id) + 1 from issue_comment));
SELECT setval('ssh_key_ssh_key_id_seq', (select max(ssh_key_id) + 1 from ssh_key));
SELECT setval('priority_priority_id_seq', (select max(priority_id) + 1 from priority));
SELECT setval('release_asset_release_asset_id_seq', (select max(release_asset_id) + 1 from release_asset));
-- GitBucket 4.33.0 以前の場合
SELECT setval('activity_activity_id_seq', (select max(activity_id) + 1 from activity));
詳細については、 External database configurationをご覧ください。
プラグインバージョン | GitBucketバージョン |
---|---|
1.6.0 | 4.39 |
1.5.0 | 4.38 |
1.4.0 | 4.34 - 4.37 |
1.3.0 | 4.34 - 4.36 |
1.2.3 | 4.34 - 4.36 |
1.2.2 | 4.32 - 4.33 |
1.2.1 | 4.29 - 4.31 |
1.2.0 | 4.29 |
1.1.0 | 4.28 |
1.0.0 | 4.27 |
1.0.0-RC1 | 4.27 |