backrest

Backrest is a web UI and orchestrator for restic backup.

GPL-3.0 License

Stars
1.1K

Bot releases are hidden (Show)

backrest - v1.5.0 Latest Release

Published by garethgeorge about 1 month ago

1.5.0 (2024-09-10)

Excited to announce Backrest 1.5.0 which comes with a number of new scheduling options focused on laptop users and scriptability for plans that adapt to tricky network environments. These are

  • 'on error retry' policies which allows you to define a command hook that will be retried until it succeds, this can be used to check that your network is healthy before allowing backups to execute e.g. on a laptop.
  • last task relative scheduling uses the last time the task ran rather than Backrest's startup time to determine when to run a job. This allows laptop users to ensure backups are never skipped e.g. when a device is powered off.

Additionally, broad improvements to logging are included e.g. logs are now streamed live for running operations and hooks. Lastly, a number of more minor bug fixes and quality of life improvements are bundled.

Features

  • add prometheus metrics (#459) (daacf28)
  • compact the scheduling UI and use an enum for clock configuration (#452) (9205da1)
  • implement 'on error retry' policy (#428) (038bc87)
  • implement scheduling relative to last task execution (#439) (6ed1280)
  • support live logrefs for in-progress operations (#456) (bfaad8b)

Bug Fixes

  • apply oplog migrations correctly using new storage interface (491a6a6)
  • backrest can erroneously show 'forget snapshot' button for restore entries (bfde425)
  • broken refresh and sizing for mobile view in operation tree (0d01c5c)
  • bugs in displaying repo / plan / activity status (cceda4f)
  • double display of snapshot ID for 'Snapshots' in operation tree (80dbe91)
  • hide system operations in tree view (8c1cf79)
  • misc bugs in restore operation view and activity bar view (656ac9e)
  • misc bugs related to new logref support (97e3f03)
  • misc logging improvements (1879ddf)
  • new config validations make it harder to lock yourself out of backrest (c419861)
  • reformat tags row in operation list (0eb560d)
  • remove migrations for fields that have been since backrest 1.0.0 (#453) (546482f)
  • restic cli commands through 'run command' are cancelled when closing dialogue (bb00afa)
  • simplify auth handling (6894128)
  • test fixes for windows file restore (44585ed)
  • UI quality of life improvements (cc173aa)
  • use 'restic restore <snapshot id>:' for restore operations (af09e47)
  • write debug-level logs to data dir on all platforms (a9eb786)
backrest - v1.4.0

Published by garethgeorge 2 months ago

1.4.0 (2024-08-15)

This release brings support for restic 0.17.0 and with it new backrest capabilities! The new restic version tracks the summary of the last backup command directly in the snapshot objects it creates. Backrest now includes these details in the displayed summary of each snapshot! This is of particular interest for users using Backrest to browse externally created backups.

Beyond this, a number of bug fixes and quality of life improvements are included in this release. Repos will no longer implicitly initialize if added directly to the config, they must be added through the UI which is explicit and safer. Additionally, updates to repo configuration are now blocked if they break the ability to connect to the repo.

A number of minor bugs are fixed including a rare race condition, missing debug output for some commands, and formatting issues for hooks.

Features

  • accept up to 2 decimals of precision for check % and prune % policies (5374273)
  • add UI support for new summary details introduced in restic 0.17.0 (4859e52)
  • start tracking snapshot summary fields introduced in restic 0.17.0 (505765d)
  • update to restic 0.17.0 (#416) (500f2ee)

Bug Fixes

  • activitybar does not reset correctly when an in-progress operation is deleted (244fe7e)
  • add condition_snapshot_success to .EventName (#410) (c45f0f3)
  • backrest should only initialize repos explicitly added through WebUI (62a97a3)
  • forget snapshot by ID should not require a plan (49e46b0)
  • hide cron options for hours/minutes/days of week for infrequent schedules (7c091e0)
  • improve debug output when trying to configure a new repo (11b3e99)
  • possible race condition leading to rare panic in GetOperationEvents (f250adf)
  • run list snapshots after updating repo config or adding new repo (48626b9)
  • use addrepo RPC to apply validations when updating repo config (a67c29b)
backrest - v1.3.1

Published by garethgeorge 3 months ago

1.3.1 (2024-07-12)

Bug Fixes

  • add docker-cli to alpine backrest image (b6f9129)
  • add major and major.minor semantic versioned docker releases (8db2578)
  • plan system not found bug when running health operations (c19665a)
backrest - v1.3.0

Published by garethgeorge 3 months ago

1.3.0 (2024-07-11)

Highlights of this release are improved hook execution, the hook model has been a painpoint for me for a while and has felt like an afterthought tossed on top of Backrest's operation and task model. In this release hooks are reimplemented as tasks & share similar execution strategies. Hooks are also logically reorganized in the UI as children of the operations that trigger them.

Features

Bug Fixes

  • cannot run path relative executable errors on Windows (c3ec9ee)
  • improve handling of restore operations (620caed)
  • operation tree key conflicts (2dc5595)
backrest - v1.2.1

Published by garethgeorge 4 months ago

1.2.1 (2024-07-02)

Backrest 1.2.1 patches a couple of UI bugs and improves UI performance with optimized rendering of the operation tree view with component caching.

Notably for Windows users, the github actions pipeline for generating windows installers is fixed in this patch meaning I'm happy to announce that this is the first release including pre-compiled Windows installers! The windows install places backrest and the backrestmon binary (Windows tray application) in C:\Program Files\backrest by default and configures Backrest to launch on startup!.

Bug Fixes

  • AddPlanModal and AddRepoModal should only be closeable explicitly (15f92fc)
  • disable sorting for excludes and iexcludes (d7425b5)
  • github actions release flow for windows installers (90e0656)
  • make instance ID required field (7c8ded2)
  • operation tree UI bugs (76ce3c1)
  • restore always uses ~/Downloads path (955771e)
backrest - v1.1.0

Published by garethgeorge 5 months ago

1.1.0 (2024-06-01)

Features

Bug Fixes

  • collection of ui refresh timing bugs (b218bc9)
  • improve prune and check scheduling in new repos (c58055e)
  • release workflow (290d018)
  • snapshot browser on Windows (19ed611)
  • UI refresh timing bugs (ba005ae)
backrest - v1.0.0

Published by garethgeorge 5 months ago

1.0.0 (2024-05-20)

Hey all, I'm excited to announce the 1.0.0 release of Backrest. This release makes large strides to normalize Backrest's config format and operation model for upcoming plans e.g. multihost management and support for restic check. Your config and operations will be migrated automatically. After upgrading you will be prompted to set a permanent "instance ID" next time you open the Web UI. This instance ID will be included on snapshots (created-by: tag) going forward and will identify the backrest install that created a snapshot when multiple installations share a single repo.

New features are added including:

  • New scheduling options for plans e.g. max frequency hours, and max frequency days
  • Ability to better schedule prune operations e.g. cron schedules are now supported
  • A limited shell for running restic commands in your repo is included in the WebUI, this provides a convenient way to run arbitrary snapshot management operations or commands not supported by backrest.
  • Stats view is migrated to a new (and improved) chart library.

And finally, this release continues with stability improvements addressing a number of UI and backend bugs.

⚠ BREAKING CHANGES

  • redefine hostname as a required property that maps to --host (#256)

Features

  • add CONDITION_SNAPSHOT_WARNING hook triggered by any warning status at the completion of a snapshot (f0ee20f)
  • add download link to create a zip archive of restored files (a75a5c2)
  • add force kill signal handler that dumps stacks (386f46a)
  • add seek support to join iterator for better performance (802146a)
  • ensure instance ID is set for all operations (65d4a1d)
  • implement 'run command' button to execute arbitrary restic commands in a repo (fbad981)
  • improve support for instance ID tag (be0cdd5)
  • keep a rolling backup of the last 10 config versions (1a053f2)
  • overhaul task interface and introduce 'flow ID' for simpler grouping of operations (#253) (7a10bdc)
  • redefine hostname as a required property that maps to --host (#256) (4847010)
  • support env variable substitution e.g. FOO=${MY_FOO_VAR} (8448f4c)
  • unified scheduling model (#282) (531cd28)
  • update snapshot management to track and filter on instance ID, migrate existing snapshots (5a996d7)
  • validate plan ID and repo ID (f314c7c)

Bug Fixes

  • add virtual root node to snapshot browser (6045c87)
  • additional tooltips for add plan modal (fcdf07d)
  • adjust task priorities (756e64a)
  • center-right align settings icons for plans/repos (982e2fb)
  • concurrency issues in run command handler (411a4fb)
  • date formatting (b341146)
  • downgrade omission of 'instance' field from an error to a warning (6ae82f7)
  • error formatting for repo init (1a3ace9)
  • hide successful hook executions in the backup view (65bb8ef)
  • improve cmd error formatting now that logs are available for all operations (6eb704f)
  • improve concurrency handling in RunCommand (07b0950)
  • improve download speeds for restored files (eb07931)
  • install.sh was calling systemctl on Darwin (#260) (f6d5837)
  • minor bugs and tweak log rotation history to 14 days (ad9a770)
  • miscellaneous bug fixes (df4be0f)
  • prompt for user action to set an instance ID on upgrade (294864f)
  • rebase stats panel onto a better chart library (b22028e)
  • reserve IDs starting and ending with '__' for internal use (711064f)
  • retention policy display may show default values for some fields (9d6c1ba)
  • run stats after every prune operation (7fce593)
  • schedule view bug (0764804)
  • secure download URLs when downloading tar archive of exported files (a30d5ef)
  • UI fixes for restore row and settings modal (e9d6cbe)
  • use int64 for large values in structs for compatibility with 32bit devices (#250) (84b4b68)
  • use locale to properly format time (89a49c1)
backrest - v0.17.2

Published by garethgeorge 6 months ago

0.17.2 (2024-04-18)

This release is highly recommended for any users running docker containers with a rclone remote, 6408518 fixes a bug where restic leaves rclone processes without reaping their exit status. Given enough time this can exhaust PID space.

Bug Fixes

  • add tini to docker images to reap rclone processes left behind by restic (6408518)
  • armv7 support for docker releases (ec39533)
  • bug in new task queue implementation (5d6074e)
  • improve restic pkg's output handling and buffering (aacdf9b)
  • Linux ./install.sh script fails when used for updating backrest (#226) (be09303)
  • use new orchestrator queue (4a81889)
backrest - v0.17.1

Published by garethgeorge 6 months ago

0.17.1 (2024-04-12)

Reverts bad orchestrator changes in delisted release 0.17.0

Features

  • add a Bash script to help Linux user manage Backrest (#187) (d78bcfa)
  • allow hook exit codes to control backup execution (e.g fail, skip, etc) (c4ae5b3)
  • release backrest as a homebrew tap (16a7d0e)
  • use amd64 restic for arm64 Windows (#201) (3770966)

Bug Fixes

  • revert orchestrator changes (07cffcb)
backrest - v0.16.0

Published by garethgeorge 7 months ago

0.16.0 (2024-03-30)

Features

  • allow disabling authentication (8429174)
  • improve consistency of restic command execution and output capture (16e22aa)
  • improve observability by exposing restic command logs in UI (eeb8c8e)
  • make hostname configurable in settings panel (2e4e3cf)
  • sort lists in configuration (6f330ac)
  • support shoutrrr notification service (fa6407c)
  • switch alpine as the default base image for docker releases (7425c9b)
  • update macos install script to set PATH env var for use with rclone (8cf43f2)

Bug Fixes

  • add new logs to orchestrator and increase clock change polling to every 5 minutes (5b7e2b0)
  • api path relative to UI serving location to support reverse proxies with prefix stripping (ac7f24e)
  • cleanup spacing and hook titles in AddRepoModal and AddPlanModal (c32874c)
  • correctly auto-expand first 5 backups when opening plan/repo (d7ca35b)
  • include error messages in restic logs (b68f7c6)
  • include restic binary in alpine and scratch docker images (f7bd9f7)
  • incorrectly indicate AM/PM in formatted date strings (5d34e0b)
  • make notification title optional on discord notifications (e8bbe2c)
  • make tree view the default panel for repo overview (3f9c9f4)
  • tasks duplicated when config is updated during a running operation (035684c)
backrest - v0.15.1

Published by garethgeorge 7 months ago

0.15.1 (2024-03-19)

Bug Fixes

  • forget operations failing with new retention policy format (0a059bb)
backrest - v0.15.0

Published by garethgeorge 7 months ago

0.15.0 (2024-03-19)

Features

  • add 'compute stats' button to refresh stats on repo view (1f42b6a)
  • add option to disable scheduled execution of a plan (aea74c5)
  • add release artifacts for arm32 (a737371)
  • automatically remove Apples quarantine flag (#155) (3e76beb)
  • check for basic auth (#110) (#129) (871c54f)
  • improved stats visualization with graphs and cleanup operation filtering (5b362cc)
  • pass through all env variables from parent process to restic (24afd51)
  • support flag overrides for 'restic backup' in plan configuration (56f5e40)
  • use disambiguated retention policy format (5a5a229)

Bug Fixes

  • alpine linux Dockerfile and add openssh (3cb9d27)
  • backrest shows hidden operations in list view (c013f06)
  • BackupInfoCollector handling of filtered events (f1e4619)
  • bugs in env var validation and form field handling (7e909c4)
  • compression progress ratio should be float64 (1759b5d)
  • handle timezone correctly with tzdata package on alpine (0e94f30)
  • install rclone with apk for alpine image (#138) (79715a9)
  • proper display of retention policy (38ff5fe)
  • properly parse repo flags (348ec46)
  • stat operation interval for long running repos (f2477ab)
  • stats chart titles invisible on light color theme (746fd9c)

Miscellaneous Chores

backrest - v0.14.0

Published by garethgeorge 8 months ago

0.14.0 (2024-02-29)

Features

  • add 'compute stats' button to refresh stats on repo view (1f42b6a)
  • add release artifacts for arm32 (a737371)
  • check for basic auth (#110) (#129) (871c54f)
  • improved stats visualization with graphs and cleanup operation filtering (5b362cc)
  • support flag overrides for 'restic backup' in plan configuration (56f5e40)

Bug Fixes

  • alpine linux Dockerfile and add openssh (3cb9d27)
  • backrest shows hidden operations in list view (c013f06)
  • BackupInfoCollector handling of filtered events (f1e4619)
  • install rclone with apk for alpine image (#138) (79715a9)
  • properly parse repo flags (348ec46)
  • stat operation interval for long running repos (f2477ab)
backrest - v0.13.0

Published by garethgeorge 8 months ago

0.13.0 (2024-02-21)

Features

  • add case insensitive excludes (iexcludes) (#108) (bf6fb7e)
  • add flags to configure backrest options e.g. --config-file, --data-dir, --restic-cmd, --bind-address (41ddc8e)
  • add opt-in auto-unlock feature to remove locks on forget and prune (#107) (c1ee33f)
  • add rclone binary to docker image and arm64 support (#105) (5a49f2f)
  • bundle rclone, busybox commands, and bash in default backrest docker image (cec04f8)
  • display non-fatal errors in backup operations (e.g. unreadable files) in UI (#100) (caac35a)

Bug Fixes

  • improve error message when rclone config is missing (663b430)
  • improved sidebar status refresh interval during live operations (3d192fd)
  • live backup progress updates with partial-backup errors (97a4948)
  • migrate prune policy options to oneof (ef41d34)
  • restore operations should succeed for unassociated snapshots (448107d)
  • separate docker images for scratch and alpine linux base (#106) (40e3e04)
backrest - v0.12.2

Published by garethgeorge 8 months ago

0.12.2 (2024-02-16)

Bug Fixes

  • delete event button in UI is hard to see on light theme (8a05df8)
  • use 'embed' to package WebUI sources instead of go.rice (e3ba5cf)
  • release-please automation (63ddf15)
backrest - v0.12.0

Published by garethgeorge 8 months ago

0.12.0 (2024-02-15)

Features

  • add button to forget individual snapshots (276b1d2)
  • add slack webhook (8fa90ab)
  • Add support for multiple sets of expected env vars per repo scheme (#90) (da0551c)
  • clear operations from history (dc7a3a5)
  • Windows WebUI uses correct path separator (f5521e7)

Bug Fixes

  • cleanup old versions of restic when upgrading (79f529f)
  • hide delete operation button if operation is in progress or pending (08c8762)
  • retention policy configuration in add plan view (dd24d90)
  • stats operations running at wrong interval (05e5ae0)
backrest - v0.11.1

Published by garethgeorge 9 months ago

0.11.1 (2024-02-08)

Bug Fixes

  • backrest fails to create directory for jwt secrets (0067edf)
  • form bugs in UI e.g. awkward behavior when modifying hooks (4fcf526)
  • update restic version to 1.16.4 (668a7cb)
  • wrong field names in hooks form (3540904)
  • wrong value passed to --max-unused when providing a custom prune policy (34175f2)
backrest - v0.11.0

Published by garethgeorge 9 months ago

0.11.0 (2024-02-04)

Features

  • add user configurable command hooks for backup lifecycle events (#60) (9be413b)
  • authentication for WebUI (#62) (4a1f326)
  • implement discord hook type (25924b6)
  • implement gotify hook type (e0ce655)
  • support keep-all retention policy for append-only backups (f163c02)

Bug Fixes

  • add API test coverage and fix minor bugs (f5bb74b)
  • add first time setup hint for user authentication (4a565f2)
  • add test coverage for log rotation (f1084ca)
  • bugfixes for auth flow (427792c)
  • stats not displaying on long running repos (f1ba1d9)
  • store large log outputs in tar bundles of logs (0cf01e0)
  • windows install errors on decompressing zip archive (5323b9f)
backrest - v0.10.1

Published by garethgeorge 9 months ago

0.10.1 (2024-01-25)

Bug Fixes

  • chmod config 0600 such that only the creating user can read (ecff0e5)
  • install scripts handle working dir correctly (dcff2ad)
  • relax name regex for plans and repos (ee6134a)
  • sftp support using public key authentication (bedb302)
  • typos in validation error messages in addrepomodel (3b79afb)
backrest - v0.10.0

Published by garethgeorge 9 months ago

0.10.0 (2024-01-15)

Features

  • make prune policy configurable in the addrepoview in the UI (3fd08eb)
  • update restic dependency to v0.16.3 (ac8db31)
  • verify gpg signature when downloading and installing restic binary (04106d1)