Skip to content

A simple Node app to automatically backup PostgreSQL databases to an S3 bucket

Notifications You must be signed in to change notification settings

LedgerInvesting/postgres-s3-backups

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Postgres S3 backups

A simple NodeJS application to backup your PostgreSQL database to S3 via a cron.

Deploy on Railway

Configuration

  • AWS_ACCESS_KEY_ID - AWS access key ID.

  • AWS_SECRET_ACCESS_KEY - AWS secret access key, sometimes also called an application key.

  • AWS_S3_BUCKET - The name of the bucket that the access key ID and secret access key are authorized to access.

  • AWS_S3_REGION - The name of the region your bucket is located in, set to auto if unknown.

  • BACKUP_DATABASE_URL - The connection string of the database to backup.

  • BACKUP_CRON_SCHEDULE - The cron schedule to run the backup on. Example: 0 5 * * *

  • AWS_S3_ENDPOINT - The S3 custom endpoint you want to use. Applicable for 3-rd party S3 services such as Cloudflare R2 or Backblaze R2.

  • AWS_S3_FORCE_PATH_STYLE - Use path style for the endpoint instead of the default subdomain style, useful for MinIO. Default false

  • RUN_ON_STARTUP - Run a backup on startup of this application then proceed with making backups on the set schedule.

  • BACKUP_FILE_PREFIX - Add a prefix to the file name.

  • BUCKET_SUBFOLDER - Define a subfolder to place the backup files in.

  • SINGLE_SHOT_MODE - Run a single backup on start and exit when completed. Useful with the platform's native CRON schedular.

  • SUPPORT_OBJECT_LOCK - Enables support for buckets with object lock by providing an MD5 hash with the backup file.

  • BACKUP_OPTIONS - Add any valid pg_dump option, supported pg_dump options can be found here. Example: --exclude-table=pattern

About

A simple Node app to automatically backup PostgreSQL databases to an S3 bucket

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 91.2%
  • Dockerfile 8.8%