Noureddine RAMDI / Databasus: a self-hosted, secure, multi-cloud database backup solution in Go

Created Tue, 05 May 2026 13:37:39 +0000 Modified Sat, 23 May 2026 20:41:27 +0000

databasus/databasus

Databases are the backbone of most applications, and backing them up reliably without exposing them to undue risk is a constant challenge. Databasus tackles this by providing a self-hosted database backup solution focused on security, flexibility, and multi-cloud storage options. What caught my attention is its agent-based backup mode, where a lightweight Go agent runs alongside the database to stream backups securely without opening database ports publicly — a practical solution for production environments with strict security requirements.

What databasus does and how it works

Databasus is an open-source backup system primarily designed for PostgreSQL but also supporting MySQL/MariaDB and MongoDB. It’s written in Go, which allows it to be cross-platform and performant with a relatively small footprint.

The tool supports three backup types:

  • Logical backups: capturing the database schema and data in a logical format.
  • Physical backups: copying the actual database files for exact restoration.
  • Incremental backups with point-in-time recovery (PITR): enabling restoring the database to any point within a backup window.

These backup types cover a broad range of recovery scenarios, from simple restores to complex disaster recovery.

Scheduling is flexible, offering cron expressions as well as hourly, daily, weekly, and monthly intervals. Retention policies implement enterprise-grade strategies such as Grandfather-Father-Son (GFS), ensuring a well-organized backup lifecycle.

Storage backends are versatile, including local disks and multiple cloud providers like AWS S3, Cloudflare R2, Google Drive, Dropbox, SFTP, and even Rclone-compatible remotes. This multi-storage support makes it easy to implement multi-region or multi-cloud backup strategies.

Security is taken seriously — all backups are encrypted using AES-256-GCM before leaving the host, enabling zero-trust storage environments.

The architecture includes a polished web UI for backup management, team workspaces with role-based access control (RBAC), audit logs for compliance, and multi-channel notifications (Slack, Discord, Telegram, email, webhooks) to keep operators informed.

Deployment options cover a wide spectrum: from a simple automated install script that sets up Docker and runs Databasus, to manual Docker runs, Docker Compose, and Kubernetes via Helm charts. The tool supports both remote connections to databases and agent-based backups, where an agent runs locally with direct access to the database files or streams the backup securely.

Technical strengths and tradeoffs

The agent-based backup mode stands out. Running an agent locally alongside the database allows streaming backups without exposing the database network ports. This addresses a common security concern where databases must remain isolated and unreachable from outside the host or cluster. The agent handles backup creation and encryption, then pushes the encrypted data to the configured storage destinations.

The codebase leverages Go’s concurrency features and efficient I/O handling to achieve smart compression rates of 4-8x space savings with balanced CPU overhead (~20%). This is important because backup storage costs and network bandwidth can quickly balloon without efficient compression.

The support for multiple storage backends and cloud providers is a significant strength. Many backup tools focus on one or two storage options; Databasus’s integration with S3, R2, Google Drive, Dropbox, SFTP, and Rclone-compatible targets offers real-world flexibility, especially for teams with hybrid or multi-cloud infrastructures.

On the retention side, the implementation of GFS policies is enterprise-grade. GFS helps manage backups by rotating daily, weekly, and monthly snapshots systematically, reducing manual intervention.

That said, the tradeoff is complexity. Managing a self-hosted backup solution with multiple storage backends, encryption keys, retention policies, and scheduling requires operational awareness. The encryption and compression add CPU overhead, which needs consideration on resource-constrained hosts.

The web UI and team management features improve developer and operator experience, but add layers that must be maintained securely.

Quick start with Databasus

Getting Databasus up and running is straightforward thanks to multiple installation options documented clearly.

This script installs Docker and Docker Compose if missing, configures Databasus, and sets it to start automatically on reboot.

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

Option 2: Simple Docker run

Run Databasus in a Docker container, exposing port 4005 and persisting data in a local directory.

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

Option 3: Docker Compose setup

Create a docker-compose.yml with:

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

Then run:

docker compose up -d

Option 4: Kubernetes with Helm

Install Databasus via Helm from the OCI registry for Kubernetes clusters.

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

Port-forwarding can be used for development or testing.

verdict

Databasus is a solid self-hosted backup solution for teams that want control over their data protection without relying on proprietary cloud backup services. Its multi-database support, multi-cloud storage destinations, and enterprise-grade retention policies make it suitable for production environments with compliance needs.

The agent-based backup mode is especially useful for security-conscious deployments where the database should not be exposed on the network. The use of Go ensures good performance and portability.

That said, the complexity of managing encryption keys, retention policies, and multi-storage setups means it fits teams with some operational maturity. It’s not a zero-config backup tool but offers enough flexibility for real-world production use.

If you run PostgreSQL, MySQL/MariaDB, or MongoDB databases and want a secure, flexible, self-hosted backup solution with a modern UI and team features, Databasus is worth evaluating. The installation options make it easy to try out, and the codebase is well-structured, reflecting thoughtful engineering.


→ GitHub Repo: databasus/databasus ⭐ 6,690 · Go