gem
Installation & CLI
One gem, three commands.
Requirements
§ Ruby version floor; pg_dump on the machine that runs backups;
storage SDKs are opt-in (aws-sdk-s3 for the :s3 store).
Install
$ bundle add boring-backup aws-sdk-s3bb install
§ The interactive setup: detects Rails + Solid Queue, asks for bucket and region, writes the
initializer, adds the recurring job under production: only,
offers a bin/bb binstub. Credentials stay out of the committed initializer
— they come from the environment or an IAM role.
$ bundle exec bb installbb doctor
§ Run it where the credentials live: checks config, database connectivity, store reachability, and tells you what it skipped. The thing to run before trusting the 3am job.
$ bundle exec bb doctor
Boring Backup doctor · production
✓ pg_dump /usr/lib/postgresql/17/bin/pg_dump
✓ versions pg_dump 17, server 17
✓ database acme_production
✓ stores 1 registered
✓ s3 s3://acme-backups eu-central-1
✓ schedule config/recurring.yml
Everything checks out.bb backup
§ Streams pg_dump to every configured store without touching disk;
exits non-zero on failure so cron and CI notice.
Running on a schedule
§ Solid Queue recurring.yml (what bb install writes), a custom
job invoking BoringBackup::Commands::Backup.execute for Sidekiq/GoodJob,
or plain cron.
# config/recurring.yml
production:
boring_backup:
class: BoringBackup::BackupJob
schedule: every day at 3am