Ground up re-write in Python
This is a complete re-write of Nautical from Bash to Python3.
The goal is to make the codebase easier to maintain and develop on--as well as lowering the difficulty for community PR's (since I know Bash isn't the easiest to understand)
The goal with this re-write was to ensure maximum compatibility from the Bash version to the Python version. This update should be seamless and the labels, environment variables, and volume mounts remain unchanged.
Extensive care was taken to re-write all the unit & integration tests to verify all the features were carried over and bugs were squashed on this re-write, but please do not hesitate to create a new issue if something was missed.
Group Containers
This is a heavily requested feature: #164 and #88
Thanks @ecatphi8, @mixpc, and @indomitorum for mentioning this.
Use this label to have multiple containers stopped, backed up, and restarted at the same time.
This is useful for services that require multiple containers.
Default If Missing: none (no groups, will be handed independently)
Format:
<string>
(comma separated for multiple items)
nautical-backup.group=group_name
In this example, we define two groups: paperless
and authentic
.
The redis
container is shared between two groups and will be backed up both times.
paerless-ngx:
labels:
- "nautical-backup.group=paperless"
redis:
labels:
- "nautical-backup.group=paperless,authentic"
authentic-worker:
labels:
- "nautical-backup.group=authentic"
Docker Healthcheks
We now use the Nautical REST API to perform Healthchecks for the container itself. For this reason the API cannot be disabled--however if you do not open the ports it will still be "disabled" externally.
What Else Changed
Full Changelog: v1.4.14...v2.0.0