Releases: depado/buoy
Releases · depado/buoy
Release list
v0.1.3
buoy 0.1.3
Backup Docker container volumes and bind mounts using restic as the backend.
Quick Install
# Download daemon binary
curl -sSL "https://github.com/depado/buoy/releases/download/v0.1.3/buoy_Linux_x86_64.tar.gz" | tar xz
# Download CLI
curl -sSL "https://github.com/depado/buoy/releases/download/v0.1.3/buoyctl_$(go env GOOS)_x86_64.tar.gz" | tar xz
# Or via Go
go install github.com/depado/buoy/cmd/buoy@v0.1.3
go install github.com/depado/buoy/cmd/buoyctl@v0.1.3Docker
docker pull ghcr.io/depado/buoy:0.1.3Changelog
Features
- bd84780: feat(cli): rework package layout (@depado)
- 236eb49: feat: discover command to help with volume mapping (@depado)
- ef51cec: feat: split buoy daemon and client (@depado)
Fixes
- f1c1eda: fix(deps): update module go.etcd.io/bbolt to v1.5.0 (#8) (@renovate[bot])
- 7eafde2: fix(lint): fix golangci-lint errors (@depado)
- 2ffca68: fix(lint): fix lint errors (@depado)
- 5f755b5: fix(renovate): ignore own dep properly (@depado)
- 3aa6aaa: fix: add client lib (@depado)
- 51ab564: fix: flag parsing, package isolation, version injection (@depado)
- 1a051cc: fix: lint issues (@depado)
- d6d49c1: fix: proper sum for gorich (@depado)
Refactors
Others
v0.1.2
Changelog
- e48854a docs(readme): update readme for better presentation and up to date docs
- b63e974 feat(api): require specific repo for destructive operations
- c4ae71e fix(notify): send summary instead of every failure
- 525e6c6 fix(renovate): ignore own package
- 186c037 fix: add failguard when running destructive operations while backup is in progress
- f64d99f fix: docker badge on the same line
- 4814466 fix: preallocate failure slices
v0.1.1
Changelog
- 8500a6a docs(readme): add badges
- 2d9bb52 feat: add API and CLI commands
- 696d811 feat: multiarch docker build, remove windows binary, golangci conf
- 785f1d0 fix(api): add ?orphaned filter to stats endpoint
- d9704f7 fix(backup): always restart container after StopContainer succeeds
- 860147d fix(backup): skip retention when backup fails
- 245d295 fix(backup): use structured logger for hook error messages
- 0a87adb fix(docker): merge retention label into defaults instead of replacing
- 3e9a077 fix: download restic before build to benefit from caching
- 0cfbb8f fix: revert restic env and skip backup when container fails to stop
- c7bf6ab perf(backup): replace polling with Docker event-driven waiter
- e36323b perf(registry): skip bbolt write when repo entry unchanged
- d696930 refactor(api): consolidate duplicate result types
- 61a1111 refactor(backup): use parseConfig wrapper in stop paths
- ade5fcf refactor(registry): remove dead HasRepos method
- faa7e54 refactor: deduplicate splitAndTrim across packages
- 492c55c security(api): add ReadTimeout and IdleTimeout to HTTP server
- 27c6c87 security(api): use constant-time comparison for bearer token
- 4e5749a security(restic): pass minimal environment to restic subprocess
v0.1.0
Changelog
- 63a0f82 Merge pull request #1 from depado/renovate/golang-1.26.4-alpine
- 3564fba chore(config): migrate config .github/renovate.json (#5)
- 6207241 chore(deps): bump dependencies
- d655d30 chore(deps): bump deps and cleanup
- 9018189 chore(deps): update golang:1.26.4-alpine docker digest to 3ad5730 (#3)
- ccf2a77 ci: docker workflow
- de0540e docs(readme): document notification system
- 6d5d16d docs(readme): properly document check, compression and backup timeout behaviors
- c7659e8 docs(readme): properly document check, compression and backup timeout behaviors
- 240816d docs(readme): update docs about compose services
- 6cbf367 feat(config): support multiple restic repos at once
- 6c0dfa3 feat(notify): send success notifications for completed backups
- 4cf494d feat(restic): add Check method for repository health verification
- 1738c7f feat: add periodic restic check for repository health verification
- aefad47 feat: exclude bind mounts, portable backups
- ed2478b feat: implement restic periodic check on repos
- 8e460cd feat: initial commit
- a8de84a feat: initial naive implementation
- fee275b feat: rework concurrency, wait for backup before exit, more sensible default retention
- e2e0fd9 feat: third-audit improvements
- df26fda fix(backup): absolutify repo path in applyRetention
- fa0c479 fix(backup): add context cancellation to waitRunning
- 0c04eed fix(backup): deterministic topological sort order with cycles
- 34429ab fix(backup): guard nil backup summary before dereference
- 1e07510 fix(backup): log snapshot ID when file-level errors occur
- b948e14 fix(backup): release ignored IDs immediately on stop failure in RunStackBatch
- d0e9ec8 fix(backup): release ignoredIDs on stop failure in Run
- c44c464 fix(backup): release ignoredIDs on stop failure in RunStackBatch
- 3932c56 fix(backup): skip backup for containers whose stop failed in stack batch
- 60bec3a fix(backup): warn on dependency cycles in topological sort
- 7ba292d fix(config): surface config file parse errors
- b297d3f fix(docker): cancel event stream context on reconnect to prevent goroutine leak
- fb8b095 fix(restic): return file-level backup errors instead of discarding
- 5fd339d fix(runner): restore byId lookup
- a76fe4b fix(scheduler): store and use default schedule/retention
- 31d24a1 fix(scheduler): wire periodic Resync for label change detection
- e9890bd fix: add timeouts to ExecInContainer, waitForCondition, and waitRunning
- ae1fdac fix: auto-update restic version in dockerfile
- e8b20b4 fix: centralize logging and improve logger
- 087b920 fix: properly handle sigint by starting restic in its own process group
- 6a238bb fix: stabilize conf, compression level, panic recovery
- 22b6e53 perf(backup): compute service deps once in RunStackBatch
- a56348f perf(backup): eliminate double container inspect in RunStackBatch
- 9298581 perf(backup): run pre-hooks in parallel for compose stack batches
- 0e7d853 refactor(backup): extract resolveRepo helper
- fafe6ef refactor(docker): eliminate goto in watcher event loop
- b9dc2b9 refactor(restic): remove dead parseStderr code path
- 7f3283c refactor: consolidate duplicate duration-parsing helpers
- 05a8f9e refactor: proper typing, code deduplication, buffered channels
- 0267cff refactor: remove dead code (depConditions, ParseInit, InitResult)
- 0c98f27 refactor: unify RetentionConfig and RetentionPolicy types
- 33356e3 revert(backup): re-inspect batch containers instead of byID lookup
- ebe3865 security: use --password-file instead of env var for restic password
- aee081b wip: better handling of compose stacks, respect order and depends_on when restarting