Skip to content

Releases: depado/buoy

v0.1.3

Choose a tag to compare

@depado depado released this 24 Jun 21:16

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.3

Docker

docker pull ghcr.io/depado/buoy:0.1.3

Changelog

Features

Fixes

Refactors

Others

v0.1.2

Choose a tag to compare

@depado depado released this 21 Jun 13:31

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

Choose a tag to compare

@depado depado released this 20 Jun 19:10

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

Choose a tag to compare

@depado depado released this 19 Jun 23:44

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