/pg_drive_backup

Simple solution to make encrypted with ccrypt PostgreSQL backups and storing on Google Drive API

Primary LanguageRubyMIT LicenseMIT

PgDriveBackup

Simple solution to make encrypted with ccrypt PostgreSQL backups and storing on Google Drive API

Installation

Add this line to your application's Gemfile:

gem 'pg_drive_backup'

And then execute:

$ bundle

Or install it yourself as:

$ gem install pg_drive_backup

Usage

Quick start

Required database config credentials:

config/initializers/pg_drive_backup.rb

PgDriveBackup::Settings.configure do |config|
  config.database.name = 'database_name'
  config.database.user = ENV.fetch('PG_USERNAME')
  config.database.password = ENV.fetch('PG_PASSWORD')
end

Add your google drive authorization JSON file to config/drive.json

Generate your encryption key, for example:

openssl passwd -1 "somepassword"

And put it into config/key.txt

Run it:

PgDriveBackup::Run.call

It uploads your encrypted backup with name like 20171009083306693-dump.sql.cpt

To decrypt:

ccrypt -k config/key.txt -d 20171009083306693-dump.sql.cpt

Tunning

Config options:

PgDriveBackup::Settings.configure do |config|
  config.credentials_path = 'config/drive.json'       # default: 'config/drive.json'
  config.key_path = 'config/key.txt'                  # default: 'config/key.txt'
  config.prefix = '-dump'                             # default: '-dump'

  config.database.name = 'database_name'              # default: nil
  config.database.user = ENV.fetch('PG_USERNAME')     # default: nil
  config.database.password = ENV.fetch('PG_PASSWORD') # default: nil
  config.database.host = 'localhost'                  # default: 'localhost'
end

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/kirillshevch/pg_drive_backup.

License

The gem is available as open source under the terms of the MIT License.