{"id":43039429,"url":"https://github.com/marcpope/borgbackupserver","last_synced_at":"2026-04-23T07:02:21.090Z","repository":{"id":335220391,"uuid":"1144805468","full_name":"marcpope/borgbackupserver","owner":"marcpope","description":"A GUI Manager for Multiple Borg Endpoints. Manage backup schedules, restores and much more.","archived":false,"fork":false,"pushed_at":"2026-04-15T01:49:52.000Z","size":40676,"stargazers_count":120,"open_issues_count":10,"forks_count":7,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-04-15T03:26:16.324Z","etag":null,"topics":["backup","backup-manager","borg-backup","borgbackup","borgbackup-gui","borgbackup-web-ui","self-hosted","web-gui"],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/marcpope.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"marcpope"}},"created_at":"2026-01-29T04:16:44.000Z","updated_at":"2026-04-15T01:49:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"d49d282f-bee2-4214-943b-b5740e34ef49","html_url":"https://github.com/marcpope/borgbackupserver","commit_stats":null,"previous_names":["marcpope/borgbackupserver"],"tags_count":118,"template":false,"template_full_name":null,"purl":"pkg:github/marcpope/borgbackupserver","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcpope%2Fborgbackupserver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcpope%2Fborgbackupserver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcpope%2Fborgbackupserver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcpope%2Fborgbackupserver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/marcpope","download_url":"https://codeload.github.com/marcpope/borgbackupserver/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcpope%2Fborgbackupserver/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32169657,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-23T02:19:40.750Z","status":"ssl_error","status_checked_at":"2026-04-23T02:17:55.737Z","response_time":53,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["backup","backup-manager","borg-backup","borgbackup","borgbackup-gui","borgbackup-web-ui","self-hosted","web-gui"],"created_at":"2026-01-31T09:04:08.735Z","updated_at":"2026-04-23T07:02:21.058Z","avatar_url":"https://github.com/marcpope.png","language":"PHP","funding_links":["https://github.com/sponsors/marcpope"],"categories":[],"sub_categories":[],"readme":"# Borg Backup Server\n\n![Dashboard](https://www.borgbackupserver.com/borg-backup-server.png)\n\nA self-hosted web application for centrally managing [BorgBackup](https://borgbackup.readthedocs.io/) 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.\n\n**View Demo **\nThe developer has made a system for provisioning Demos at no cost here: [Borg Backup Server](https://www.borgbackupserver.com/)\n\n## Features\n\n- **Agent-based architecture** — endpoints check-in with the server for tasks, the server doesn't need ssh access to the agent\n- **SSH with append-only security** — agents can only backup or restore, can't delete or prune\n- **FULL Encryption** - Software keeps everything encrypted at rest for enhanced security\n- **Setup wizard** — browser-based installer configures database, admin account, and storage quicky\n- **Real-time progress** — live progress bars during backups with detailed logging\n- **File-level restore** — catalog data is saved in ClickHouse DB for fast search and file-tree without having to lock the borg repo\n- **Download archives** — extract and download files as .tar.gz directly from the browser\n- **Database plugins** — MySQL and PostgreSQL pre-dumps with automatic restore back into the database as a copy or replacement\n- **Flexible scheduling** — hourly to monthly intervals, multiple plans per client, manual trigger\n- **Backup templates** — pre-configured and customizeable directory sets for common server roles\n- **Retention policies** — per-plan prune settings (hourly/daily/weekly/monthly/yearly)\n- **S3 offsite sync** — mirror repositories to S3-compatible storage (AWS, Wasabi, Backblaze B2) for enahnced compliance\n- **Remote Storage Repos** — wizards to backup to BorgBase, Hetzen and rsync.net (or any SSH provider that provides borg)\n- **Repo Management** - Perform hard unlocks, repair, re-catalog, and other repo specific features\n- **Nightly Backup Reports** - get an email every day with backup stats\n- **Multi-user** — custom role-based access with various roles\n- **Two-factor authentication** — TOTP-based 2FA with recovery codes, hooks into your 2FA of choice\n- **Queue management** — concurrent job limits, cancel/retry, progress tracking\n- **Encrypted passphrases** — repository passwords encrypted at rest (AES-256-GCM)\n- **Apprise alerts** — custom push notifications to over 100 different notification services (Slack, Pushover, etc)\n- **Extensive Dashboard** — backup charts, server stats, active jobs, see everything at a glance\n- **Server self-backup** — daily automated backup of BBS itself with optional S3 sync offsite with restore scripts\n- **Automatic Self-Upgrade** - one-click upgrade of the software plus all the agents. Also manage borg versions of client machines\n  \n---\n\n## Quick Start\n\nStart with a fresh **Ubuntu 22.04+** server, then run:\n\n```bash\ncurl -sO https://raw.githubusercontent.com/marcpope/borgbackupserver/main/bin/bbs-install\nsudo bash bbs-install --hostname backups.example.com\n```\n\nThe installer handles everything — packages, Apache, MySQL, SSL, and cron. When it finishes, open the URL and the setup wizard walks you through the rest.\n\nSee the **[full documentation on the Wiki](https://github.com/marcpope/borgbackupserver/wiki)** for installation details, agent setup, configuration, and usage guides.\n\n---\n\n## Docker\n\nPre-built images are published to [Docker Hub](https://hub.docker.com/r/marcpope/borgbackupserver) on every release:\n\n```bash\ncurl -sO https://raw.githubusercontent.com/marcpope/borgbackupserver/main/docker-compose.yml\ndocker compose up -d\n```\n\nGet admin credentials from the container logs:\n\n```bash\ndocker compose logs bbs\n```\n\nOpen `http://localhost:8080` and log in. See the **[Docker Installation guide](https://github.com/marcpope/borgbackupserver/wiki/Docker-Installation)** for full configuration, storage, reverse proxy, and update documentation.\n\n---\n\n## Documentation\n\nAll documentation lives on the **[GitHub Wiki](https://github.com/marcpope/borgbackupserver/wiki)**:\n\n- [System Requirements](https://github.com/marcpope/borgbackupserver/wiki/System-Requirements)\n- [Installation](https://github.com/marcpope/borgbackupserver/wiki/Installation)\n- [Getting Started](https://github.com/marcpope/borgbackupserver/wiki/Getting-Started)\n- [Agent Setup](https://github.com/marcpope/borgbackupserver/wiki/Agent-Setup)\n- [Backup Plans](https://github.com/marcpope/borgbackupserver/wiki/Backup-Plans)\n- [Restoring Files](https://github.com/marcpope/borgbackupserver/wiki/Restoring-Files)\n- [Plugins](https://github.com/marcpope/borgbackupserver/wiki/Plugins)\n- [S3 Offsite Sync](https://github.com/marcpope/borgbackupserver/wiki/S3-Offsite-Sync)\n- [Settings](https://github.com/marcpope/borgbackupserver/wiki/Settings)\n- [CLI Reference](https://github.com/marcpope/borgbackupserver/wiki/CLI-Reference)\n- [Troubleshooting](https://github.com/marcpope/borgbackupserver/wiki/Troubleshooting)\n- [Contributing](docs/CONTRIBUTING.md)\n\n---\n\n## Architecture\n\n\u003cimg width=\"100%\" alt=\"Borg Backup Server Architecture\" src=\"https://github.com/user-attachments/assets/5c9c2b9a-d639-43ba-b4e3-1406d8aa284c\" /\u003e\n\n\n- **HTTPS** for control plane (task polling, progress, status)\n- **SSH** for data plane (borg backup/restore via `borg serve`)\n- **Append-only** — agents cannot delete existing archives; pruning runs server-side\n\n---\n\n## Tech Stack\n\n| Layer | Technology |\n|---|---|\n| Backend | PHP 8.1+ (no framework) |\n| Database | MySQL 8.0 |\n| Frontend | Bootstrap 5, Chart.js |\n| Agent | Python 3 (stdlib only) |\n| Backup engine | BorgBackup |\n| Offsite sync | rclone |\n\n---\n\n## License\n\n[MIT License](LICENSE)\n\n---\n\n## Support\n\nThis project was the love of years of refined work and production use within a small web hosting company. Consider making a small [monthly or one-time donation](https://github.com/sponsors/marcpope) to help keep the project going.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcpope%2Fborgbackupserver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarcpope%2Fborgbackupserver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcpope%2Fborgbackupserver/lists"}