2024-02-01 04:44:28 +00:00
|
|
|
# stackup
|
2023-03-15 00:08:26 +00:00
|
|
|
|
2024-02-01 07:31:04 +00:00
|
|
|
> "Backups for your stacks!"
|
|
|
|
|
2024-02-01 04:44:28 +00:00
|
|
|
Container infrastructure for backing up container stacks using Borg
|
2024-02-01 07:31:04 +00:00
|
|
|
|
|
|
|
|
|
|
|
## 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:
|
|
|
|
|
|
|
|
```yaml
|
|
|
|
# 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
|
|
|
|
```
|