unsubbed.co

Borg UI

Released under AGPL-3.0, Borg UI provides modern web interface for Borg Backup on self-hosted infrastructure.

BorgBackup is one of the best backup tools ever written. The terminal is not. Borg UI tries to fix that.

TL;DR

  • What it is: An open-source (AGPL-3.0) web interface for BorgBackup — replaces terminal commands with a browser-based dashboard for creating, scheduling, and restoring backups [README].
  • Who it’s for: Homelab operators, NAS users, and technically comfortable self-hosters who want BorgBackup’s deduplication and encryption without memorizing its CLI syntax. Not for non-technical founders who’ve never touched Docker.
  • Cost savings: BorgBackup itself is free. Borg UI is free. You pay for whatever storage you back up to — a VPS, a NAS, or a remote SSH target. There’s no SaaS alternative charging you per GB through a UI layer.
  • Key strength: Genuinely zero-config deployment — one docker run command, access at port 8081, and you’re in. Redis caching delivers fast archive browsing after initial indexing [README][5].
  • Key weakness: Only one independent user review found at time of writing [5], and it confirms that browsing large archives is slow — matching Vorta’s performance. The project has 1,062 GitHub stars and one maintainer. If you’re putting critical backup management behind this, bet accordingly.

What is Borg UI

BorgBackup is a command-line deduplicating backup program. It’s fast, efficient, and encrypts everything by default. It’s also a tool that requires you to remember flag sequences like borg create --compression lz4 --exclude-pattern 'sh:**/.git' repo::archive /data to do something as simple as “back this up with compression.” For most people, that’s a hard stop.

Borg UI wraps BorgBackup in a React/FastAPI web application that you run as a Docker container alongside your data. You access it through a browser, point it at your directories, configure repositories, set schedules, and watch backups run in real time. The underlying engine is still BorgBackup — Borg UI doesn’t reinvent backup logic, it just removes the terminal requirement.

The project is built and maintained by Karan Hudia, a full-stack developer who explicitly notes in the README that he uses Claude Code as a development assistant and personally reviews all AI-generated code before merging [README]. The AGPL-3.0 license means the source is open for inspection and modification, but any modifications you distribute must also be open-sourced — a meaningful distinction from MIT if you’re building on top of this.

As of this review, the project sits at 1,062 GitHub stars with CI/CD badges showing passing builds and test coverage tracked via Codecov [README].


Why People Choose It

There’s a narrow but real audience for this tool: people who already know BorgBackup is the right answer for their backup needs, but who find the CLI a daily friction point.

The only independent user review found was from odd.blog [5], where the author had been using BorgBackup via Borgmatic for photo archive backups after a macOS Time Machine failure corrupted a 12TB drive. They compared Borg UI directly against Vorta (the desktop GUI alternative) and landed on an honest assessment: both are slow when browsing large archives, but Borg UI adds a “spinning animation in a modal popup to stop you from trying to restore twice” — a small but practical UX win. The reviewer runs Borg UI as a Docker container with intentionally restricted directory access, shutting it down when not actively restoring files.

That pattern — run it when you need it, shut it down otherwise — is worth understanding. Borg UI isn’t designed to be a continuously monitored backup dashboard for your whole company. It’s closer to a management interface you open when you need to review archives, restore a specific file, or adjust schedules.

The AlternativeTo listing for BorgBackup alternatives [2] shows the competitive field: Duplicati, Restic, Kopia, UrBackup, and Vorta appear as the main alternatives. None of them match BorgBackup’s deduplication efficiency for large repositories, which is why people stick with Borg despite the CLI learning curve — and why a UI layer like this has a real audience.


Features

Based on the README and documentation site, here’s what Borg UI actually includes:

Core backup management:

  • Create and run backups with real-time progress: current file being processed, transfer speed in MB/s, original vs. compressed vs. deduplicated sizes, estimated time remaining [README]
  • Repository management supporting local storage, SSH, and SFTP connections [README]
  • Encryption configuration: repokey and keyfile modes [README]
  • Compression algorithm selection: lz4, zstd, zlib, lzma, auto, obfuscate [README]
  • Source directory selection, exclude patterns, and custom Borg flags [README]
  • Import existing repositories or create new ones through a step-by-step wizard [README]

Archive browsing and restore:

  • Browse any backup archive with file-level restore [README]
  • Redis caching for “600x faster” archive browsing — without Redis, large repositories with thousands of files will be slow to index, as the odd.blog review confirms [README][5]
  • Navigate backup history and restore individual files or entire directories [README]

Scheduling:

  • Visual cron builder for automated backup schedules [README]
  • Multi-repository backup configuration per schedule [README]
  • Pre/post script hooks [README]
  • Automatic pruning and compacting [README]
  • Execution history with detailed logs [README]

Notifications:

  • 100+ notification services via Apprise: Email, Slack, Discord, Telegram, Microsoft Teams, Pushover, Pushbullet, ntfy, Twilio, AWS SNS [README][website]
  • Per-repository notification preferences [README]
  • Configurable templates for backup start, success, failure, and warnings [README]

SSH key management:

  • Built-in SSH key generation and management for remote repository connections [README]

