8000 GitHub - Musab520/pgbackup-sidecar
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Musab520/pgbackup-sidecar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pgbackup-sidecar

pgbackup-sidecar is a lightweight Docker sidecar container designed to automate regular backups of a PostgreSQL database using pg_dump. The container runs a cron job that periodically dumps the database and stores the backups to a backup directory of your choice and even optionally send logs to a webhook. Currently working on backing up to S3 and other versions of postgres and adding more advanced options for pg_dump.

Features

  • Automated PostgreSQL backups using pg_dump.
  • Configurable backup schedule with crontab.
  • Configurable rotation time
  • Optionally send logs to a webhook

Prerequisites

  • Docker
  • A running PostgreSQL container
  • Access to the PostgreSQL database

Getting Started

1. Running the Demo

Docker Pull And Run Commands

docker pull postgres:15
docker pull musab520/pgbackup-sidecar:latest
docker run -d \
  --name postgres \
  --platform linux/amd64 \
  -v $(pwd)/.data/postgres:/home/postgres/pgdata/data \
  --network=postgres_network \
  -p 127.0.0.1:15432:5432 \
  -e POSTGRES_PASSWORD=postgres \
  -e POSTGRES_DB=postgres \
  postgres:15

docker run -d \
  --name pgbackup \
  --platform linux/amd64 \
  -v $(pwd)/.data/dumps:/opt/dumps \
  --network=postgres_network \
  -e POSTGRES_PASSWORD=postgres \
  -e POSTGRES_DB=postgres \
  -e POSTGRES_USER=postgres \
  -e POSTGRES_HOST=postgres \
  -e POSTGRES_PORT=5432 \
  -e CRON_TIME="* * * * *" \
  -e ROTATION_TIME=180 \
  musab520/pgbackup-sidecar:latest

OR

Clone the Repository and use make and docker compose

git clone git@github.com:Musab520/pgbackup-sidecar.git
make sidecar-stack
make run-sidecar-stack
docker logs -f dev-pgbackup-1

2. Configure Environment Variables

Variable Description
POSTGRES_HOST Hostname of the PostgreSQL server.
POSTGRES_PORT Port number of the PostgreSQL server (default: 5432).
POSTGRES_USER Username for the PostgreSQL database.
POSTGRES_PASSWORD Password for the PostgreSQL user.
POSTGRES_DB Name of the PostgreSQL database to back up.
CRON_TIME Cron schedule string for backup frequency (e.g., "0 2 * * *" for daily at 2AM).
ROTATION_TIME Seconds in epoch for how the time interval the backups should be maintained (e.g., 86400 for 24 hours)
WEBHOOK_URL Sends a json body of title and description(logs) to a webhook provided (optional)
TITLE Sets the title for whats being sent with the Webhook URL (optional)
DISABLE disbales script (optional)

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0