Simple solution to make encrypted with ccrypt PostgreSQL backups and storing on Google Drive API
MIT License
Simple solution to make encrypted with ccrypt PostgreSQL backups and storing on Google Drive API
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
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
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
Bug reports and pull requests are welcome on GitHub at https://github.com/kirillshevch/pg_drive_backup.
The gem is available as open source under the terms of the MIT License.