System:

  • Zero-config deployment — auto-generates SECRET_KEY on first run [README]
  • Multi-platform Docker images: amd64, arm64, armv7 [README]
  • Runs as non-root user with configurable PUID/PGID [README]
  • JWT authentication [README]
  • Swagger API documentation after installation [README]
  • Responsive mobile design [README]

Pricing: Self-Hosted Math

Borg UI has no pricing tiers, no SaaS plans, and no per-feature gating. It’s free software under AGPL-3.0. The cost model is entirely infrastructure:

Borg UI itself: $0. Docker image is public on Docker Hub at ainullcode/borg-ui [README].

BorgBackup: $0. The backup engine is free and open source.

What you actually pay for is storage and compute:

  • A VPS to run the container: $5–10/month on Hetzner or Contabo for a 2–4GB RAM instance
  • Backup destination storage: Backblaze B2 ($6/TB/month), an SSH-accessible server, a local NAS, or USB drives attached to the host

Comparison against backup SaaS alternatives:

OptionMonthly costWho controls your data
Backblaze Personal Backup$99/year (~$8.25/mo)Backblaze
Crashplan for Small Business$10/device/monthCrashplan
Backblaze B2 + Borg UI~$0.006/GB storage onlyYou
Local NAS + Borg UI~$0 ongoingYou

The cost savings are real but the math depends heavily on your storage volume. At 1TB of backup data on Backblaze B2, you’re looking at $6/month in storage costs with full control versus $8.25/month for a managed consumer service. At 10TB, the gap widens considerably.

The honest caveat: Borg UI doesn’t replace a backup destination — it only replaces the management interface. You still need somewhere for the backups to live.


Deployment Reality Check

The quick-start path is one command:

docker run -d \
  --name borg-web-ui \
  -p 8081:8081 \
  -v borg_data:/data \
  -v borg_cache:/home/borg/.cache/borg \
  -v /home/yourusername:/local:rw \
  ainullcode/borg-ui:latest

Access at http://localhost:8081. Default login is admin / admin123 [website].

That last detail is the first thing to fix after deployment. The documentation explicitly warns to change the default password immediately [website].

What the Docker Compose setup needs:

  • The borg-ui container itself
  • A Redis container for archive caching (without it, browsing large repos is noticeably slow [README][5])
  • Volume mounts for the data directory, cache, and whatever directories you’re backing up

Volume mount security is non-trivial. The documentation explicitly warns against mounting your full filesystem (/:/local:rw) and recommends mounting only specific directories [website]. The odd.blog reviewer structured this correctly — only backup repos and a restore directory, container shut down when not in use [5]. This is the right operational pattern for a tool with this level of access to your filesystem.

What can go sideways:

  • Redis setup is an extra step the quick-start glosses over. Without it, archive browsing on large repositories is slow enough to be frustrating [README][5].
  • HTTPS requires a reverse proxy (nginx, Caddy, Traefik) — the container only speaks plain HTTP [website]. Not optional if this is exposed beyond localhost.
  • The project is maintained by one person. The GitHub Actions CI is green, test coverage is tracked, and the README is honest about using Claude Code assistance — all positive signals. But single-maintainer projects carry inherent bus-factor risk for a tool you’re trusting with backup operations.

Realistic time estimate for someone with Docker experience: 15–30 minutes to a working instance with Redis. For someone following documentation on a fresh VPS with a domain and HTTPS: 1–3 hours.


Pros and Cons

Pros

  • Genuinely zero-config core. The auto-generated SECRET_KEY and single-command Docker start work as advertised. No YAML configuration file required to get your first repository running [README].
  • Redis-backed archive browsing. The 600x claim is marketing math, but the underlying feature is real — file listing performance degrades predictably without caching for large archives, and Borg UI solves this correctly at the infrastructure level [README].
  • 100+ notification services via Apprise. This is a substantial integration surface without writing a single line of code. Discord, Telegram, Slack, email, push notifications — covered [README].
  • Live backup progress. Watching actual deduplication stats in real time (original size vs. compressed vs. deduplicated) is useful and not common in Borg frontends [README].
  • Multi-architecture Docker images. amd64, arm64, and armv7 support means it runs on a Raspberry Pi or ARM NAS without cross-compilation [README].
  • Honest development transparency. The Claude Code acknowledgment in the README, combined with the statement that “architecture decisions, security practices, and testing are human-driven,” is more candid than most projects. Open source for community review [README].
  • AGPL-3.0 source. The backup management code is fully auditable, which matters when a tool has read/write access to your entire home directory.

Cons

  • One independent user review exists at time of writing [5]. The project is real and functional, but there’s thin external validation. If you’re making a production backup decision, that’s a meaningful data gap.
  • Archive browsing is still slow on large repos without Redis — and even with Redis, the odd.blog reviewer describes the experience as “just as slow as Vorta” for initial loads on big archives [5]. Set correct expectations.
  • Default credentials are a security landmine. admin / admin123 is trivially predictable, and the container exposes a filesystem management interface [website]. Change this before anything else.
  • Single maintainer. No org backing, no commercial license revenue to fund ongoing development. Check recent commit activity before depending on it.
  • AGPL-3.0, not MIT. If you’re building a product or service on top of this, the copyleft terms apply. Read the license before embedding this in something commercial.
  • No built-in HTTPS. Requires a reverse proxy setup that the quick-start documentation doesn’t include. Easy to forget, problematic if you expose the port publicly [website].
  • No multi-user team support visible in documentation. Single-admin setup fits homelab use; it doesn’t fit a team of five sharing backup management.

