Release history
borg-ui releases
Replace complex Borg Backup terminal commands with a beautiful web UI. Create, schedule, and restore backups with just a few clicks.
All releases
87 shown
- Harden OIDC SSO flow (477d01a6)
- Harden enterprise OIDC and proxy auth flows (fdd029d4)
- Add scheduled restore checks
- Add timestamp tooltips to dashboard and job tables
- Add timezone-aware schedule handling
Full changelog
What's Changed
- Add 2.0.9 release announcements (822b934d)
- Fix frontend audit vulnerabilities (f58f910d)
- Fix restore check unit test expectations (5bc04c2b)
- Add restore check notifications (fbb6766d)
- Support restore checks for observe-only repos (921990de)
- Improve restore check canary UX (54e76a89)
- Add scheduled restore checks (4835357c)
- Fix restore extract command regressions (9094a11c)
- Document Borg UI script variables (4e9e6411)
- Add explicit restore path layouts (eddbba81)
- Add timestamp tooltips to dashboard and job tables (71f5c3c8)
- Add timezone-aware schedule handling (12930939)
- Standardize API datetime serialization (fafef234)
- Fix last backup timezone normalization (beaea39d)
- ci(deps): bump softprops/action-gh-release from 2 to 3 (#449) (520c757c)
- ci(deps): bump actions/github-script from 7 to 9 (#453) (71e4a088)
- ci(deps): bump docker/metadata-action from 5 to 6 (#450) (173c6872)
- ci(deps): bump docker/setup-buildx-action from 3 to 4 (#452) (8cc7579d)
- ci(deps): bump dependabot/fetch-metadata from 2 to 3 (#451) (ac9133f2)
- Fix stale scheduled check handling (83b80659)
- fix: satisfy users tab lint (96d3b261)
- feat: harden oidc sso flow (477d01a6)
- Harden enterprise OIDC and proxy auth flows (fdd029d4)
Docker Images
Published to Docker Hub:
docker pull ainullcode/borg-ui:2.0.9
docker pull ainullcode/borg-ui:latest
Full Changelog: https://github.com/karanhudia/borg-ui/compare/v2.0.8...v2.0.9
Minor fixes and improvements.
Full changelog
What's Changed
- clarify licensing activation opt-out docs (e2b1b445)
- unify scheduled job dispatch and add check history (897bd8c7)
- chore(deps): bump react-i18next from 16.6.5 to 17.0.2 in /frontend (#414) (9a958ddc)
Docker Images
Published to Docker Hub:
docker pull ainullcode/borg-ui:2.0.8
docker pull ainullcode/borg-ui:latest
Full Changelog: https://github.com/karanhudia/borg-ui/compare/v2.0.7...v2.0.8
- SSH keepalive for backup jobs
- Backup warning notification setting
Full changelog
What's Changed
- clarify host mount propagation for archive mounts (1033ec72)
- add missing notification warning locales (e3332723)
- add ssh keepalive to backup jobs (0c701f94)
- fix stale maintenance recovery on startup (76e02bd3)
- fix notification dialog reset on save (05f7707b)
- add backup warning notification setting (ff596bd9)
- fix manual backup recent jobs filtering (a61917df)
- remove legacy restore/archive browse surface (ceeeb61b)
- fix maintenance background job session and sqlite races (b257a673)
Docker Images
Published to Docker Hub:
docker pull ainullcode/borg-ui:2.0.7
docker pull ainullcode/borg-ui:latest
Full Changelog: https://github.com/karanhudia/borg-ui/compare/v2.0.6...v2.0.7
- License corrected to AGPL v3
- Enterprise auth bundle removed from plan drawer
- Proxy authentication hardened and centralized
- Dependency audit findings fixed
- Explicit insecure no-auth mode
- Passkeys now available in community edition
- Compact completion state shared across Borg versions
Full changelog
What's Changed
- fix: make announcement modal theme-aware for light mode (9a883837)
- Add explicit insecure no-auth mode (14a2397f)
- Harden proxy auth and centralize auth requests (c406bb06)
- improve proxy auth error screen UI consistency (74ca9397)
- improve notification test failure messages (1a270ec5)
- fix dependency audit findings (cc6619aa)
- fix backup maintenance cancellation and recovery (40a87452)
- Remove enterprise auth bundle from plan drawer (902d12e4)
- Move passkeys to community edition (f004f653)
- docs: correct license to AGPL v3 (ceeb1971)
- docs: add licensing page covering tiers, full access period, and activation service (683416ce)
- Share compact completion state across Borg versions (fc5f3658)
Docker Images
Published to Docker Hub:
docker pull ainullcode/borg-ui:2.0.6
docker pull ainullcode/borg-ui:latest
Full Changelog: https://github.com/karanhudia/borg-ui/compare/v2.0.5...v2.0.6
- Mounts management tab redesigned to match archives design language
- Passkey verification failure handling improved
- Local account TOTP and passkeys support
- Profile menu redesign with hero header and plan card
- Account tab redesign with role badges and simplified header
- Add local account TOTP and passkeys
- Profile menu redesign with hero header, plan card, and settings navigation
- Account tab redesign with role badges
- Archive table redesigned with polished chip-based layout and improved mobile support
- Added missing Borg 2 beta feature locale keys
- Fixed archive browse caching and backup jobs stuck after completion
- Support for partial Borg 2 checks with clarified timed check UX
- View Archive action added to backup job tables
- Localized plan drawer content
Full changelog
What's Changed
- test: cover early backup terminal state publication (d4765fc)
- Add View Archive action to backup job tables (0899f93)
- Fix check dialog typecheck import (7a0950e)
- Support partial Borg 2 checks and clarify timed check UX (969d30f)
- fix: preserve local borg2 call shape and restore cleanup (2f80aeb)
- refactor: simplify borg env lifecycle in v2 paths (b5359ba)
- test: expand smoke coverage for ssh borg flows (5e79a99)
- fix: move eye icon to label header for public key and fingerprint fields (f0695b0)
- fix: move info icon inline with Mount Archive dialog header (3fd4e2a)
- refactor: centralize borg ssh env handling (2be8dd5)
- Localize plan drawer content (a9bfc3b)
Docker Images
Published to Docker Hub:
docker pull ainullcode/borg-ui:2.0.3-beta.1
docker pull ainullcode/borg-ui:latest
Full Changelog: https://github.com/karanhudia/borg-ui/compare/v2.0.2...v2.0.3-beta.1
- Add secured metrics settings and monitoring dashboards
- Redesign plan drawer with Community Edition features
- Improve archive browser loading with skeleton rows and persistent breadcrumbs
- Schedule wizard review step redesigned with improved mobile padding
- Wizard review step redesigned with backup flow preview
- Repository wizard height stability improved
Full changelog
What's Changed
- fix(frontend): allow analytics consent during password-required state (354c200)
- fix(account): show password setup once and prioritize password action (03f2d9a)
- fix(frontend): guard analytics install id generation (9aae573)
- Fix prune dialog test for styled output (a9a7d88)
- Fix Borg v2 stats refresh after prune (ce0fbdd)
- docs: commit README screenshots and logos to repo (0072e77)
- remove unused archivesAPI import from Archives page (1bf397f)
- fix Would prune lines not being colored in dry run output (3da0eb4)
- Update 2.0.0 announcement copy (80a18fe)
- Replace dark remote machines README screenshot (f069251)
- Keep repository wizard height stable (cbea3ff)
- improve README top section flow and note placement (e41767d)
- docs: add enterprise README section (db800f9)
- docs: simplify README copy (24310a6)
- docs: polish README presentation (d72c685)
- docs: refine README assets and links (88403bd)
- chore: ignore local README screenshots (e1f078f)
- Fix frontend wizard review tests (0550f6b)
- docs: refresh README for 2.0 release (f488d3b)
- Fix frontend lint issues (b4c8f60)
- refine WizardStepScheduleReview code formatting and layout (786d5ce)
- redesign schedule wizard review step and fix mobile padding (05254ad)
- redesign wizard review step and backup flow preview (7f16780)
- Add Umami analytics for announcements (593cf08)
- Fix Borg v2 encryption label in repo review (ab398db)
Docker Images
Published to Docker Hub:
docker pull ainullcode/borg-ui:2.0.1
docker pull ainullcode/borg-ui:latest
Full Changelog: https://github.com/karanhudia/borg-ui/compare/v2.0.0-beta.2...v2.0.1
- Dark theme UI overhaul with split-panel login and responsive design
- Borg 2 repository support with version-aware operations
- Mobile-optimized responsive dialogs and layouts throughout
- Redesigned running backup progress card
- Passphrase visibility toggle in wizard security and review steps
- Unified log viewer with copy button functionality
- Improved skeleton loading states reducing layout shift
- Redesigned archives page with two-panel layout
- Mobile-optimized login screen and responsive dialogs
- OTA updates worker for automatic deployments
- Licensing sync defaults hardened
Full changelog
What's Changed
- Release 2.0.0 alpha 4 (7050b30)
- Add OTA updates worker (3e0199c)
- fix(dev): add activation public key default to dev compose (875106b)
- fix(ui): move full access notice to sticky footer in PlanInfoDrawer (c04bbbf)
- Harden startup licensing sync defaults (3a17f32)
- Add script status regressions and stabilize v2 gating tests (313c7cb)
- Fix stale next_run when re-enabling schedules (990a36f)
Docker Images
Published to Docker Hub:
docker pull ainullcode/borg-ui:2.0.0-alpha.4
docker pull ainullcode/borg-ui:latest
Full Changelog: https://github.com/karanhudia/borg-ui/compare/v2.0.0-alpha.3...v2.0.0-alpha.4
- Comprehensive UI redesign with semantic colors and responsive dialogs
- Mobile-first layouts with bottom sheets and optimized controls
- New licensing and activation system integration
- Migration safety hardening
- SSH key utility
- Metadata preservation
- CLI password reset
- Reverse proxy subfolder support
- JSON syntax highlighting in TerminalLogViewer
- Archive name sanitization utility
- Italian locale support
- Complete i18n migration for all error messages
- Spanish and German translations
- Locale parity validation
Fixed database migration to handle edge cases with extra SSH connection columns. Added tests for foreign key cleanup during deletion.
Fixed foreign key constraint violations when deleting SSH connections by nulling references first. Code formatting cleanup.
Fixed migration robustness against stale tables and improved MQTT settings UI layout and icon visibility.
Added missing MQTT base topic column to database migration to fix MQTT configuration issues.
- MQTT & Home Assistant integration (beta)
- Keyfile import/export improvements
- Notification fix
Updated major dependencies including bcrypt 5.0.0 and other packages for compatibility. Fixed backup service timeout settings and test coverage configuration.
- SSH URL sanitization in notifications
- Admin-only break lock restriction
- Repository management
- Archive operations
- Restore functionality
- SSH path prefix
- View logs for jobs
- Mount improvements
Fixed mount cleanup issues and file selection problems. Resolved schedule duplicate repository errors. Improved UI stability and cleanup operations.
- Archives pagination
- Improved lock detection
- Script editing
- Script parameters
- Improved parameter handling
- Persistent pagination settings
- Optimistic UI updates
- Fixed table layout
- FastAPI 0.118.0 to fix Starlette CVEs
- Updated vulnerable dependencies to fixed versions
- Automated dependency management and security scanning
- Keyfile upload for repository import
- Handle root directory in SSHFS backups
- Repository sorting, grouping, and search
- Show exclude patterns for remote sources
- Preserve original paths in SSHFS backups
- Prometheus metrics endpoint
- Bypass-lock beta setting
- Restore speed/ETA tracking
- Restore job actions
- Admin-only job deletion functionality
- Job name support in backup and restore notification calls
- Automatic notification JSON simplification for json:// webhooks
Full changelog
What's Changed
- fix: escape Liquid template syntax in notifications.md (87947c6)
- chore: fix prettier check (15cc686)
- fix: resolve frontend test linting issues (db22c67)
- fix: resolve Jekyll build issues in notifications.md (3c2e466)
- chore: fix prettier check (909b57d)
- feat: add job name support to backup and restore notification calls (9d5b8ab)
- feat: add admin-only job deletion functionality (3575b65)
- feat: simplify notification JSON feature - automatic for json:// webhooks (9248f05)
Docker Images
Published to Docker Hub:
docker pull ainullcode/borg-ui:1.57.0
docker pull ainullcode/borg-ui:latest
Full Changelog: https://github.com/karanhudia/borg-ui/compare/v1.56.0...v1.57.0
- Bypass-lock support for file downloads and restores from read-only repositories
- Auto-initialize Borg repository when path points to non-existent location
Full changelog
What's Changed
- fix: add bypass-lock support for file downloads and restores from read-only repos (6a71905)
- feat: initialize borg repository when changing path to non-existent location (31e698b)
Docker Images
Published to Docker Hub:
docker pull ainullcode/borg-ui:1.55.2
docker pull ainullcode/borg-ui:latest
Full Changelog: https://github.com/karanhudia/borg-ui/compare/v1.55.1...v1.55.2
Fixes SSH repository path corruption and wizard editing issues in multi-repo environments.
- Prevent mixed local/remote source directories in repository forms
## What's Changed * fix: allow importing relocated repositories (7e784dd)
- Environment variables for pre- and post-backup scripts
Full changelog
What's Changed
- fix: resolve pytest-asyncio event loop closed errors in CI (5257d38)
- feat: add environment variables for pre/post backup scripts (218ea48)
- test: add comprehensive frontend component tests (b90c07d)
- fix: dashboard repo health filtering and stats refresh time format (23928ef)
- fix: wizard step mapping and add comprehensive tests (539ce01)
- fix: support restricted shells for SSH storage info collection (fc43e8a)
- fix: add padding to wizard content to prevent label clipping (a746429)
- chore: fix prettier check (4ac2153)
- test: add CommandPreview tests to meet branch coverage threshold (36dd4e3)
- fix: add missing React imports for CI linting (3ecf113)
Docker Images
Published to Docker Hub:
docker pull ainullcode/borg-ui:1.54.0
docker pull ainullcode/borg-ui:latest
Full Changelog: https://github.com/karanhudia/borg-ui/compare/v1.53.0...v1.54.0
- SSHFS mount for remote-to-local backup with cleaner paths
- CronBuilder with comprehensive timezone handling
- Privacy-first analytics with opt-out support
- Duplicate functionality for scheduled jobs
Full changelog
What's Changed
- fix: export scheduled jobs for repositories using new ID-based format (1782ded)
- feat: add duplicate functionality for scheduled jobs (b140475)
- fix: apply --bypass-lock flag for observe-only repositories on read-only storage (fd3247e)
- fix: handle orphaned script associations and UI improvements (cc16680)
Docker Images
Published to Docker Hub:
docker pull ainullcode/borg-ui:1.52.0
docker pull ainullcode/borg-ui:latest
Full Changelog: https://github.com/karanhudia/borg-ui/compare/v1.51.0...v1.52.0
- Configurable operation timeouts with source indicators
- Analytics opt-in consent banner
- Bypass-lock for observe-only repositories
- Size data now included in analytics events
- App version sent as custom dimension in analytics events
Full changelog
What's Changed
- feat: send size data with analytics events (17e7192)
- feat: send app version in analytics events as custom dimension (7b4c170)
Docker Images
Published to Docker Hub:
docker pull ainullcode/borg-ui:1.50.0
docker pull ainullcode/borg-ui:latest
Full Changelog: https://github.com/karanhudia/borg-ui/compare/v1.49.1...v1.50.0
## What's Changed * feat: add comprehensive analytics tracking across all pages (621ea97)
- 'View Mounts' button removed from repository cards
- Analytics tracking is enabled by default; users can disable via opt-out if preferred
- Analytics tracking with privacy controls enabled by default and user opt-out capability
Full changelog
What's Changed
- fix: disable IP tracking, cookies, and user identification in analytics (93d4b01)
- test: skip mount service tests for unimplemented _verify_mount_writable (7b30684)
- fix: remove unused Storage import from RepositoryCard (8e74213)
- fix: remove 'View Mounts' button from repository cards (830292c)
- feat: add comprehensive analytics tracking with user opt-out (67c0847)
- CRITICAL FIX: Remove dangerous write test from mount verification (daf1612)
Docker Images
Published to Docker Hub:
docker pull ainullcode/borg-ui:1.48.0
docker pull ainullcode/borg-ui:latest
Full Changelog: https://github.com/karanhudia/borg-ui/compare/v1.47.0...v1.48.0
- Dashboard reorganized with improved visual hierarchy: health/system metrics top row, storage/maintenance second row
- Storage breakdown visualization with corrected parsing of all unit sizes
- Repository health section redesigned to be more compact and less alarming
Full changelog
What's Changed
- refactor: rename 'Command Center' to 'Dashboard' (d478b0b)
- fix: optimize storage breakdown - remove confusing archive count, show total in header (00f4536)
- fix: match card heights and reduce items for better alignment (f97ae1d)
- refactor: reorganize dashboard - health/system top, storage/maintenance second row (f10e6c7)
- refactor: reorganize dashboard layout with better visual hierarchy (9cad149)
- refactor: make repository health section more compact and less alarming (47ba806)
- fix: parse storage sizes correctly by checking longer units first (6afbe59)
- feat: improve dashboard with storage breakdown and health grouping (9f18d97)
- fix: remove unused recharts imports (866aead)
- refactor: improve dashboard UX based on feedback (1fa0209)
- fix: correct data destructuring in DashboardNew (ed9b1f7)
- fix: use correct SSHConnection.status field instead of is_active (b77dc5a)
- fix: remove space_freed field from CompactJob activity (9f989a9)
- fix: correct Schedule model usage in dashboard overview (991c7f4)
- fix: remove unused imports in DashboardNew (7d67164)
- feat: redesign dashboard with Command Center layout (0f69ee4)
- style: apply prettier formatting to frontend components (1f019fe)
- docs: fix Telegram URL scheme in notifications documentation (4b696e9)
- fix: update archive deletion tests for background job API (feb4179)
- docs: update SSH keys guide with new features (61d2b11)
Docker Images
Published to Docker Hub:
docker pull ainullcode/borg-ui:1.47.0
docker pull ainullcode/borg-ui:latest
Full Changelog: https://github.com/karanhudia/borg-ui/compare/v1.46.0...v1.47.0
- Background archive deletion with schedule filters
- New repository wizard with remote backup orchestration
- Redis Unix socket connection support
## What's Changed * fix: properly set socket timeout for Apprise notifications (cedb773)
- Verbose flag added to compact command to show freed space summary
- Directory sizes now displayed in archive browser
Full changelog
What's Changed
- fix: increase notification timeout to 60s for slow services like Signal (f83119a)
- feat: add verbose flag to compact command for freed space summary (11c8001)
- fix: display directory sizes in archive browser (2ca18f0)
- fix: properly display directory sizes in archive browser (dcc6851)
- feat: display directory sizes in archive browser (756d5a6)
- fix: disable prune button during check/compact operations (bfab35a)
Docker Images
Published to Docker Hub:
docker pull ainullcode/borg-ui:1.45.0
docker pull ainullcode/borg-ui:latest
Full Changelog: https://github.com/karanhudia/borg-ui/compare/v1.44.0...v1.45.0
- File-based logging for check jobs
- Improved cache UI in System Settings
- Migration 034 made idempotent to prevent duplicate column errors if re-executed
- Redis-based archive caching system enables 600x faster archive browsing
- Support for external Redis instances with optional URL configuration
- Redis connection testing and improved archive browser UX
Full changelog
What's Changed
- feat: add Redis connection testing and improve archive browser UX (c2faf00)
- docs: improve cache config clarity and add complete docker-compose example (656a850)
- fix: match cache tab padding and remove verbose info section (917683d)
- fix: set fixed height for archive browser dialog (24c6468)
- fix: improve archive browser dialog height behavior (8634b07)
- fix: improve Redis fallback and archive browser UX (c070f72)
- docs: add comprehensive Redis cache configuration guide (74237a3)
- feat: add UI configuration for external Redis URL (aa56243)
- feat: add support for external Redis instances via URL (7820f98)
- fix: make migration 034 idempotent to prevent duplicate column errors (3ee16ed)
- feat: add Redis-based archive caching system for 600x faster browsing (5d2d975)
Docker Images
Published to Docker Hub:
docker pull ainullcode/borg-ui:1.43.0
docker pull ainullcode/borg-ui:latest
Full Changelog: https://github.com/karanhudia/borg-ui/compare/v1.42.0...v1.43.0
- Cron-based check scheduling with timezone support
- Duplicate button for notification settings
## What's Changed * fix: improve notification service repository lookup and display (79b894e)
Fixes repositories data extraction in Schedule and NotificationsTab with improved fallback handling.
Fixed Schedule tab crash and repositories array null safety issues.
- Configurable timeouts via environment variables for large repositories
Full changelog
What's Changed
- docs: emphasize UI-first workflow for SSH key deployment (a02efcb)
- docs: update SSH keys documentation to reflect single-key system (156451e)
- docs: use generic examples for timeout configuration (ff27ae6)
- feat: add configurable timeouts via environment variables for large repositories (20fcbad)
- Revert "feat: add configurable timeouts for Borg operations" (be025c5)
- feat: add configurable timeouts for Borg operations (b4116b6)
Docker Images
Published to Docker Hub:
docker pull ainullcode/borg-ui:1.41.2
docker pull ainullcode/borg-ui:latest
Full Changelog: https://github.com/karanhudia/borg-ui/compare/v1.41.1...v1.41.2
- Repository-level notification filtering
- Reusable MultiRepositorySelector component
Full changelog
What's Changed
- feat: add repository-level notification filtering and reusable MultiRepositorySelector (35c8e4d)
Docker Images
Published to Docker Hub:
docker pull ainullcode/borg-ui:1.41.0
docker pull ainullcode/borg-ui:latest
Full Changelog: https://github.com/karanhudia/borg-ui/compare/v1.40.1...v1.41.0
- Keyfile upload support
- LOCAL_MOUNT_POINTS configuration
- Fixed archive navigation
Full changelog
What's Changed
- feat: add keyfile upload support, LOCAL_MOUNT_POINTS, and fix archive navigation (52654d7)
Docker Images
Published to Docker Hub:
docker pull ainullcode/borg-ui:1.40.0
docker pull ainullcode/borg-ui:latest
Full Changelog: https://github.com/karanhudia/borg-ui/compare/v1.39.1...v1.40.0
## What's Changed * fix: resolve multi-repo schedule issues and UI improvements (17422f9)
- Multi-repository schedule support
- Repository reordering
- Archive extraction directly to destination (no temporary directory)
Full changelog
What's Changed
- fix: remove schedule_name requirement for activity grouping (644b2ea)
- fix: edit form repository selection and activity feed refresh (3e87bde)
- feat: add repository reordering and fix script dropdown heights (bec9b4a)
- fix: resolve SQLAlchemy DetachedInstanceError in multi-repo schedule execution (8017c4e)
- fix: resolve multi-repo schedule display and execution issues (88c6bba)
- feat: add multi-repository schedule support (frontend - part 1: state) (7d74e97)
- feat: add multi-repository schedule support (backend - part 2: API) (cc70ced)
- feat: add multi-repository schedule support (backend - part 1) (5ec0f7e)
- feat: extract archives directly to destination (no temp directory) (1b83a13)
Docker Images
Published to Docker Hub:
docker pull ainullcode/borg-ui:1.39.0
docker pull ainullcode/borg-ui:latest
Full Changelog: https://github.com/karanhudia/borg-ui/compare/v1.38.5...v1.39.0
Fixed prune operations to run synchronously with improved logging and log file storage.
- Log cleanup on startup with configurable setting
- Manual prune job tracking in Activity feed