Self-hosted database backup manager with a web UI. Schedule, backup, and restore MySQL, PostgreSQL, MariaDB, MongoDB, SQLite & Redis to S3, SFTP, or local storage. SSH Tunnel support. https://david-crty.github.io/databasement/
  • PHP 81.2%
  • Blade 17.3%
  • Shell 0.5%
  • Makefile 0.3%
  • Smarty 0.3%
  • Other 0.4%
Find a file
2026-04-11 10:24:53 +02:00
.github feat: show version in docs and API on tag release (#183) 2026-03-26 12:28:44 +01:00
.husky ci: fix CI workflows for external contributors (#182) 2026-03-23 11:29:02 +01:00
app feat: introduce x-radio-card component for selection inputs (#206) 2026-04-11 09:55:58 +02:00
bootstrap fix: apply default trusted proxies when env var is empty (#184) 2026-03-26 01:07:25 +01:00
config feat: per-server notification channels with success notifications (#205) 2026-04-10 15:03:30 +02:00
database fix: default notification_trigger to 'failure' 2026-04-11 10:22:30 +02:00
docker feat: add OIDC group-based role mapping (#202) 2026-04-08 17:42:00 +02:00
docs chore(deps): bump lodash from 4.17.23 to 4.18.1 in /docs (#203) 2026-04-08 18:02:38 +02:00
helm/databasement Add versioning docs and update self-hosting guides (#172) 2026-03-17 14:08:31 +01:00
lang feat: add Discord Webhook notification channel (#195) 2026-03-29 00:40:00 +01:00
public chore: add Apple Touch Icon support for layouts and include new apple-touch-icon.png 2025-12-16 22:20:03 +01:00
resources feat: introduce x-radio-card component for selection inputs (#206) 2026-04-11 09:55:58 +02:00
routes Add CRUD API endpoints for database servers (#178) 2026-03-23 14:37:12 +01:00
storage Add initial project setup with Laravel framework 2025-10-29 14:05:12 +01:00
tests feat: per-server notification channels with success notifications (#205) 2026-04-10 15:03:30 +02:00
.dockerignore chore: update Docker setup to adjust permissions and ignore Dockerfile 2026-01-05 23:24:06 +01:00
.editorconfig chore: restructure project for Docker integration and database CLI enhancements 2025-11-17 22:52:04 +01:00
.env feat: add OIDC group-based role mapping (#202) 2026-04-08 17:42:00 +02:00
.gitattributes Add initial project setup with Laravel framework 2025-10-29 14:05:12 +01:00
.gitignore feat: add Telegram, Pushover, Gotify & Webhook notification channels (#83) 2026-02-09 22:28:15 +01:00
.mcp.json fix: reduce database connection usage with Octane (#90) 2026-02-10 11:44:47 +01:00
artisan Add initial project setup with Laravel framework 2025-10-29 14:05:12 +01:00
boost.json Add MCP server for AI assistant integration (#159) 2026-03-15 13:55:51 +01:00
CLAUDE.md feat: introduce x-radio-card component for selection inputs (#206) 2026-04-11 09:55:58 +02:00
composer.json feat: introduce x-radio-card component for selection inputs (#206) 2026-04-11 09:55:58 +02:00
composer.lock feat: introduce x-radio-card component for selection inputs (#206) 2026-04-11 09:55:58 +02:00
docker-compose.yml feat: add OIDC group-based role mapping (#202) 2026-04-08 17:42:00 +02:00
Dockerfile Add semver release workflow for Docker and Helm (#168) 2026-03-17 11:51:11 +01:00
LICENSE chore: add MIT license file 2025-12-22 18:03:03 +01:00
Makefile Add make release target to simplify release creation process 2026-03-17 12:41:45 +01:00
package-lock.json chore(deps): bump vite from 7.2.6 to 7.3.2 (#201) 2026-04-08 17:57:16 +02:00
package.json chore(deps): bump vite from 7.2.6 to 7.3.2 (#201) 2026-04-08 17:57:16 +02:00
phpstan.neon chore: phpstan level 7 2025-12-23 21:14:38 +01:00
phpunit.xml Run test in parallel by default for faster feedback. (#44) 2026-01-23 01:12:41 +01:00
pint.json chore: update dependencies (#149) 2026-03-10 23:18:45 +01:00
README.md Add MCP server for AI assistant integration (#159) 2026-03-15 13:55:51 +01:00
rector.php chore: add Rector configuration and database import command 2025-12-23 22:40:32 +01:00
SECURITY.md chore: add development and security documentation, enhance S3 configuration, and update README 2025-12-24 17:05:10 +01:00
test-docker.sh feat: add retry mechanism to ensure FrankenPHP startup in Docker test script 2026-01-13 13:03:18 +01:00
vite.config.js Add initial project setup with Laravel framework 2025-10-29 14:05:12 +01:00

Databasement Banner

License Code Coverage CI Status Artifact Hub Docker Pulls

A modern, self-hosted database backup management application for MySQL, PostgreSQL, MariaDB, MongoDB, SQLite, and Redis.

Live Demo · Documentation · Report Bug or Request Feature ·


Features

  • Multi-database support — Manage MySQL, PostgreSQL, MariaDB, MongoDB, SQLite, and Redis/Valkey servers from a single interface
  • SSH tunnel support — Connect to databases in private networks through a bastion/jump server with password or key-based authentication
  • Automated backups — Schedule recurring backups on daily or weekly intervals. Flexible retention policies: simple time-based (days) or GFS (grandfather-father-son)
  • Multiple compression options — gzip, zstd (20-40% better compression), or encrypted (AES-256 for sensitive data)
  • Cross-server restore — Restore snapshots from production to staging, or between any compatible servers
  • Flexible storage — Store backups locally, on S3-compatible storage (AWS S3, MinIO, etc.), or remote servers via SFTP/FTP
  • Real-time monitoring — Track backup and restore progress with detailed job logs
  • Failure notifications — Get alerted via Email, Slack, Discord, Telegram, Pushover, Gotify, or Webhook when jobs fail
  • Team ready — Multi-user support with role-based access and optional two-factor authentication
  • Automation — REST API and MCP server for scripting, CI/CD, and AI assistant integration
  • Simple deployment — Single Docker container with built-in web server, queue worker, and scheduler

Try it out! Explore the live demo to see Databasement in action before installing.

Self-Hosting

Databasement is designed to be self-hosted. We provide several deployment options:

Method Description Guide
Docker Single container deployment View Guide
Docker Compose Multi-container setup with external database View Guide
Kubernetes + Helm For Kubernetes clusters View Guide
Native Ubuntu Traditional installation without Docker View Guide

Quick Start

# Run the container
docker run -d \
  --name databasement \
  -p 2226:2226 \
  -e DB_CONNECTION=sqlite \
  -e DB_DATABASE=/data/database.sqlite \
  -e ENABLE_QUEUE_WORKER=true \
  -v ./databasement-data:/data \
  davidcrty/databasement:latest

Open http://localhost:2226 and create your first admin account.

Note: The container automatically handles volume permissions. You can use PUID and PGID environment variables to match your system's user/group IDs.

For production deployments, see our configuration guide for environment variables and best practices.

Supported Database Versions

Engine Supported Versions CLI Tool Restore
MySQL 5.6, 5.7, 8.x, 9.x mariadb-dump Yes
MariaDB 10.x, 11.x, 12.x mariadb-dump Yes
PostgreSQL 12, 13, 14, 15, 16, 17, 18 pg_dump v18 Yes
MongoDB 4.2, 4.4, 5.0, 6.0, 7.0, 8.0 mongodump / mongorestore Yes
SQLite 3.x File copy Yes
Redis 2.8+ redis-cli --rdb No
Valkey 7.2+ redis-cli --rdb No

See the Database Servers documentation for version-specific backup and restore details.

Automation

Databasement can be managed programmatically through its REST API and MCP server, enabling integration with scripts, CI/CD pipelines, and AI assistants.

  • REST API — Full API for managing servers, backups, and restores. See the API documentation.
  • MCP Server — Connect AI assistants (Claude Code, Cursor, VS Code Copilot, etc.) to manage backups through natural language. See the MCP documentation.

Documentation

Full documentation is available at david-crty.github.io/databasement.

Issues & Feature Requests

Found a bug? Please open an issue with reproduction steps.

Have an idea for a new feature? Start a discussion first so we can evaluate together whether it fits the project scope.

Contributing

Contributions are welcome! Before submitting a pull request, please:

  1. Check existing issues and discussions to avoid duplicates
  2. For significant changes, open an issue first to discuss the approach
  3. Follow the development guide for setup instructions

Small fixes (typos, documentation improvements) can be submitted directly as PRs.

Security

If you discover a security vulnerability, please report it responsibly. See SECURITY.md for details.

License

Databasement is open-source software licensed under the MIT License.