<p align="center">
<a href="https://github.com/David-Crty/databasement">
<img src="docs/static/img/banner-v2.png" alt="Databasement Banner" />
</a>
</p>
<p align="center">
<a href="https://app.codecov.io/gh/David-Crty/databasement">
<img src="https://codecov.io/gh/David-Crty/databasement/graph/badge.svg" alt="Code Coverage" />
</a>
<a href="https://github.com/David-Crty/databasement/actions">
<img src="https://github.com/David-Crty/databasement/actions/workflows/tests.yml/badge.svg" alt="CI Status" />
</a>
<a href="https://artifacthub.io/packages/helm/databasement/databasement">
<img src="https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/databasement" alt="Artifact Hub" />
</a>
<a href="https://hub.docker.com/r/davidcrty/databasement">
<img src="https://img.shields.io/docker/pulls/davidcrty/databasement" alt="Docker Pulls" />
</a>
<a href="https://snyk.io/test/github/David-Crty/databasement">
<img src="https://snyk.io/test/github/David-Crty/databasement/badge.svg" alt="Known Vulnerabilities" />
</a>
</p>
<p align="center">
A modern, self-hosted database backup management application for MySQL, PostgreSQL, MariaDB, Microsoft SQL Server, MongoDB, SQLite, Firebird, and Redis.
</p>
<p align="center">
<a href="https://databasement-demo.crty.dev/"><strong>Live Demo</strong></a> ·
<a href="https://david-crty.github.io/databasement/">Documentation</a> ·
<a href="https://david-crty.github.io/databasement/llms.txt">llms.txt</a> ·
<a href="https://github.com/David-Crty/databasement/issues">Report Bug or Request Feature</a>
</p>
---
## Features
- **Multi-database support** - Manage MySQL, PostgreSQL, MariaDB, Microsoft SQL Server, MongoDB, SQLite, Firebird, 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
- **Remote agents** - Back up databases in firewalled or isolated networks with no inbound port: a lightweight agent connects out over HTTPS, dumps locally, and uploads to your storage
- **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
- **Scheduled restores** - Refresh a target database on a recurring schedule (e.g. nightly prod → staging) by replaying the latest completed snapshot
- **Built-in data browser** - Open Adminer in-app to inspect MySQL, PostgreSQL, and SQLite servers (admin-enabled, role-gated)
- **Flexible storage** - Store backups locally, on S3-compatible storage (AWS S3, MinIO, etc.), Azure Blob Storage, Samba/SMB shares, 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-tenant organizations with isolated workspaces, role-based access control, OAuth/SSO login (Google, GitHub, GitLab, OpenID Connect), 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](https://databasement-demo.crty.dev/) 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](https://david-crty.github.io/databasement/self-hosting/docker) |
| **Docker Compose** | Multi-container setup with external database | [View Guide](https://david-crty.github.io/databasement/self-hosting/docker-compose) |
| **Kubernetes + Helm** | For Kubernetes clusters | [View Guide](https://david-crty.github.io/databasement/self-hosting/kubernetes-helm) |
| **Native Ubuntu** | Traditional installation without Docker | [View Guide](https://david-crty.github.io/databasement/self-hosting/native-ubuntu) |
### Quick Start
```bash
# 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:1
```
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](https://david-crty.github.io/databasement/self-hosting/configuration) for environment variables and best practices.
## Supported Database Versions
| Engine | Supported Versions | CLI Tool | Restore |
|------------|-------------------------------|------------------------------|---------|
| MySQL | 5.5, 5.6, 5.7, 8.x, 9.x, 26.x | `mysqldump` | Yes |
| MariaDB | 5.x, 10.x, 11.x, 12.x | `mariadb-dump` / `mysqldump` | Yes |
| PostgreSQL | 12, 13, 14, 15, 16, 17, 18 | `pg_dump` v16 / v18 | Yes |
| SQL Server | 2017, 2019, 2022, Azure SQL | `sqlpackage` (`.dacpac`) | Yes |
| MongoDB | 4.2, 4.4, 5.0, 6.0, 7.0, 8.0 | `mongodump` / `mongorestore` | Yes |
| SQLite | 3.x | `sqlite3 .backup` | Yes |
| Firebird | 3.x, 4.x, 5.x | `gbak` v5 | Yes |
| Redis | 2.8+ | `redis-cli --rdb` | No |
| Valkey | 7.2+ | `redis-cli --rdb` | No |
See the [Database Servers documentation](https://david-crty.github.io/databasement/user-guide/database-servers#supported-versions) 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](https://david-crty.github.io/databasement/user-guide/api).
- **MCP Server** - Connect AI assistants (Claude Code, Cursor, VS Code Copilot, etc.) to manage backups through natural language. See the [MCP documentation](https://david-crty.github.io/databasement/user-guide/mcp).
## Documentation
Full documentation is available at [david-crty.github.io/databasement](https://david-crty.github.io/databasement/).
For LLMs and AI assistants, the documentation is also published in the [llmstxt.org](https://llmstxt.org/) format:
- [llms.txt](https://david-crty.github.io/databasement/llms.txt) — index of all documentation pages
- [llms-full.txt](https://david-crty.github.io/databasement/llms-full.txt) — full documentation content in a single file
## Issues & Feature Requests
Found a bug? Please [open an issue](https://github.com/David-Crty/databasement/issues) with reproduction steps.
Have an idea for a new feature? Start a [discussion](https://github.com/David-Crty/databasement/discussions) 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](https://david-crty.github.io/databasement/contributing/development) for setup instructions
Small fixes (typos, documentation improvements) can be submitted directly as PRs.
AI agent files come from [Laravel Boost](https://github.com/laravel/boost). The Boost section of `CLAUDE.md` and the skills in `.claude/skills/` are regenerated by `composer update` (`php artisan boost:update`), so don't edit them by hand. Custom skills live in `.ai/skills/` and custom guidelines in `.ai/guidelines/`; Boost links them into `.claude/skills/` on the next update.
## Security
If you discover a security vulnerability, please report it responsibly. See [SECURITY.md](SECURITY.md) for details.
## License
Databasement is open-source software licensed under the [MIT License](LICENSE).