Skip to content

DBackupDatabase & File Backup Automation

Self-hosted solution for automating database and file backups with encryption, compression, and smart retention policies.

Quick Start โ€‹

Get DBackup running in minutes with Docker:

bash
docker run -d --name dbackup -p 3000:3000 \
  -e ENCRYPTION_KEY="$(openssl rand -hex 32)" \
  -e BETTER_AUTH_SECRET="$(openssl rand -base64 32)" \
  -e BETTER_AUTH_URL="https://localhost:3000" \
  -v "$(pwd)/data:/data" \
  -v "$(pwd)/backups:/backups" \
  skyfay/dbackup:latest
yaml
services:
  dbackup:
    image: skyfay/dbackup:latest
    container_name: dbackup
    restart: always
    ports:
      - "3000:3000"
    environment:
      - ENCRYPTION_KEY=  # openssl rand -hex 32
      - BETTER_AUTH_URL=https://localhost:3000
      - BETTER_AUTH_SECRET=  # openssl rand -base64 32
    volumes:
      - ./data:/data              # All persistent data (db, storage, certs)
      - ./backups:/backups        # Optional: used for local backups

Then open https://localhost:3000 and create your first admin account (accept the self-signed certificate on first visit).

โ†’ Full Installation Guide for Docker Compose, volumes, and production setup.

Supported Integrations โ€‹

DatabaseVersionsConnection ModesRestore
PostgreSQL12, 13, 14, 15, 16, 17, 18Direct, SSHYes
MySQL5.7, 8.x, 9.xDirect, SSHYes
MariaDB10.x, 11.xDirect, SSHYes
MongoDB4.x, 5.x, 6.x, 7.x, 8.xDirect, SSHYes
Redis2.8+Direct, SSHGuided
Valkey7.2+Direct, SSHGuided
SQLite3.xLocal, SSHYes
Microsoft SQL Server2017, 2019, 2022, Azure SQL EdgeDirect, SSHYes
Firebird (Beta)3.x, 4.x, 5.xDirect, SSHYes (pre-configured aliases)

Your Backups, Your Control โ€‹

DBackup is designed as a convenience layer, not a dependency.

Database backups are a standard dump (SQL, BSON, RDB, etc.), the same format you'd get from running pg_dump, mysqldump, or mongodump yourself. Even encrypted, they use open AES-256-GCM with a simple sidecar .meta.json file for the IV and auth tag. If DBackup is ever unavailable, you can still:

  1. Decrypt any backup with the included standalone Node.js script (zero external dependencies)
  2. Decompress automatically (GZIP or Brotli is handled by the same script)
  3. Import the resulting dump directly with your database's native CLI tool

File backups are a plain TAR archive. Unencrypted, tar -xf backup.tar is the whole recovery procedure. Encrypted, the layout is specified byte by byte in the Archive Format reference, and the Recovery Kit's dbackup-recover.js is an independent implementation of that document - it lists and extracts single files with nothing but Node.js.

The Recovery Kit (downloadable from Vault) bundles everything you need: your encryption key, both scripts, and platform-specific helpers for Windows, Linux, and macOS.

TIP

Download your Recovery Kit after creating an Encryption Profile and store it offline (USB drive, password manager, printed). It's your safety net if DBackup or the server it runs on is no longer accessible.

The promise has a price โ€‹

Incremental backups store whole changed files and reference unchanged ones in earlier archives of the same chain. They do not use a content-addressed chunk store the way restic, Borg or Kopia do.

That costs storage: a renamed file is stored again, a one-byte change in a 10 GB file re-stores 10 GB, and nothing is deduplicated across jobs or chains. What it buys is that every archive stays a file you can open by hand, deleting a backup is deleting files rather than garbage collection, and a chain is a folder you can copy in any file browser.

If your data is mostly large binaries with small internal changes, a chunk-based tool is the better fit and we would rather say so. See the reasoning in full, or Backup Modes for what this means in practice.

Architecture at a Glance โ€‹

DBackup is built with modern technologies:

  • Frontend: Next.js 16 (App Router), React, Shadcn UI
  • Backend: Next.js Server Actions, Prisma ORM
  • Database: SQLite for application state
  • Streaming: Native Node.js streams for efficient encryption/compression

The plugin-based adapter architecture makes it easy to add new databases, storage providers, or notification channels.

Community & Support โ€‹

  • ๐Ÿ’ฌ Discord: Join our community at https://dc.skyfay.ch
  • ๐Ÿ“ Documentation: Full guides and API reference in this wiki
  • ๐Ÿ”— API Reference: Interactive API docs at api.dbackup.app or in-app at /docs/api
  • ๐Ÿ› Issues: Report bugs or request features on GitHub Issues
  • ๐Ÿ“ง Support: General questions and support via support@dbackup.app
  • ๐Ÿ”’ Security: Report vulnerabilities responsibly via security@dbackup.app (please do not open public issues for security reports)

๐Ÿค– AI Development Transparency โ€‹

Architecture & Concept โ€‹

The system architecture, infrastructure design, strict technology stack selection, and feature specifications for DBackup were entirely conceptualized and directed by a human System Engineer to solve real-world infrastructure challenges.

Implementation โ€‹

The application code was generated by AI coding agents following detailed architectural specifications and coding guidelines. All features were manually tested for correctness, stability, and real-world reliability. Automated unit tests (Vitest) and static security audits complement the manual QA process.

Open for Review โ€‹

DBackup is thoroughly tested and used in production, but a formal manual security audit by an external developer has not yet been completed. If you are a software developer or cybersecurity professional, your expertise is highly welcome! We invite the open-source community to review the code, submit PRs, and help us elevate DBackup to a fully verified, enterprise-ready standard.

Security Disclosure: If you discover a security vulnerability, please do not open a public GitHub issue. Instead, report it responsibly via email to security@dbackup.app.

Released under the GNU General Public License. | Privacy ยท Legal Notice