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 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.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ezbak-1.0.0.tar.gz.
File metadata
- Download URL: ezbak-1.0.0.tar.gz
- Upload date:
- Size: 43.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5e97804d06af2f92d60f4dcfe616880de42b70563cbba36a92f8447c256994e3
|
|
| MD5 |
19594ee709a6e29700500bc6325dc939
|
|
| BLAKE2b-256 |
3cb4970f9694aa6bc7afeb904684960102e0714f6dd7aa93243a4a4c49316da5
|
File details
Details for the file ezbak-1.0.0-py3-none-any.whl.
File metadata
- Download URL: ezbak-1.0.0-py3-none-any.whl
- Upload date:
- Size: 53.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
93a9346ada90256aa08736480cd1adfea7bc44942819232bc956870542961e51
|
|
| MD5 |
abb5ea734370ff7b58d16c458fbea5f6
|
|
| BLAKE2b-256 |
7189c489faff5f6fd94eba4bf93817aa1294193548feb361ed965f0fa65ae64a
|