A self-hosted web application for centrally managing BorgBackup across multiple endpoints (Linux, Mac and Windows). A lightweight agent polls the server for tasks over HTTPS, backs up over SSH to the server, and reports progress back. No inbound connections to endpoints from the server — this works behind firewalls and NAT from where the server is providing easy provisioning. Includes a setup wizard for simple installation or a Docker image to start up in 30 seconds.
**View Demo ** The developer has made a system for provisioning Demos at no cost here: Borg Backup Server
- Agent-based architecture — endpoints check-in with the server for tasks, the server doesn't need ssh access to the agent
- SSH with append-only security — agents can only backup or restore, can't delete or prune
- FULL Encryption - Software keeps everything encrypted at rest for enhanced security
- Setup wizard — browser-based installer configures database, admin account, and storage quicky
- Real-time progress — live progress bars during backups with detailed logging
- File-level restore — catalog data is saved in ClickHouse DB for fast search and file-tree without having to lock the borg repo
- Download archives — extract and download files as .tar.gz directly from the browser
- Database plugins — MySQL and PostgreSQL pre-dumps with automatic restore back into the database as a copy or replacement
- Flexible scheduling — hourly to monthly intervals, multiple plans per client, manual trigger
- Backup templates — pre-configured and customizeable directory sets for common server roles
- Retention policies — per-plan prune settings (hourly/daily/weekly/monthly/yearly)
- S3 offsite sync — mirror repositories to S3-compatible storage (AWS, Wasabi, Backblaze B2) for enahnced compliance
- Remote Storage Repos — wizards to backup to BorgBase, Hetzen and rsync.net (or any SSH provider that provides borg)
- Repo Management - Perform hard unlocks, repair, re-catalog, and other repo specific features
- Nightly Backup Reports - get an email every day with backup stats
- Multi-user — custom role-based access with various roles
- Two-factor authentication — TOTP-based 2FA with recovery codes, hooks into your 2FA of choice
- Queue management — concurrent job limits, cancel/retry, progress tracking
- Encrypted passphrases — repository passwords encrypted at rest (AES-256-GCM)
- Apprise alerts — custom push notifications to over 100 different notification services (Slack, Pushover, etc)
- Extensive Dashboard — backup charts, server stats, active jobs, see everything at a glance
- Server self-backup — daily automated backup of BBS itself with optional S3 sync offsite with restore scripts
- Automatic Self-Upgrade - one-click upgrade of the software plus all the agents. Also manage borg versions of client machines
Start with a fresh Ubuntu 22.04+ server, then run:
curl -sO https://raw.githubusercontent.com/marcpope/borgbackupserver/main/bin/bbs-install
sudo bash bbs-install --hostname backups.example.comThe installer handles everything — packages, Apache, MySQL, SSL, and cron. When it finishes, open the URL and the setup wizard walks you through the rest.
See the full documentation on the Wiki for installation details, agent setup, configuration, and usage guides.
Pre-built images are published to Docker Hub on every release:
curl -sO https://raw.githubusercontent.com/marcpope/borgbackupserver/main/docker-compose.yml
docker compose up -dGet admin credentials from the container logs:
docker compose logs bbsOpen http://localhost:8080 and log in. See the Docker Installation guide for full configuration, storage, reverse proxy, and update documentation.
All documentation lives on the GitHub Wiki:
- System Requirements
- Installation
- Getting Started
- Agent Setup
- Backup Plans
- Restoring Files
- Plugins
- S3 Offsite Sync
- Settings
- CLI Reference
- Troubleshooting
- Contributing
- HTTPS for control plane (task polling, progress, status)
- SSH for data plane (borg backup/restore via
borg serve) - Append-only — agents cannot delete existing archives; pruning runs server-side
| Layer | Technology |
|---|---|
| Backend | PHP 8.1+ (no framework) |
| Database | MySQL 8.0 |
| Frontend | Bootstrap 5, Chart.js |
| Agent | Python 3 (stdlib only) |
| Backup engine | BorgBackup |
| Offsite sync | rclone |
MIT License - Please consider supporting the author in the sidebar. This was an internal tool of Falcon Internet, originally built in 2018. Since then, it's been completely re-written and re-organized into a feature rich platform.
