OctoBackup is an open-source, containerized application built with .NET 9 Blazor WebAssembly using a modular monolith architecture.
The application allows centralized management of database backups across multiple servers – currently supporting MySQL, PostgreSQL and MS SQL Server.
- 📅 Schedule automatic backups
- 🔐 Encryption and compression of backup files
- 📊 Backup history and statistics
- 📧 Email notifications about backup status
- 👥 Roles system and Server groups – the administrator can assign users to servers, and allow users to access (e.g., view the latest backup of a given database, server configuration, tunnel settings etc.)
- 🗄️ Configuration and management data are stored in SQLite (lightweight embedded database)
🔹 Most free backup tools only support 1–2 databases and require paid upgrades for more advanced features.
🔹 This application was created as a fully free and flexible solution for managing multiple databases in one place.
🔹 It also provides security (encryption, authorization) and easy user management.
- UI – Blazor WebAssembly
- API/Server – business logic, backup engine, database communication
- Application Database – SQLite (users, groups, configurations, backup history)
- Authorization – users, roles, servers groups
- Backup Engine – generation, encryption, compression, archiving of backups
- Notifications – email system (statuses, reminders, errors)
- Testing – option to restore and verify backups in a temporary test container environment (if set, tests runs automatically)
Go to the WIKI section and follow the setup instructions.
- Support for MySQL
- Support for PostgreSQL
- UI Panel in Blazor
- User, role & group management system
- Backup scheduling
- Email notifications
- Configuration storage in SQLite
- Support for MS SQL Server
- Statistics and reporting in UI
- Tunnels compability
- SignalR
- Advanced backup testing (temporary containers + SQL check queries)
- Multilanguage
This project is released under the MIT license.
You are free to use it commercially and privately, extend it, and adapt it to your needs.
Want to contribute?
Open an issue 🐛 in Issues
Propose a feature 💡
Submit a pull request 🚀