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.
Option 1: Automated installation script (Linux only, recommended)
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.
Related Articles
- Supabase: composable open-source backend-as-a-service built around Postgres — Supabase combines specialized open-source tools around Postgres to offer a Firebase-like backend platform. Its modular a
- Memos: a self-hosted note-taking tool with radical simplicity in Go — Memos is a Go-based self-hosted note-taking app with a single binary and lightweight Docker image. It supports Markdown
- etcd: a robust distributed key-value store built on Go and Raft — etcd is a distributed key-value store in Go that uses the Raft consensus algorithm for high availability and consistency
- Gogs: a lightweight, cross-platform self-hosted Git service in Go — Gogs is a self-hosted Git service built in Go, notable for its low resource footprint and cross-platform support, runnin
→ GitHub Repo: databasus/databasus ⭐ 6,690 · Go