This contains the scripts for backing up and restoring a Postgres database using gpg to encrypt it, and AWS S3 for storage.
To create a database backup, supply the required environment variables and execute the docker image.
docker run --rm -it \ -e PGHOST=localhost \ -e PGPORT=5432 \ -e PGUSER=postgres \ -e PGPASSWORD=s3cr3t_p4ssw0rd \ -e S3_BUCKET=backups.example.com \ -e GPG_PASSPHRASE=p4ssw0rd \ howgood/backup-db:latest
To download and decrypt a database backup, supply the required environment variables again, and execute the docker image with the restore script as the command.
docker run --rm -it \
-e PGHOST=localhost \
-e PGPORT=5432 \
-e PGUSER=postgres \
-e PGPASSWORD=s3cr3t_p4ssw0rd \
-e S3_BUCKET=backups.example.com \
-e GPG_PASSPHRASE=p4ssw0rd \
-v "$(pwd):/backup/" \
howgood/backup-db:latest \
/usr/local/bin/download-backup.sh