Skip to content
/ hkpg Public

Automated Archiving of Heroku Postgres Backups to S3 Written in Go

License

Notifications You must be signed in to change notification settings

srt32/hkpg

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

hkpg

Automated Archiving of Heroku Postgres Backups Written in Go

This package contains a single command that can be run manually or via the Heroku Scheduler to pull down the most recent Heroku Postgres backup from another Heroku application and upload it to a specified S3 Bucket.

This work is inspired by similar work done via bash.

Deploy

Configuring Heroku

  • Create a new application on Heroku via heroku create
  • Clone the repo via git clone [email protected]:srt32/hkpg.git
  • Deploy the repo via git push heroku master
  • Set up environment variables as described below
  • Setup Heroku Scheduler to run bin/backup on whichever interval you choose

Environment Variables

The below environment variables are required unless otherwise specified:

  • HKPG_HEROKU_AUTH_TOKEN="copy-from-heroku-dashboard"
  • HKPG_HEROKU_APP_NAME="my-app-name"
  • S3_BUCKET_NAME="your-bucket-name"
  • AWS_ACCESS_KEY_ID="key-id"
  • AWS_SECRET_KEY="secret-id"
  • AWS_REGION="us-east-1" (optional, defaults to us-west-1)

Configuring S3 Bucket Permissions

You will need an IAM user with "s3:PutObject" and "s3:PutObjectAcl" permissions on the root:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1504540641000",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": [
                "arn:aws:s3:::your-bucket-name/*"
            ]
        }
    ]
}

About

Automated Archiving of Heroku Postgres Backups to S3 Written in Go

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages