You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

2.4 KiB

postgres-backup-s3

Backup PostgresSQL to S3 (supports periodic backups)

Usage

Docker:

$ docker run -e S3_ACCESS_KEY_ID=key -e S3_SECRET_ACCESS_KEY=secret -e S3_BUCKET=my-bucket -e S3_PREFIX=backup -e POSTGRES_DATABASE=dbname -e POSTGRES_USER=user -e POSTGRES_PASSWORD=password -e POSTGRES_HOST=localhost schickling/postgres-backup-s3

Docker Compose:

postgres:
  image: postgres
  environment:
    POSTGRES_USER: user
    POSTGRES_PASSWORD: password

pgbackups3:
  image: schickling/postgres-backup-s3
  links:
    - postgres
  environment:
    SCHEDULE: '@daily'
    S3_REGION: region
    S3_ACCESS_KEY_ID: key
    S3_SECRET_ACCESS_KEY: secret
    S3_BUCKET: my-bucket
    S3_PREFIX: backup
    POSTGRES_DATABASES: dbname
    POSTGRES_USER: user
    POSTGRES_PASSWORD: password
    POSTGRES_EXTRA_OPTS: '--schema=public --blobs'

Environment variables

  • POSTGRES_EXTRA_OPTS pg_dump options (default: '')
  • POSTGRES_DATABASES list of databases you want to backup required
  • POSTGRES_HOST the postgres host required
  • POSTGRES_PORT the postgres port (default: 5432)
  • POSTGRES_USER the postgres user required
  • POSTGRES_PASSWORD the mysql password required
  • POSTGRES_PASSWORD_FILE path to file containing the postgres password; alternative to POSTGRES_PASSWORD
  • S3_ACCESS_KEY_ID your AWS access key required
  • S3_ACCESS_KEY_ID_FILE path to file containing your AWS access key; alternative to S3_ACCESS_KEY_ID
  • S3_SECRET_ACCESS_KEY your AWS secret key required
  • S3_SECRET_ACCESS_KEY_FILE path to file containing your AWS secret key; alternative to S3_SECRET_ACCESS_KEYs
  • S3_BUCKET your AWS S3 bucket path required
  • S3_PREFIX path prefix in your bucket (default: 'backup')
  • S3_FILENAME a consistent filename to overwrite with your backup. If not set will use a timestamp.
  • S3_REGION the AWS S3 bucket region (default: us-west-1)
  • S3_ENDPOINT the AWS Endpoint URL, for S3 Compliant APIs such as minio (default: none)
  • S3_S3V4 set to yes to enable AWS Signature Version 4, required for minio servers (default: no)
  • SCHEDULE backup schedule time, see explainatons below

Automatic Periodic Backups

You can additionally set the SCHEDULE environment variable like -e SCHEDULE="@daily" to run the backup automatically.

More information about the scheduling can be found here.