DEV Community

Cover image for Databasus — open source backup tool for PostgreSQL, MySQL and MongoDB
Grig
Grig

Posted on

Databasus — open source backup tool for PostgreSQL, MySQL and MongoDB

Databasus is an open source tool for backing up databases. The main goal of the project is to create database backups on a schedule and store them both locally and in external storage. It also notifies users about the status: when a backup completes or fails.

The project can be deployed with a single command in Docker. You can install it via a shell script, Docker command, docker-compose.yml or Helm for Kubernetes. More details about installation methods below.

Features

Supported databases: PostgreSQL (primary focus), MySQL, MariaDB and MongoDB.

Storage options: Save backups locally, to S3, CloudFlare R2, Google Drive, Azure Blob Storage, NAS, via SFTP or rclone.

Notifications: Get status updates via Slack, Discord, Telegram, MS Teams, email or custom webhooks.

Team collaboration: Organize databases by projects, grant access to other users and maintain audit logs.

Security: AES-256-GCM encryption for backup files and sensitive data (passwords, secrets and more). Databasus uses read-only database connections by default.

Cloud & self-hosted: Works with both self-hosted databases and cloud-managed services like AWS RDS, Google Cloud SQL and Azure Database.

Website: https://databasus.com

GitHub: https://github.com/databasus/databasus

Interface

The project interface looks like this:

Dark theme

Light theme

How to deploy?

There are 4 ways to deploy the project:

  • Shell script
  • docker-compose.yml
  • Docker command
  • Kubernetes Helm

Via shell script

The shell script first installs Docker, then creates a docker-compose.yml file and starts Databasus:

sudo apt-get install -y curl && \
sudo curl -sSL https://raw.githubusercontent.com/databasus/databasus/refs/heads/main/install-databasus.sh | sudo bash
Enter fullscreen mode Exit fullscreen mode

Via docker-compose.yml

Create a docker-compose.yml file:

services:
  databasus:
    container_name: databasus
    image: databasus/databasus:latest
    ports:
      - "4005:4005"
    volumes:
      - ./databasus-data:/databasus-data
    restart: unless-stopped
Enter fullscreen mode Exit fullscreen mode

Then run:

docker compose up -d
Enter fullscreen mode Exit fullscreen mode

Via Docker command

docker run -d \
  --name databasus \
  -p 4005:4005 \
  -v ./databasus-data:/databasus-data \
  --restart unless-stopped \
  databasus/databasus:latest
Enter fullscreen mode Exit fullscreen mode

Via Kubernetes Helm

helm install databasus oci://ghcr.io/databasus/charts/databasus \
  -n databasus --create-namespace

kubectl port-forward svc/databasus-service 4005:4005 -n databasus
# Access at http://localhost:4005
Enter fullscreen mode Exit fullscreen mode

In all 4 cases, the project will be available on port 4005.

How to add a database?

Once Databasus is installed and running, you can access the dashboard at http://localhost:4005. Here's how to set up your first backup:

  1. Click "New Database" on the main dashboard
  2. Choose your database type: PostgreSQL, MySQL, MariaDB or MongoDB
  3. Configure the schedule: Select hourly, daily, weekly, monthly or use a custom cron expression for precise timing (e.g., 4 AM during low traffic periods)
  4. Enter connection details: Provide your database host, port, username, password and database name
  5. Select storage destination: Choose where to save backups — local storage, S3, Google Drive, CloudFlare R2 or other supported options
  6. Add notifications (optional): Configure email, Telegram, Slack, Discord or webhooks to get notified about backup status
  7. Test and save: Databasus will validate your settings before starting the backup schedule (and suggest to create a read-only user if needed)

The system will then automatically create backups according to your schedule. You can view backup history, download backups and restore them at any time through the dashboard.

Why was Postgresus renamed to Databasus?

This was an important step for the project to grow. There are several reasons:

1. The project outgrew its initial scope. Postgresus is no longer a small tool that just adds a UI for pg_dump for little projects. It became a tool for individual users, DevOps engineers, DBAs, teams, companies and even large enterprises. Tens of thousands of users use it every day. The initial positioning is no longer suitable: the project is not just a UI wrapper anymore, it's a solid backup management system for production environments now (while still being easy to use).

2. Support for new databases. Although the primary focus is PostgreSQL (with 100% support in the most efficient way) and always will be, Databasus added support for MySQL, MariaDB and MongoDB. More databases will be supported later.

3. Trademark considerations. "Postgres" is a trademark of PostgreSQL Inc. and cannot be used in the project name. For safety and legal reasons, renaming was necessary.

Top comments (0)