Container infrastructure for backing up container stacks using Borg
Go to file
2024-02-01 02:31:33 -05:00
stackup
.gitignore
Containerfile
LICENSE.md
Makefile
poetry.lock
pyproject.toml
README.md

stackup

"Backups for your stacks!"

Container infrastructure for backing up container stacks using Borg

Implementation

  1. Wakup
  2. Identify volumes for a selected stack
  3. Identify current container ID
  4. Verify that all volumes for the stack are mounted to the current container
  5. Pull in settings from volume definition
    • Credentials are configured on current container
  6. Assemble borg command(s) to perform backup(s)

Example label structures:

# labels applied to volumes in a stack definition

stackup.enable: 'true'  # whether stackup should look at this volume
stackup.repo.foo.target: 'ssh://blorp@fizz.buzz.com:/backups/thing'  # the borg repo
stackup.repo.foo.naming: 'timestamp|phrase|uuid'  # internal archive name generator choice
stackup.repo.foo.init: 'false'  # whether to initialize the borg repo if it doesn't exist
stackup.repo.foo.exclude[0]: blarg/cache  # path in the volume to exclude from backup
stackup.repo.foo.exclude[1]: run/something.pid  # path in the volume to exclude from backup