Borg UI update: file history, restore checks, and guided backups for self-hosted apps
Hi r/selfhosted. I maintain Borg UI , a self-hosted web interface for BorgBackup . I shared the first release and 2.0 here. A lot of what I've built since came from those threads. Borg is excellent at encrypted, deduplicated backups. Day to day, I wanted clearer answers: did last night's backup run, where's the older version of that file, and what would pruning actually delete? Borg UI started by making Borg easier to use from a browser. It now adds restore checks, backup plans, and history across archives too. Borg UI is AGPL and the core is free : backups, schedules, pruning, archive browsing, restores, restore checks, notifications, SSH machines, agents, and every security feature (passkeys and SSO moved to free after your feedback last time). Pro covers the extras some homelabs grow into, marked (Pro) below. It funds the project (I'm one developer). Two promises, in writing : nothing free ever moves behind Pro, and the plan gates are in the public code, so you can see exactly what's gated. Since 2.0: (Pro) You can search for a file across a repository's archives, see its older versions, restore the one you want, and compare two archives without extracting them. Prune preview shows which old backups a retention rule would remove, including files that would lose their last remaining copy. Quick Start now recognises apps like Immich , Vaultwarden and Paperless-ngx . It finds their data folders and suggests exclusions or pre-backup checks where needed. Backup Plans put sources, schedules and destinations together. They can cover folders, databases (Pro) or Docker containers (Pro), write to multiple Borg repositories, and mirror to cloud storage (Pro). For another machine, Borg UI can pull over SSH, or an agent on Linux or macOS can connect out without an inbound port. Backups can also start when a laptop comes online instead of missing a fixed schedule. Restore checks can extract a test file, selected paths or the latest full archive, on a schedule or after a backup. A calendar marks missed days; growth and activity views show what's been happening. If the Borg UI server dies, your backups are still ordinary Borg repositories that you can restore with Borg itself. The disaster recovery guide covers backing up Borg UI's own /data and rebuilding the instance; there's also a scriptable configuration export. Security has had a lot of attention: passkeys, TOTP and OIDC login, encrypted stored secrets, SSH host verification and tighter access checks. I also documented what Borg UI stores and sends . If you already run Borg UI, please update to the latest release . Recent releases include security and upgrade fixes. Where it runs: Docker (amd64, arm64, armv7), or directly on Debian and Ubuntu on bare metal, a VM or an LXC. There are Unraid and Portainer templates, a community Proxmox LXC script , and provider guides for Hetzner Storage Box, BorgBase, rsync.net , B2 and others. I use AI tools while building Borg UI. Every change goes through the test suite and automated reviews (Codex, Claude and CodeRabbit), and I review it myself before it ships. What's one backup or recovery problem you'd like me to tackle next? I'll be reading the replies. GitHub: github.com/karanhudia/borg-ui Docs: docs.borgui.com