Who Should Use This / Who Shouldn’t

Use Borg UI if:

  • You already use BorgBackup and find yourself avoiding archive browsing because the CLI is friction.
  • You’re running a homelab or NAS and want a browser interface for backup management rather than SSHing in every time.
  • You’re comfortable with Docker Compose and can handle setting up Redis and a reverse proxy.
  • You want notification alerts across Discord, Slack, or Telegram without writing glue code.

Skip it (use Vorta instead) if:

  • You’re on macOS or Linux desktop and prefer a native application over a web UI. Vorta is a proper desktop app with similar functionality [2][5].
  • You don’t want to maintain a Docker container just to manage backups.

Skip it (use Borgmatic instead) if:

  • You’re comfortable with YAML configuration and just want BorgBackup scheduled and automated without a UI. Borgmatic is mature, well-documented, and handles most of what Borg UI does through config files [5].

Skip it (use Duplicati or Kopia instead) if:

  • You’re not already committed to BorgBackup. Duplicati has a more mature web UI with broader cloud storage support. Kopia has a clean GUI and strong performance [2].

Not for you if:

  • You’ve never used Docker and don’t have someone technical to help with setup.
  • You need multi-user access control with distinct permissions per repository.
  • You need enterprise backup features: policy management, compliance reporting, centralized fleet management.

Alternatives Worth Considering

From the BorgBackup alternatives data and the broader self-hosted backup category [2]:

  • Vorta — The other BorgBackup GUI. Desktop application (GPL-3.0) for macOS and Linux. No Docker required, integrates with your desktop environment. Slower on large archives like Borg UI, but no server to maintain [2][5].
  • Borgmatic — CLI wrapper for BorgBackup with YAML configuration. Not a UI, but handles scheduling, multiple repositories, and hooks cleanly. Many Borg users land here before looking for a web interface [5].
  • Restic — Different backup engine with its own ecosystem of frontends. Apache-2.0 license. If you’re not already on BorgBackup, worth evaluating Restic before committing [2].
  • Kopia — Modern open-source backup tool with desktop GUI and web interface built in. Apache-2.0. Supports local, S3, Azure, GCS, SFTP repositories. A serious alternative if you’re choosing a backup stack from scratch [2].
  • Duplicati — Web-based backup client with cloud service support. Freemium open source. More mature web UI than Borg UI, broader cloud integration, but uses its own backup format rather than BorgBackup’s [2].
  • UrBackup — Client/server backup system with both image and file backup support. Free open source. Better fit if you’re managing backups across multiple machines rather than a single server [2].

Bottom Line

Borg UI exists for a specific, honest reason: BorgBackup is excellent and its CLI is not beginner-friendly, so someone built a web UI. What you get is a Docker container that wraps Borg’s power in a browser interface, adds scheduling, real-time progress, and 100+ notification integrations, and stays out of your way. The zero-config deployment is real and it works.

What you don’t get is a mature, well-reviewed project with commercial backing. The independent review corpus is thin — one blog post [5] — and the author’s conclusion was measured: worth a look, works as described, archive browsing is slow on large repos. That’s an honest assessment from someone who tested it in production.

If you’re already using BorgBackup and the terminal is the only thing slowing you down, Borg UI is worth an afternoon. If you’re choosing a backup stack from scratch, evaluate Kopia or Restic first — they have broader ecosystems and more review data. And whatever you run, automate it: as the odd.blog reviewer put it, “don’t depend on either of them to do your backups. That should be automated so you don’t need to remember to do it” [5].


Sources

  1. AlternativeTo — Ubuntu Software page (general self-hosted app listings). https://alternativeto.net/platform/ubuntu/
  2. AlternativeTo — BorgBackup Alternatives (top backup clients with community ratings). https://alternativeto.net/software/borg-backup/
  3. Parth Shah, XDA Developers“6 self-hosting apps I wish I knew sooner” (Jun 26, 2025). https://www.xda-developers.com/self-hosting-apps-wish-knew-sooner/
  4. Ayush Pande, XDA Developers“4 reasons you should turn your NAS into a self-hosting rig” (Oct 17, 2025). https://www.xda-developers.com/4-reasons-you-should-turn-your-nas-into-a-self-hosting-rig/
  5. odd.blog“borg-ui” (user review comparing Borg UI and Vorta for BorgBackup archive browsing). https://odd.blog/tag/borg-ui/

Primary sources:

Features

Integrations & APIs

  • Discord Integration
  • Slack Integration
  • Telegram Integration

Automation & Workflows

  • Scheduled Tasks / Cron

Data & Storage

  • Backup & Restore

Analytics & Reporting

  • Metrics & KPIs