ezbak
ezbak is a backup manager. It creates, prunes, and restores compressed archives of files and directories on the local filesystem, in AWS S3, or both, with regex file filtering, count-based and time-based retention, and point-in-time restore. It was written primarily to move shared state between jobs and hosts in an orchestrated environment like Nomad or Kubernetes. In that setting the Docker container is the main way to run it; a Python package and a command-line tool run the same backups from your own code or a shell.
ezbak is a small, focused backup manager. It does not aim to replace restic, borg, or a full backup system.
Documentation
Full documentation lives at natelandau.github.io/ezbak:
- Quickstart: a first backup in five minutes
- The orchestration pattern: backups that follow a job across hosts, with Nomad and Kubernetes examples
- Configuration reference: every option across the library, CLI, and environment
Install
uv add ezbak # Python package
uv tool install ezbak # command-line tool
docker pull ghcr.io/natelandau/ezbak:latest # container
ezbak requires Python 3.11.4 or higher.
Quickstart
Each interface runs the same backup. Every example below writes a
my-backup-<timestamp>.tgz archive to the storage location.
Python:
from ezbak import ezbak
backups = ezbak(name="my-backup", source_paths=["/data"], storage_paths=["/backups"], keep_last=7)
backups.create_backup()
backups.restore_backup(restore_path="/restore")
Command line:
ezbak --name my-backup --storage ~/Backups create --source ~/Documents
Container:
docker run -it \
-v /path/to/source:/source:ro \
-v /path/to/backups:/backups \
-e EZBAK_ACTION=backup \
-e EZBAK_NAME=my-backup \
-e EZBAK_SOURCE_PATHS=/source \
-e EZBAK_STORAGE_PATHS=/backups \
-e EZBAK_KEEP_LAST=7 \
ghcr.io/natelandau/ezbak:latest
See the quickstart for listing and restoring across all three.
Contributing
See CONTRIBUTING.md.
Metadata
Release files for ezbak 1.5.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ezbak-1.5.1.tar.gz | 69.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ezbak-1.5.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 150.5 kB
Release files / ezbak-1.5.1.tar.gz
| Download URL | ezbak-1.5.1.tar.gz |
|---|---|
| Size | 69.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7349fde0960e20bad090cf7e5a1f2aeff6c8c67f372ac06d4b36cc83bf20ece2
|
|
BLAKE2b-256 checksum How to use checksums |
a5df75d2395843f87d6a82fe5fd6847a4c4b3bfff8f10244b68b410e652e8b55
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / ezbak-1.5.1-py3-none-any.whl
| Download URL | ezbak-1.5.1-py3-none-any.whl |
|---|---|
| Size | 80.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
446176e6a78e4dec363bae363cbed9bfc2c614cafa58849a9de333b1fa8ea10a
|
|
BLAKE2b-256 checksum How to use checksums |
dcd4382bd247b3e7992b49d9deec37a404fa7da3d550fa8677ce836ad6c7728f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|