【Databasus】PostgreSQLの反転術式
Databasus
原本: Free, open source and self-hosted solution for automated PostgreSQL backups. With multiple storage options and notifications
翻訳: 無料・オープンソースで、セルフホスティング可能な自動 PostgreSQL バックアップのソリューション。複数のストレージオプションと通知機能を備える。
databasus/databasusはPostgreSQL用自動バックアップツールで、以下の機能を揃えています。
1. バックアップ予約(Scheduled Backups)
特定の時間を指定してバックアップを実行でき、バランスの取れた圧縮方式により4〜8倍のストレージ節約が可能です。
2. 複数のストレージ対応(Multiple Storage Destinations)
ローカルストレージのほか、S3、R2、Google Driveなどのクラウドストレージにも対応しています。
セキュリティオプションもストレージに応じて提供します。
3. スマート通知
Email, Telegram, Slack, Discord など、いろんなチャネルを通じて成功・失敗の通知をサポートします。
詳細は Postgresus feature ドキュメントを参照してください。
Postgresus インストール
自動インストールスクリプトも提供されていますが、この記事ではDocker Composeを使用してインストールしました。
services:
my-postgres:
container_name: my-postgres
image: postgres:18
# more options
my-databasus:
container_name: my-databasus
image: databasus/databasus:latest
ports:
- "4005:4005" # WebUIにアクセスするためのポートー
volumes:
- ./databasus/data:/databasus-data # バックアップデータのヴォリュームマウント
depends_on:
- my-postgres # PostgreSQL 依存性
今回のインストールでは PostgreSQL 18を使用しました。
PostgreSQLコンテナを宣言する際、WebUIにアクセスするためのポートとバックアップデータのボリュームマウントを設定します。
Databasus 初期設定
1. Databasus WebUI アクセス
WebUIにアクセスするため、ブラウザでhttp://yourhost:4005/にアクセスします。

Sign up admin
ブラウザ画面の案内に従ってadminアカウントを生成します。
[注意]: ここにで確認できるpasswordは避けてください。
2. Workspace 生成

Create workspace
adminアカウント設定直後に表示される Create workspace ボタンをクリックすれば Workspaceを生成できます。
DatabasusにおけるWorkspaceとは、データベース、ストレージ、通知設定などを管理する単位です。
3. バックアップ設定

つぎに、バックアップする対象(PostgreSQL)を設定します。先ほどDocker Composeで宣言したPostgreSQLコンテナを指定します。
設定後にはバックアップ作業専用のread-onlyユーザーの生成可否を尋ねられます。これは選択事項であり、この記事ではスキップします。

Add backup options
バックアップ対象の設定が終わったら、バックアップ関連の設定を進めます。私は次のように設定しました。
- 毎日午前4時に実行
- バックアップ失敗時は3回再試行
- 復元処理時は CPUを1つ使用
- バックアップは1ヶ月間保持
- ローカルストレージ使用(セキュリティオプションはオフ)
- バックアップ成否を通知
4. 通知設定

Add notifier
最後に、Notifierを設定します。私はDiscord Webhookを通じて通知を受け取るように設定しました(そのほかにもSlack, Telegramなど、多様なベンダーを使用できます)。


Postgres backups
設定が完了すると、上記のようにバックアップが一度実行され、バックアップリストに追加されます。
削除、復元、ダウンロードを簡単に実行でき、Make backup right nowボタンをクリックすればバックアップをすぐに実行できます。
結果
$ docker stats my-databasus
CONTAINER ID NAME CPU % MEM USAGE / LIMIT
............ my-databasus 0.00% 77.63MiB / ...
idle状態でのCPU/メモリの使用料です。Databasusはかなり軽量なようです。
├── docker-compose.yml
└── databasus
└── data
├── backups
│ └── ...
├── pgdata
├── secret.key
└── temp
バックアップファイルも上記のように正常に確認できます。
まとめ
もうデータは安全です!
Discussion