PostgreSQL monitoring and backup tool

Postgresus is a free, open source and self-hosted tool to backup and monitor PostgreSQL. Make backups with different storages and notifications about progress

Check mark icon

Configurable health checks with notifications

Check mark icon

Scheduled backups (daily, weekly, at 4 AM, etc.)

Check mark icon

Save backups locally, in S3, Google Drive and more

Check mark icon

Notifications to Slack, Telegram, Discord, etc.

Check mark icon

Run via .sh script, Docker or Docker Compose

Supported messengers and platforms
Postgresus dashboard interface

How to make backups?

To make PostgreSQL backup with Postgresus you need to follow 4 steps. After that, you will be able to restore in one click

1

Select required schedule

You can choose any time you need: daily, weekly, monthly and particular time (like 4 AM)

For week interval you need to specify particular day, for month you need to specify particular day

If your database is large, we recommend you choosing the time when there are decrease in traffic

Backup schedule configuration interface
2

Enter your database info

Enter credentials of your PostgreSQL database, select version and target DB. Also choose whether SSL is required

Postgresus, by default, compress backups at balance level to not slow down backup process (~20% slower) and save x4-x8 of the space (that decreasing network traffic)

Database configuration form
3

Choose storage for backups

You can keep files with backups locally, in S3, in Google Drive, NAS, Dropbox and other services

Please keep in mind that you need to have enough space on the storage

Storage options selection interface
4

Choose where you want to receive notifications (optional)

When backup succeed or failed, Postgresus is able to send you notification. It can be chat with DevOps, your emails or even webhook of your team

We are going to support the most of popular messangers and platforms

Notification settings configuration

Features

Postgresus provides everything you need for reliable PostgreSQL backup management. From automated scheduling to multiple storage options, we've got you covered.

Scheduled backups

Scheduled backups
Backup is a thing that should be done in specified time on regular basis. So we provide many options: from hourly to monthly

Notifications

Notifications
You can receive notifications about success or fail of the process. This is useful for developers or DevOps teams

Self hosted via Docker

Self hosted via Docker
Postgresus runs on your PC or VPS. Therefore, all your data is owned by you and secured. Deploy takes about 2 minutes

Configurable health checks

Configurable health checks
Each minute (or any another amount of time) the system will ping your database and show you the history of attempts

The database can be considered as down after 3 failed attempts or so. Once DB is healthy again - you receive notification too

Open source and free

Open source and free
The project is fully open source, free and have MIT license. You can copy and fork the code on your own

Many PostgreSQL versions

Many PostgreSQL versions
PostgreSQL 13, 14, 15, 16 and 17 are supported by the project. You can backup any version from 2020

Many destinations to store

Many destinations to store
Files are kept on VPS, cloud storages and other places. You can choose any storage you. Files are always owned by you need

How to install?

You have three ways to install Postgresus: automated script (recommended), simple Docker run, or Docker Compose setup.

Option 1: automated installation script (recommended)

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

Option 2: simple Docker run

The easiest way to run Postgresus with embedded PostgreSQL. This single command will:
✅ Start Postgresus
✅ Store all data in ./postgresus-data directory
✅ Automatically restart on system reboot

docker run -d \
  --name postgresus \
  -p 4005:4005 \
  -v ./postgresus-data:/postgresus-data \
  --restart unless-stopped \
  rostislavdugin/postgresus:latest

Option 3: Docker Compose setup

Create a docker-compose.yml file with the following configuration, then run: docker compose up -d

version: "3"

services:
  postgresus:
    container_name: postgresus
    image: rostislavdugin/postgresus:latest
    ports:
      - "4005:4005"
    volumes:
      - ./postgresus-data:/postgresus-data
    restart: unless-stopped

FAQ

The goal of Postgresus — make backing up as simple as possible for single developers (as well as DevOps) and teams. UI makes it easy to create backups and visualizes the progress and restores anything in couple of clicks

1. What is Postgresus and why should I use it instead of hand-rolled scripts?

Postgresus is an MIT-licensed, self-hosted service backing up PostgreSQL, v13 to v17. It differs from shell scripts in that it has a frontend for scheduling tasks, compressing and storing archives on multiple targets (local disk, S3, Google Drive, NAS, Dropbox, etc.) and notifying your team when tasks finish or fail — all without hand-rolled code

2. How do I install Postgresus in the quickest manner?

The most direct route is to run the one-line cURL installer. It fetches the current Docker image, spins up a single PostgreSQL container. Then creates a docker-compose.yml and boots up the service so it will automatically start again when reboots occur. Overall time is usually less than two minutes on a typical VPS.

3. What backup schedules can I schedule?

You can choose from hourly, daily, weekly, or monthly cycles and even choose an exact run time (such as 04:00 when it's late night). Weekly schedules enable you to choose a particular weekday, while monthly schedules enable you to choose a particular calendar day, giving you very fine-grained control of maintenance windows.

4. Where do my backups live and how much space will they occupy?

Archives can be saved to local volumes, S3-compatible buckets, Google Drive, Dropbox, and other cloud targets. Postgresus implements balanced compression, which typically shrinks dump size by 4-8x with incremental only about 20% of runtime overhead, so you have storage and bandwidth savings.

5. How will I know a backup succeeded — or worse, failed?

Postgresus can notify with real-time emails, Slack, Telegram, webhooks, Mattermost, Discord and more. You have the choice of what channels to ping so that your DevOps team hears about successes and failures in real time, making recovery routines and compliance audits easier.

6. Does Postgresus reduce database security?

No. All the data executes within containers you control, on servers you own. Credentials and backup files are left on your server or in the cloud account of your choice. Because it's open source, you or your security team, can inspect every line to make sure it meets your organization's needs before it's run.

7. How do I set up and run my first backup job in Postgresus?

To start your very first Postgresus backup, simply log in to the dashboard, click on New Backup, select an interval — hourly, daily, weekly or monthly. Then specify the exact run time (e.g., 02:30 for off-peak hours). Then input your PostgreSQL host, port number, database name, credentials, version and SSL preference. Choose where the archive should be sent (local path, S3 bucket, Google Drive folder, Dropbox, etc.). If you need, add notification channels such as email, Slack, Telegram or a webhook, and click Save. Postgresus instantly validates the info, starts the schedule, runs the initial job and sends live status. So you may restore with one touch when the backup is complete.

8. How does PostgreSQL monitoring work?

Postgresus monitors your databases instantly. This optional feature helps avoid extra costs for edge DBs. Health checks are performed once a specific period (minute, 5 minutes, etc.). To enable the feature, choose your DB and select "enable" monitoring. Then configure health checks period and number of failed attempts to consider the DB as unavailable.