Skip to content

fix: sync api improvements #758

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 573 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
573 commits
Select commit Hold shift + click to select a range
282233b
chore: fix tests
garethgeorge May 5, 2024
b6c258c
docs: update documentation for SFTP usage
garethgeorge May 5, 2024
ad9a770
fix: minor bugs and tweak log rotation history to 14 days
garethgeorge May 5, 2024
65bb8ef
fix: hide successful hook executions in the backup view
garethgeorge May 5, 2024
89a49c1
fix: use locale to properly format time
garethgeorge May 8, 2024
91724ef
chore: refactor download handler
garethgeorge May 8, 2024
fbad981
feat: implement 'run command' button to execute arbitrary restic comm…
garethgeorge May 8, 2024
a821580
chore: run prettier on the codebase
garethgeorge May 8, 2024
07b0950
fix: improve concurrency handling in RunCommand
garethgeorge May 8, 2024
6045c87
fix: add virtual root node to snapshot browser
garethgeorge May 8, 2024
b341146
fix: date formatting
garethgeorge May 8, 2024
9d6c1ba
fix: retention policy display may show default values for some fields
garethgeorge May 12, 2024
411a4fb
fix: concurrency issues in run command handler
garethgeorge May 12, 2024
eb07931
fix: improve download speeds for restored files
garethgeorge May 12, 2024
6ae82f7
fix: downgrade omission of 'instance' field from an error to a warning
garethgeorge May 17, 2024
6eb704f
fix: improve cmd error formatting now that logs are available for all…
garethgeorge May 17, 2024
e9d6cbe
fix: UI fixes for restore row and settings modal
garethgeorge May 17, 2024
1a3ace9
fix: error formatting for repo init
garethgeorge May 17, 2024
c83d080
chore: refactor operations API to use selectors
garethgeorge May 19, 2024
294864f
fix: prompt for user action to set an instance ID on upgrade
garethgeorge May 19, 2024
fcdf07d
fix: additional tooltips for add plan modal
garethgeorge May 19, 2024
711064f
fix: reserve IDs starting and ending with '__' for internal use
garethgeorge May 19, 2024
1a053f2
feat: keep a rolling backup of the last 10 config versions
garethgeorge May 19, 2024
df4be0f
fix: miscellaneous bug fixes
garethgeorge May 19, 2024
531cd28
feat: unified scheduling model (#282)
garethgeorge May 19, 2024
0764804
fix: schedule view bug
garethgeorge May 20, 2024
b22028e
fix: rebase stats panel onto a better chart library
garethgeorge May 20, 2024
7fce593
fix: run stats after every prune operation
garethgeorge May 20, 2024
73c8612
chore(main): release 1.0.0 (#252)
garethgeorge May 20, 2024
8a7543c
feat: add windows installer and tray app (#294)
garethgeorge May 25, 2024
19ed611
fix: snapshot browser on Windows
garethgeorge May 25, 2024
d844677
docs: replace 'MacOS' to 'macOS' in README.md (#299)
tylwright May 25, 2024
6ca90ec
docs: cookbook example for proxying backrest with caddy (#297)
tylwright May 25, 2024
b218bc9
fix: collection of ui refresh timing bugs
garethgeorge May 27, 2024
5a51ae7
docs: spring cleaning with minor doc tweaks (#302)
tylwright May 27, 2024
ce42f68
feat: support restic check operation (#303)
garethgeorge May 27, 2024
ba005ae
fix: UI refresh timing bugs
garethgeorge May 27, 2024
c58055e
fix: improve prune and check scheduling in new repos
garethgeorge May 27, 2024
43fb254
chore: added broken link detection to docs deploy workflow (#305)
tylwright May 30, 2024
0c9f366
feat: support nice/ionice as a repo setting (#309)
garethgeorge Jun 1, 2024
290d018
fix: release workflow
garethgeorge Jun 1, 2024
2d0c29e
chore(main): release 1.1.0 (#311)
garethgeorge Jun 1, 2024
f42df20
fix: rare deadlock in GetOperationEvents (#319)
garethgeorge Jun 6, 2024
72cf45b
docs: update README.md
garethgeorge Jun 11, 2024
2c7d85b
fix: hook bug fixes
garethgeorge Jun 13, 2024
879e39c
fix: viewing backup details in very long tree view
garethgeorge Jun 13, 2024
7940642
fix: improve robustness of .Summary template
garethgeorge Jun 13, 2024
4f0edd1
docs: document TZ= environment variable for docker image
garethgeorge Jun 13, 2024
5427d75
feat: default non-docker packages to listen on localhost only
garethgeorge Jun 13, 2024
91e0fda
fix: make backup and restore operations more robust to non-JSON outpu…
garethgeorge Jun 14, 2024
793666c
fix: misc ui consistency and refresh errors
garethgeorge Jun 14, 2024
e2ef66e
fix: minor hook and naming bugs in check and backup tasks
garethgeorge Jun 14, 2024
6f9816e
docs: fix typo in command hook cookbook (#351)
networkydev Jun 24, 2024
9067027
feat: misc ui improvements
garethgeorge Jun 21, 2024
232cd57
feat: improve log formatting
garethgeorge Jun 25, 2024
90cdf98
chore: fix restore test
garethgeorge Jun 26, 2024
3099be5
chore: continue to cleanup io handling
garethgeorge Jun 26, 2024
15f92fc
fix: AddPlanModal and AddRepoModal should only be closeable explicitly
garethgeorge Jun 26, 2024
90e0656
fix: github actions release flow for windows installers
garethgeorge Jun 29, 2024
7c8ded2
fix: make instance ID required field
garethgeorge Jul 2, 2024
76ce3c1
fix: operation tree UI bugs
garethgeorge Jul 2, 2024
955771e
fix: restore always uses ~/Downloads path
garethgeorge Jul 2, 2024
d7425b5
fix: disable sorting for excludes and iexcludes
garethgeorge Jul 2, 2024
64aa4f2
chore(main): release 1.2.1 (#356)
garethgeorge Jul 2, 2024
620caed
fix: improve handling of restore operations
garethgeorge Jul 3, 2024
2dc5595
fix: operation tree key conflicts
garethgeorge Jul 4, 2024
ac2eea4
chore: Update README.md
garethgeorge Jul 8, 2024
fe0e2b9
chore: fix restore test coverage
garethgeorge Jul 4, 2024
4d0d13e
feat: improve hook UX and execution model (#357)
garethgeorge Jul 11, 2024
c3ec9ee
fix: cannot run path relative executable errors on Windows
garethgeorge Jul 11, 2024
0d98e44
chore(main): release 1.3.0 (#370)
garethgeorge Jul 12, 2024
c19665a
fix: plan _system_ not found bug when running health operations
garethgeorge Jul 12, 2024
b6f9129
fix: add docker-cli to alpine backrest image
garethgeorge Jul 12, 2024
8db2578
fix: add major and major.minor semantic versioned docker releases
garethgeorge Jul 12, 2024
d93068a
chore(main): release 1.3.1 (#384)
garethgeorge Jul 12, 2024
f250adf
fix: possible race condition leading to rare panic in GetOperationEvents
garethgeorge Jul 15, 2024
49e46b0
fix: forget snapshot by ID should not require a plan
garethgeorge Jul 21, 2024
c45f0f3
fix: add condition_snapshot_success to .EventName (#410)
gSpera Aug 6, 2024
500f2ee
feat: update to restic 0.17.0 (#416)
garethgeorge Aug 14, 2024
62a97a3
fix: backrest should only initialize repos explicitly added through W…
garethgeorge Aug 15, 2024
244fe7e
fix: activitybar does not reset correctly when an in-progress operati…
garethgeorge Aug 15, 2024
11b3e99
fix: improve debug output when trying to configure a new repo
garethgeorge Aug 15, 2024
48626b9
fix: run list snapshots after updating repo config or adding new repo
garethgeorge Aug 15, 2024
a67c29b
fix: use addrepo RPC to apply validations when updating repo config
garethgeorge Aug 15, 2024
5374273
feat: accept up to 2 decimals of precision for check % and prune % po…
garethgeorge Aug 15, 2024
7c091e0
fix: hide cron options for hours/minutes/days of week for infrequent …
garethgeorge Aug 15, 2024
5d52eb7
docs: update documentation to cover recent changes
garethgeorge Aug 15, 2024
505765d
feat: start tracking snapshot summary fields introduced in restic 0.17.0
garethgeorge Aug 15, 2024
4859e52
feat: add UI support for new summary details introduced in restic 0.17.0
garethgeorge Aug 15, 2024
df97dac
chore: fix proto converter tests
garethgeorge Aug 15, 2024
4e9973c
chore(main): release 1.4.0 (#388)
garethgeorge Aug 15, 2024
0eb560d
fix: reformat tags row in operation list
garethgeorge Aug 18, 2024
80dbe91
fix: double display of snapshot ID for 'Snapshots' in operation tree
garethgeorge Aug 18, 2024
1879ddf
fix: misc logging improvements
garethgeorge Aug 21, 2024
79cae5b
chore: refactor oplog interface to abstract storage (#429)
garethgeorge Aug 26, 2024
bb00afa
fix: restic cli commands through 'run command' are cancelled when clo…
garethgeorge Aug 26, 2024
a9eb786
fix: write debug-level logs to data dir on all platforms
garethgeorge Aug 26, 2024
8c1cf79
fix: hide system operations in tree view
garethgeorge Aug 27, 2024
038bc87
feat: implement 'on error retry' policy (#428)
garethgeorge Aug 27, 2024
af09e47
fix: use 'restic restore <snapshot id>:<path>' for restore operations
garethgeorge Aug 27, 2024
cc173aa
fix: UI quality of life improvements
garethgeorge Aug 27, 2024
44585ed
fix: test fixes for windows file restore
garethgeorge Aug 27, 2024
6ed1280
feat: implement scheduling relative to last task execution (#439)
garethgeorge Aug 27, 2024
b7b13cc
chore: update README.md
garethgeorge Aug 27, 2024
9205da1
feat: compact the scheduling UI and use an enum for clock configurati…
garethgeorge Sep 4, 2024
546482f
fix: remove migrations for fields that have been since backrest 1.0.0…
garethgeorge Sep 4, 2024
656ac9e
fix: misc bugs in restore operation view and activity bar view
garethgeorge Sep 4, 2024
b5e6feb
chore: fix tooltips for schedule form item
garethgeorge Sep 5, 2024
bfaad8b
feat: support live logrefs for in-progress operations (#456)
garethgeorge Sep 5, 2024
cceda4f
fix: bugs in displaying repo / plan / activity status
garethgeorge Sep 5, 2024
97e3f03
fix: misc bugs related to new logref support
garethgeorge Sep 5, 2024
383cf4f
chore: update README.md
garethgeorge Sep 5, 2024
0d01c5c
fix: broken refresh and sizing for mobile view in operation tree
garethgeorge Sep 7, 2024
bfde425
fix: backrest can erroneously show 'forget snapshot' button for resto…
garethgeorge Sep 7, 2024
5293631
chore: upgrade go compiler to version 1.23
garethgeorge Sep 7, 2024
a28639a
chore: fix typo in OperationTree
garethgeorge Sep 8, 2024
c419861
fix: new config validations make it harder to lock yourself out of ba…
garethgeorge Sep 8, 2024
426af29
chore: add new utilities and scripts for manual validations
garethgeorge Sep 9, 2024
491a6a6
fix: apply oplog migrations correctly using new storage interface
garethgeorge Sep 9, 2024
6894128
fix: simplify auth handling
garethgeorge Sep 9, 2024
ca678d9
chore: fix oplog tests
garethgeorge Sep 9, 2024
822ec35
chore: upgrade dependencies
garethgeorge Sep 9, 2024
daacf28
feat: add prometheus metrics (#459)
garethgeorge Sep 10, 2024
7dc3c99
chore(main): release 1.5.0 (#423)
garethgeorge Sep 10, 2024
4742039
chore: update README.md
garethgeorge Sep 10, 2024
d2650fd
fix: update to newest restic bugfix release 0.17.1
garethgeorge Sep 11, 2024
4da9d89
fix: windows installation for restic 0.17.1 (#474)
garethgeorge Sep 14, 2024
d59c6fc
fix: stats panel can fail to load when an incomplete operation is in …
garethgeorge Sep 15, 2024
3056203
fix: prunepolicy.max_unused_percent should allow decimal values
garethgeorge Sep 17, 2024
df55681
fix(docs): correct minor spelling and grammar errors (#479)
giuaig Sep 18, 2024
7e65f1a
chore(main): release 1.5.1 (#467)
garethgeorge Sep 24, 2024
f6ee51f
feat: initial support for healthchecks.io notifications (#480)
inode64 Sep 24, 2024
50b4be7
chore: add initial support for an sqlite oplog store (#499)
garethgeorge Sep 26, 2024
4fa30e3
fix: gorelaeser docker image builds for armv6 and armv7
garethgeorge Oct 12, 2024
0806eb9
feat: migrate oplog history from bbolt to sqlite store (#515)
garethgeorge Oct 12, 2024
5948c67
chore: deprecate broken armv7 docker image
garethgeorge Oct 12, 2024
4d557a1
feat: use sqlite logstore (#514)
garethgeorge Oct 12, 2024
d7704cf
fix: expand env vars in flags i.e. of the form ${MY_ENV_VAR}
garethgeorge Oct 12, 2024
28c3172
feat: track long running generic commands in the oplog (#516)
garethgeorge Oct 12, 2024
0daa74f
chore: misc bug fixes supporting sqlite migration (#517)
garethgeorge Oct 14, 2024
4b3c7e5
feat: add a summary dashboard as the "main view" when backrest opens …
garethgeorge Oct 19, 2024
7a125cd
add a watchdog timer
garethgeorge Oct 19, 2024
66a5241
feat: add watchdog thread to reschedule tasks when system time changes
garethgeorge Oct 19, 2024
ec89cfd
fix: plan/repo settings button hard to click
garethgeorge Oct 19, 2024
afcecae
feat: support --skip-if-unchanged
garethgeorge Oct 19, 2024
fff3dbd
feat: use react-router to enable linking to webUI pages (#522)
garethgeorge Oct 20, 2024
39f3fe9
chore(main): release 1.6.0 (#492)
garethgeorge Oct 20, 2024
5617f3f
fix: tarlog migration fails on new installs
garethgeorge Oct 20, 2024
4fc28d6
fix: login form has no background
garethgeorge Oct 20, 2024
36543c6
fix: stats operation occasionally runs twice in a row
garethgeorge Oct 20, 2024
e50dbfb
docs: refresh docs to cover recent changes
garethgeorge Oct 20, 2024
b7abbf9
chore(main): release 1.6.1 (#524)
garethgeorge Oct 20, 2024
592e4cf
fix: improve memory pressure from getlogs
garethgeorge Nov 14, 2024
aa39ead
fix: allow for deleting individual operations from the list view
garethgeorge Nov 14, 2024
78c01a1
chore: backrest includes binary version info in startup logs for bett…
garethgeorge Nov 14, 2024
492beb2
fix: garbage collection with more sensible limits grouped by plan/rep…
garethgeorge Nov 14, 2024
0aedbfa
chore: add image source label to dockerfiles (#553)
wuast94 Nov 15, 2024
e60a4fb
fix: crash on arm32 device due to bad libc dependency version for sql…
arminus Nov 15, 2024
0ecebf8
always set .Plan in hookvars to properly format messages for prune/ch…
garethgeorge Nov 16, 2024
0642f4b
fix: set etag header to cache webUI source
garethgeorge Nov 17, 2024
efa2baa
chore: use replace directive in go.mod to prevent accidental sqlite v…
garethgeorge Nov 17, 2024
849a944
chore: github actions workflow to automate restic version bumps
garethgeorge Nov 18, 2024
bcc7e87
chore: update restic version to 0.17.3 (#565)
github-actions[bot] Nov 18, 2024
cc4daee
docs: add btrfs snapshot sample to commands cookbook
garethgeorge Nov 18, 2024
3397a01
fix: allow 'run command' tasks to proceed in parallel to other repo o…
garethgeorge Nov 18, 2024
0d53343
docs: add Windows PowerShell hook examples (#567)
homandr Nov 19, 2024
00b0c3e
fix: improve windows installer and relocate backrest on Windows to %l…
homandr Nov 19, 2024
57f9aeb
fix: use command mode when executing powershell scripts on windows (#…
garethgeorge Nov 20, 2024
015495c
chore: automatically populate installer app version from the changelo…
homandr Nov 20, 2024
bf77bab
fix: webui may duplicate elements in a multi-instance repo
garethgeorge Nov 26, 2024
5fea5fd
fix: update resticinstaller to use the same binary name across versio…
garethgeorge Nov 26, 2024
51a6683
fix: make cancel button more visible for a running operation
garethgeorge Nov 26, 2024
c837a28
chore: move github actions workflows to pnpm
garethgeorge Nov 26, 2024
c0fe325
chore: new test scripts and fixes for MacOS
garethgeorge Nov 26, 2024
62ac934
chore: use pnpm in release validation workflow
garethgeorge Nov 26, 2024
74eb869
fix: substantially improve windows installer experience (#578)
homandr Nov 26, 2024
4f03427
chore: fix resticinstaller for windows tests
garethgeorge Nov 26, 2024
c810d27
fix: tray app infers UI port from BACKREST_PORT or --bind-address if …
garethgeorge Nov 26, 2024
4d7be23
fix: better defaults in add repo / add plan views
garethgeorge Nov 26, 2024
2bd5359
chore(main): release 1.6.2 (#554)
garethgeorge Nov 26, 2024
d955350
chore: migrate to connectrpc es v2 api (#583)
garethgeorge Nov 27, 2024
1bb3cd7
feat: add a "test configuration" button to aid users setting up new r…
garethgeorge Dec 1, 2024
b520d90
Clarify notes about the port for Windows installation (#604)
homandr Dec 6, 2024
b1b7fb9
feat: cont'd windows installer refinements (#603)
homandr Dec 7, 2024
a1e3a70
feat: change payload for healthchecks to text (#607)
herobrauni Dec 10, 2024
1ff69f1
fix: int overflow in exponential backoff hook error policy (#619)
garethgeorge Dec 21, 2024
929a145
chore: use gotestsum for better test summaries
garethgeorge Dec 31, 2024
2eef0b7
Add metric when task fails (#625)
titilambert Jan 2, 2025
b3402a1
fix: avoid ant design url rule as it requires a tld to be present (#626)
chrishoage Jan 5, 2025
a4b4de5
feat: initial backend implementation of multihost synchronization (#…
garethgeorge Jan 8, 2025
dbcaa7b
fix: rare race condition in etag cache when serving webui
garethgeorge Jan 8, 2025
d9cf79b
fix: ogid caching for better insert / update performance
garethgeorge Jan 8, 2025
407652c
fix: ui bugs introduced by repo guid migration
garethgeorge Jan 8, 2025
ad5d396
feat: improve repo view layout when backups from multiple-instances a…
garethgeorge Jan 8, 2025
b8acc12
chore: restrict access to multihost endpoint as an alpha feature
garethgeorge Jan 8, 2025
ace719f
chore: misc prerelease fixes
garethgeorge Jan 8, 2025
6d4b56f
chore(main): release 1.7.0 (#597)
garethgeorge Jan 10, 2025
0dd360b
fix: local network access on macOS 15 Sequoia (#630)
lukaslerche Jan 11, 2025
07a1561
fix: test repo configuration button doesn't work
garethgeorge Jan 12, 2025
41f829c
chore: update devcontainer image (#638)
lukaslerche Jan 12, 2025
6b4d249
chore: fix typo in readme.md (#637)
ayancey Jan 13, 2025
359df89
chore: fix docs github action workflow
garethgeorge Jan 14, 2025
465181e
chore: update README.md to include google cloud storage instructions.…
johnc86 Jan 20, 2025
dd1e18c
fix: add favicon to webui (#649)
Keybored02 Jan 23, 2025
82f05d8
fix: only log important messages e.g. errors or summary for backup an…
garethgeorge Jan 23, 2025
47a4b52
fix: whitespace at start of path can result in invalid restore target
garethgeorge Jan 23, 2025
99264b2
fix: provide an option for auto-initializing repos created externally…
garethgeorge Jan 23, 2025
b3cfef1
fix: test repo configuration button
garethgeorge Jan 23, 2025
b41af55
chore: remove extraneous debug print
garethgeorge Jan 24, 2025
e2402e2
chore(main): release 1.7.1 (#633)
garethgeorge Jan 24, 2025
09449a8
chore: doc updates
garethgeorge Jan 24, 2025
f119e1e
fix: hooks fail to populate a non-nil Plan variable for system tasks
garethgeorge Jan 24, 2025
1a9ecc5
fix: restore path on Windows (#631)
Nassivera Jan 26, 2025
403458f
fix: misaligned favicon (#660)
Keybored02 Jan 30, 2025
d2ac114
fix: incorrectly formatted total size on stats panel (#667)
ayancey Feb 14, 2025
0600733
fix: snapshot still showing after forget until page is refreshed
garethgeorge Feb 14, 2025
146032a
fix: more robust delete repo and misc repo guid related bug fixes
garethgeorge Feb 14, 2025
24b69ee
chore: update build workflow to use actions/upload-artifact@v4
garethgeorge Feb 14, 2025
80f88c5
chore: update other deprecated github actions
garethgeorge Feb 14, 2025
8c4ddee
fix: convert prometheus metrics to use `gauge` type (#640)
titilambert Feb 16, 2025
b885f1e
chore(main): release 1.7.2 (#651)
garethgeorge Feb 16, 2025
113c978
chore: Update Go version and remove workaround (#671)
lukaslerche Feb 19, 2025
3b41d9f
fix: occasional truncated operation history display in repo view
garethgeorge Feb 19, 2025
f25b3ca
chore: cleanup documentation (#674)
garethgeorge Feb 20, 2025
d1cf630
chore: fix indentation in README.md
garethgeorge Feb 20, 2025
988700d
chore: fix typo in run commands modal (#676)
Feb 21, 2025
8bafe7e
fix: improve exported prometheus metrics for task execution and statu…
titilambert Feb 26, 2025
ec95c4a
fix: add priority fields to gotify notifications (#678)
johan-scriptdrift Mar 11, 2025
5ab7553
fix: index snapshots incorrectly creates duplicate entries for snapsh…
garethgeorge Mar 13, 2025
154aef4
fix: support AWS_SHARED_CREDENTIALS_FILE for s3 authentication
garethgeorge Mar 15, 2025
489c6f5
fix: add missing hooks for CONDITION_FORGET_{START, SUCCESS, ERROR}
garethgeorge Mar 15, 2025
abbf239
docs: update hooks.md to document FORGET operation hooks
garethgeorge Mar 15, 2025
9f112bc
fix: hook errors should be shown as warnings in tree view
garethgeorge Mar 15, 2025
1587304
chore: add test coverage for multihost repo index snapshots
garethgeorge Mar 15, 2025
551c08c
chore(main): release 1.7.3 (#673)
garethgeorge Mar 15, 2025
addf49c
fix: restic outputs add newline separators between log messages
garethgeorge Mar 15, 2025
e8ad561
chore: update restic version to 0.18.0 (#712)
github-actions[bot] Mar 28, 2025
5b7e71c
chore: deflake flaky multihost index snapshots test
garethgeorge Mar 30, 2025
b3b1eef
fix: deduplicate indexed snapshots (#716)
garethgeorge Mar 30, 2025
04a58e7
chore: update hook documentation for snapshot start for better detail…
jrich523 Apr 1, 2025
190b3bf
fix: glob escape some linux filename characters (#721)
garethgeorge Apr 1, 2025
ad2c357
chore: release 1.8.0 for restic version upgrade to 0.18.0
garethgeorge Apr 1, 2025
74a6362
chore: update protoutil conditions maps to track new proto values
garethgeorge Apr 2, 2025
2a24b0a
fix: update healthchecks hook to construct urls such that query param…
garethgeorge Apr 2, 2025
5825f36
chore: improve code quality in orchestrator and fix some minor bugs
garethgeorge Apr 2, 2025
1775862
chore(main): release 1.8.0 (#695)
garethgeorge Apr 3, 2025
d7c57a8
fix: batch sqlite store IO to better handle large deletes in migrations
garethgeorge Apr 9, 2025
f5c1bb9
fix: improve formatting of commands printed in logs for debugability
garethgeorge Apr 9, 2025
7460d2d
fix identity loading
garethgeorge Apr 11, 2025
a122973
sync fixes
garethgeorge Apr 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
## Based on microsoft go devcontainer - https://github.com/microsoft/vscode-dev-containers/blob/v0.205.2/containers/go/.devcontainer/Dockerfile
# [Choice] Go version (use -bullseye variants on local arm64/Apple Silicon): 1, 1.16, 1.17, 1-bullseye, 1.16-bullseye, 1.17-bullseye, 1-buster, 1.16-buster, 1.17-buster
ARG VARIANT=1-bullseye
FROM mcr.microsoft.com/vscode/devcontainers/go:${VARIANT}

# [Choice] Node.js version: none, lts/*, 16, 14, 12, 10
ARG NODE_VERSION="none"
RUN if [ "${NODE_VERSION}" != "none" ]; then su vscode -c "umask 0002 && . /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"; fi

RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
&& apt-get -y install --no-install-recommends protobuf-compiler

USER vscode

RUN go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest \
&& go install github.com/bufbuild/buf/cmd/[email protected] \
&& go install github.com/fullstorydev/grpcurl/cmd/grpcurl@latest \
&& go install google.golang.org/protobuf/cmd/protoc-gen-go@latest \
&& go install connectrpc.com/connect/cmd/protoc-gen-connect-go@latest \
&& go install github.com/GeertJohan/go.rice/rice@latest \
&& go install github.com/goreleaser/goreleaser@latest \
&& npm install -g @bufbuild/protoc-gen-es @connectrpc/protoc-gen-connect-es
49 changes: 49 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
{
"name": "Go",
"build": {
"dockerfile": "Dockerfile",
"args": {
// Update the VARIANT arg to pick a version of Go: 1, 1.16, 1.17
// Append -bullseye or -buster to pin to an OS version.
// Use -bullseye variants on local arm64/Apple Silicon.
"VARIANT": "1-1.23-bookworm",
// Options
"NODE_VERSION": "lts/*"
}
},
"runArgs": [
"--cap-add=SYS_PTRACE",
"--security-opt",
"seccomp=unconfined"
],
"customizations": {
"vscode": {
// Set *default* container specific settings.json values on container create.
"settings": {
"go.toolsManagement.checkForUpdates": "local",
"go.useLanguageServer": true,
"go.gopath": "/go",
"go.goroot": "/usr/local/go",
"typescript.tsdk": "webui/node_modules/typescript/lib",
"typescript.enablePromptUseWorkspaceTsdk": true,
"gitlens.telemetry.enabled": false
},
// Add the IDs of extensions you want installed when the container is created.
"extensions": [
"golang.Go",
"ms-azuretools.vscode-docker",
"mhutchie.git-graph",
"eamodio.gitlens",
"donjayamanne.githistory",
"esbenp.prettier-vscode",
"iulian-radu-at.vscode-tasks-sidebar"
]
}
},
// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [],
// Use 'postCreateCommand' to run commands after the container is created.
// "postCreateCommand": "go version",
// Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
"remoteUser": "vscode"
}
2 changes: 2 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
buy_me_a_coffee: garethgeorge
github: garethgeorge
34 changes: 34 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
name: Bug report
about: Report an issue with Backrest
title: ""
labels: bug
assignees: ""
---

Note: if you have a question or need support please post in the [discussions area](https://github.com/garethgeorge/backrest/discussions).

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:

1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Platform Info**

- OS and Architecture [e.g. Windows 10 x64, Darwin arm64]
- Backrest Version [e.g. 0.0.0]

**Additional context**
Add any other context about the problem here.
18 changes: 18 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
name: Feature request
about: Suggest an idea for this project
title: ""
labels: enhancement
assignees: ""
---

Note: if you have a question or want discussion please post in the [discussions area](https://github.com/garethgeorge/backrest/discussions).

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is.

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Additional context**
Add any other context or screenshots about the feature request here.
67 changes: 67 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# This workflow will build a golang project
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-go

name: Build Snapshot Release

on:
push:
branches: ["main"]
paths-ignore:
- "docs/**"
- "*.md"
pull_request:
branches: ["main"]
paths-ignore:
- "docs/**"
- "*.md"
workflow_dispatch:

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: "1.23"

- name: Setup NodeJS
uses: actions/setup-node@v4
with:
node-version: "20"

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 9

- name: Build
uses: goreleaser/goreleaser-action@v5
with:
distribution: goreleaser
version: latest
args: release --snapshot --clean

- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: backrest-snapshot-builds
path: |
dist/*.tar.gz
dist/*.zip

- name: Generate Installers
run: |
mkdir -p dist-installers
./scripts/generate-installers.sh ./dist-installers

- name: Upload Installers
uses: actions/upload-artifact@v4
with:
name: backrest-snapshot-installers
path: dist-installers/*.exe
64 changes: 64 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# This workflow will build a golang project
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-go

name: Docs

on:
push:
branches: ["main"]
paths:
- "docs/**"
workflow_dispatch:

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Set up NodeJS
uses: actions/setup-node@v2
with:
node-version: "20"

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 9

- name: Install dependencies
run: pnpm install --prefix ./docs

- name: Build
run: |
cd docs
pnpm run generate
ls -la .output/public

- name: Fix permissions
run: |
chmod -c -R +rX "docs/.output/public" | while read line; do
echo "::warning title=Invalid file permissions automatically fixed::$line"
done

- name: Upload static files as artifact
id: deployment
uses: actions/upload-pages-artifact@v3 # or specific "vX.X.X" version tag for this action
with:
path: docs/.output/public

deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
permissions:
pages: write
id-token: write
actions: read
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
19 changes: 19 additions & 0 deletions .github/workflows/release-please.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
on:
push:
branches:
- main

permissions:
contents: write
pull-requests: write

name: Release Please

jobs:
release-please:
runs-on: ubuntu-latest
steps:
- uses: google-github-actions/release-please-action@v4
with:
token: ${{ secrets.RELEASE_PLEASE_TOKEN }}
release-type: simple
90 changes: 90 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
name: Tagged Release

on:
push:
tags:
- "*"
workflow_dispatch:

permissions:
contents: write

jobs:
tagged-release:
name: "Tagged Release"
runs-on: "ubuntu-latest"

steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: "1.23"

- name: Setup NodeJS
uses: actions/setup-node@v4
with:
node-version: "20"

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 9

- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v5
with:
distribution: goreleaser
version: latest
args: release --clean
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
HOMEBREW_GITHUB_TOKEN: ${{ secrets.HOMEBREW_GITHUB_TOKEN }}

- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: release-artifacts
path: dist/*

tagged-release-installers:
name: "Tagged Release Installers"
runs-on: "ubuntu-latest"
needs: tagged-release

steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

# download dist artifacts from previous job
- name: Download Artifacts
uses: actions/download-artifact@v4
with:
name: release-artifacts
path: dist

- name: Generate Installers
run: |
mkdir -p dist-installers
./scripts/generate-installers.sh ./dist-installers

- name: Upload Assets
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
with:
files: |
./dist-installers/Backrest-setup-x86_64.exe
./dist-installers/Backrest-setup-arm64.exe
Loading
Loading