Simple solution to make encrypted with ccrypt PostgreSQL backups and storing on Google Drive API
Switch branches/tags
Nothing to show
Clone or download
Latest commit c5a2118 Dec 9, 2017
Permalink
Failed to load latest commit information.
lib BUMP version Oct 9, 2017
spec add basic features Oct 9, 2017
.gitignore add basic features Oct 9, 2017
.rspec add dependencies Oct 6, 2017
.rubocop.yml add dependencies Oct 6, 2017
Gemfile add dependencies Oct 6, 2017
LICENSE.txt init pg_drive_backup Oct 6, 2017
README.md fix Oct 9, 2017
Rakefile add dependencies Oct 6, 2017
pg_drive_backup.gemspec fix gemspec Oct 9, 2017

README.md

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.