|
| 1 | +<div align="center"> |
| 2 | + <img src="assets/logo.svg" alt="Postgresus Logo" width="250"/> |
| 3 | + |
| 4 | + <h3>PostgreSQL backup and restore tool</h3> |
| 5 | + <p>Free, open source and self-hosted solution for automated PostgreSQL backups with multiple storage options and notifications</p> |
| 6 | + |
| 7 | + <p> |
| 8 | + <a href="#-features">Features</a> β’ |
| 9 | + <a href="#-installation">Installation</a> β’ |
| 10 | + <a href="#-usage">Usage</a> β’ |
| 11 | + <a href="#-license">License</a> β’ |
| 12 | + <a href="#-contributing">Contributing</a> |
| 13 | + </p> |
| 14 | + |
| 15 | + <img src="assets/dashboard.svg" alt="Postgresus Dashboard" width="800"/> |
| 16 | +</div> |
1 | 17 |
|
2 | | -# Installation |
| 18 | +--- |
3 | 19 |
|
4 | | -You have 2 ways how to run Postgresus: install via script or manually write docker-compose.yml config. |
| 20 | +## β¨ Features |
5 | 21 |
|
6 | | -**1) Install Postgresus via script (recommended, Linux only).** |
| 22 | +### π **Scheduled Backups** |
7 | 23 |
|
8 | | -It will: |
| 24 | +- **Flexible scheduling**: hourly, daily, weekly, monthly |
| 25 | +- **Precise timing**: run backups at specific times (e.g., 4 AM during low traffic) |
| 26 | +- **Smart compression**: 4-8x space savings with balanced compression (~20% overhead) |
9 | 27 |
|
10 | | -- install Docker with Docker Compose |
11 | | -- write docker-compose.yml config |
12 | | -- install cron job to start Postgresus on system reboot |
| 28 | +### ποΈ **Multiple Storage Destinations** |
13 | 29 |
|
14 | | -To install, run: |
| 30 | +- **Local storage**: Keep backups on your VPS/server |
| 31 | +- **Cloud storage**: S3, Google Drive, Dropbox, and more (coming soon) |
| 32 | +- **Secure**: All data stays under your control |
15 | 33 |
|
16 | | -``` |
| 34 | +### π± **Smart Notifications** |
| 35 | + |
| 36 | +- **Multiple channels**: Email, Telegram, Slack, webhooks (coming soon) |
| 37 | +- **Real-time updates**: Success and failure notifications |
| 38 | +- **Team integration**: Perfect for DevOps workflows |
| 39 | + |
| 40 | +### π **PostgreSQL Support** |
| 41 | + |
| 42 | +- **Multiple versions**: PostgreSQL 13, 14, 15, 16, and 17 |
| 43 | +- **SSL support**: Secure connections available |
| 44 | +- **Easy restoration**: One-click restore from any backup |
| 45 | + |
| 46 | +### π³ **Self-Hosted & Secure** |
| 47 | + |
| 48 | +- **Docker-based**: Easy deployment and management |
| 49 | +- **Privacy-first**: All your data stays on your infrastructure |
| 50 | +- **Open source**: MIT licensed, inspect every line of code |
| 51 | + |
| 52 | +--- |
| 53 | + |
| 54 | +## π¦ Installation |
| 55 | + |
| 56 | +You have two ways to install Postgresus: via automated script (recommended) or manual Docker Compose setup. |
| 57 | + |
| 58 | +### Option 1: Automated Installation Script (Recommended, Linux only) |
| 59 | + |
| 60 | +The installation script will: |
| 61 | + |
| 62 | +- β
Install Docker with Docker Compose (if not already installed) |
| 63 | +- β
Create optimized `docker-compose.yml` configuration |
| 64 | +- β
Set up automatic startup on system reboot via cron |
| 65 | + |
| 66 | +```bash |
17 | 67 | apt-get install -y curl && \ |
18 | 68 | curl -sSL https://raw.githubusercontent.com/RostislavDugin/postgresus/refs/heads/main/install-postgresus.sh | bash |
19 | 69 | ``` |
20 | 70 |
|
21 | | -**2) Write docker-compose.yml config manually:** |
| 71 | +### Option 2: Manual Docker Compose Setup |
22 | 72 |
|
23 | | -``` |
| 73 | +Create a `docker-compose.yml` file with the following configuration: |
| 74 | + |
| 75 | +```yaml |
24 | 76 | version: "3" |
25 | 77 |
|
26 | 78 | services: |
@@ -56,6 +108,32 @@ services: |
56 | 108 | restart: unless-stopped |
57 | 109 | ``` |
58 | 110 |
|
59 | | -# Usage |
| 111 | +Then run: |
| 112 | +
|
| 113 | +```bash |
| 114 | +docker compose up -d |
| 115 | +``` |
| 116 | + |
| 117 | +--- |
| 118 | + |
| 119 | +## π Usage |
| 120 | + |
| 121 | +1. **Access the dashboard**: Navigate to `http://localhost:4005` |
| 122 | +2. **Add first DB for backup**: Click "New Database" and follow the setup wizard |
| 123 | +3. **Configure schedule**: Choose from hourly, daily, weekly or monthly intervals |
| 124 | +4. **Set database connection**: Enter your PostgreSQL credentials and connection details |
| 125 | +5. **Choose storage**: Select where to store your backups (local, S3, Google Drive, etc.) |
| 126 | +6. **Add notifications** (optional): Configure email, Telegram, Slack, or webhook notifications |
| 127 | +7. **Save and start**: Postgresus will validate settings and begin the backup schedule |
| 128 | + |
| 129 | +--- |
| 130 | + |
| 131 | +## π License |
| 132 | + |
| 133 | +This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. |
| 134 | + |
| 135 | +--- |
| 136 | + |
| 137 | +## π€ Contributing |
60 | 138 |
|
61 | | -Go to http://localhost:4005 to see Postgresus UI |
| 139 | +Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change. |
0 commit comments