Skip to content
This repository has been archived by the owner on Mar 20, 2024. It is now read-only.

monobilisim/pgsql-backup

Repository files navigation

Contributors Forks Stargazers Issues GPL License

Readme in English Readme in Turkish

pgsql-backup

pgsql-backup is a tool for backing up PostgreSQL databases.

Table of Contents


Features

  • Backs up and encrypts all databases or a custom list of databases.
  • Supports local backups and cloud storage options like S3 or Minio.
  • Option to remove old local backups for efficient storage management.
  • Provides notifications through email for monitoring backups.

Usage

  1. Configure pgsql-backup by editing the config file (default is /etc/pgsql-backup.yml )

  2. Run the backup using the following command as the postgres user:

pgsql-backup

Backups will be created for each database based on the configuration. For local backups, ensure that you define a backup folder with appropriate permissions.


Dependencies

  • p7zip

Configuration

The configuration file is in YAML format. The available options are:

  • backupDestination - Local backup folder path
  • databases - List of database names to back up, if empty all databases are backed up
  • removeLocal - Remove old local backups if true
  • archivePass - Password to use for encrypting backups with 7z
  • s3 - S3 configuration for backups
  • minio - Minio configuration for backups
  • notify - Email and webhook url notification configuration
  • log - Logging configuration

See config/config.sample.yml for an example configuration file.


Building

To build pgsql-backup:

CGO_ENABLED=0 go build -ldflags '-extldflags "-static"'

License

pgsql-backup is GPL-3.0 licensed. See LICENSE file for details.