- Notifications
You must be signed in to change notification settings - Fork0
dwongdev/postgresus
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Free, open source and self-hosted solution for automated PostgreSQL backups. With multiple storage options and notifications
Features •Installation •Usage •License •Contributing
- Flexible scheduling: hourly, daily, weekly, monthly
- Precise timing: run backups at specific times (e.g., 4 AM during low traffic)
- Smart compression: 4-8x space savings with balanced compression (~20% overhead)
🗄️Multiple Storage Destinations(view supported)
- Local storage: Keep backups on your VPS/server
- Cloud storage: S3, Cloudflare R2, Google Drive, NAS, Dropbox and more
- Secure: All data stays under your control
📱Smart Notifications(view supported)
- Multiple channels: Email, Telegram, Slack, Discord, webhooks
- Real-time updates: Success and failure notifications
- Team integration: Perfect for DevOps workflows
- Multiple versions: PostgreSQL 12, 13, 14, 15, 16, 17 and 18
- SSL support: Secure connections available
- Easy restoration: One-click restore from any backup
🔒Enterprise-grade security(docs)
- AES-256-GCM encryption: Enterprise-grade protection for backup files
- Zero-trust storage: Backups are encrypted and they are useless to attackers, so you can keep them in shared storages like S3, Azure Blob Storage, etc.
- Encryption for secrets: Any sensitive data is encrypted and never exposed, even in logs or error messages
- Read-only user: Postgresus uses by default a read-only user for backups and never stores anything that can change your data
👥Suitable for Teams(docs)
- Workspaces: Group databases, notifiers and storages for different projects or teams
- Access management: Control who can view or manage specific databases with role-based permissions
- Audit logs: Track all system activities and changes made by users
- User roles: Assign viewer, member, admin or owner roles within workspaces
- Designer-polished UI: Clean, intuitive interface crafted with attention to detail
- Dark & light themes: Choose the look that suits your workflow
- Mobile adaptive: Check your backups from anywhere on any device
Postgresus works seamlessly with both self-hosted PostgreSQL and cloud-managed databases:
- Cloud support: AWS RDS, Google Cloud SQL, Azure Database for PostgreSQL
- Self-hosted: Any PostgreSQL instance you manage yourself
- Why no PITR?: Cloud providers already offer native PITR, and external PITR backups cannot be restored to managed cloud databases — making them impractical for cloud-hosted PostgreSQL
- Practical granularity: Hourly and daily backups are sufficient for 99% of projects without the operational complexity of WAL archiving
- Docker-based: Easy deployment and management
- Privacy-first: All your data stays on your infrastructure
- Open source: Apache 2.0 licensed, inspect every line of code
📦 Installation(docs)
You have several ways to install Postgresus:
- Script (recommended)
- Simple Docker run
- Docker Compose setup
You have three ways to install Postgresus: automated script (recommended), simple Docker run, or Docker Compose setup.
The installation script will:
- ✅ Install Docker with Docker Compose (if not already installed)
- ✅ Set up Postgresus
- ✅ Configure automatic startup on system reboot
sudo apt-get install -y curl&& \sudo curl -sSL https://raw.githubusercontent.com/RostislavDugin/postgresus/refs/heads/main/install-postgresus.sh \| sudo bash
The easiest way to run Postgresus with embedded PostgreSQL:
docker run -d \ --name postgresus \ -p 4005:4005 \ -v ./postgresus-data:/postgresus-data \ --restart unless-stopped \ rostislavdugin/postgresus:latest
This single command will:
- ✅ Start Postgresus
- ✅ Store all data in
./postgresus-datadirectory - ✅ Automatically restart on system reboot
Create adocker-compose.yml file with the following configuration:
services:postgresus:container_name:postgresusimage:rostislavdugin/postgresus:latestports: -"4005:4005"volumes: -./postgresus-data:/postgresus-datarestart:unless-stopped
Then run:
docker compose up -d
For Kubernetes deployments, install directly from the OCI registry.
With ClusterIP + port-forward (development/testing):
helm install postgresus oci://ghcr.io/rostislavdugin/charts/postgresus \ -n postgresus --create-namespace
kubectl port-forward svc/postgresus-service 4005:4005 -n postgresus# Access at http://localhost:4005With LoadBalancer (cloud environments):
helm install postgresus oci://ghcr.io/rostislavdugin/charts/postgresus \ -n postgresus --create-namespace \ --set service.type=LoadBalancer
kubectl get svc postgresus-service -n postgresus# Access at http://<EXTERNAL-IP>:4005With Ingress (domain-based access):
helm install postgresus oci://ghcr.io/rostislavdugin/charts/postgresus \ -n postgresus --create-namespace \ --set ingress.enabled=true \ --set ingress.hosts[0].host=backup.example.com
For more options (NodePort, TLS, HTTPRoute for Gateway API), see theHelm chart README.
- Access the dashboard: Navigate to
http://localhost:4005 - Add first DB for backup: Click "New Database" and follow the setup wizard
- Configure schedule: Choose from hourly, daily, weekly or monthly intervals
- Set database connection: Enter your PostgreSQL credentials and connection details
- Choose storage: Select where to store your backups (local, S3, Google Drive, etc.)
- Add notifications (optional): Configure email, Telegram, Slack, or webhook notifications
- Save and start: Postgresus will validate settings and begin the backup schedule
🔑 Resetting Password(docs)
If you need to reset the password, you can use the built-in password reset command:
dockerexec -it postgresus ./main --new-password="YourNewSecurePassword123" --email="admin"
Replaceadmin with the actual email address of the user whose password you want to reset.
This project is licensed under the Apache 2.0 License - see theLICENSE file for details
Contributions are welcome! Readcontributing guide for more details, priorities and rules are specified there. If you want to contribute, but don't know what and how - message me on Telegram@rostislav_dugin
About
PostgreSQL backup tool
Resources
License
Code of conduct
Security policy
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Languages
- Go63.4%
- TypeScript34.8%
- Shell0.8%
- Dockerfile0.4%
- Batchfile0.3%
- Smarty0.1%
- Other0.2%