Skip to content

kernc/myba

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

171 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Myba — git-based backup with encryption

Build status Coverage: 98% Language: shell / Bash Source lines of code Script size Issues Sponsors

Myba (pronounced: mỹba) is an open-source, secure, distributed, version-controlled, encrypted file backup software based on git, for Linux, MacOS, BSDs, and possibly even Windows/WSL. In a world of vice, instability, "evergreen" browsers, fast-moving markets and near constant supply chain attacks, it's the only kind of backup—a timeless shell script that relies on few, well-tested, stable technologies. Its only dependencies are:

  • a running shell / standard POSIX environment (sh, bash, zsh, dash, ... WSL?),
  • gzip
  • git (and Git LFS for files sized >40 MB),
  • either OpenSSL (AES256-CTR, no HMAC) or GPG (AES256-CFB, fully AEAD*) for encryption,

all of which one can find most popularly available.

∗ In CTR mode, plaintext contents of encrypted files with (accidental or malicious) bit flips are still recoverable, whereas in the AEAD mode they are not. See anecdote.

Learn more about the project on this backup tool project website.

See test_smoke.sh for a covering example / test case!

Contributing

The script is considered mostly feature-complete, but there remain bugs and design flaws to be discovered and ironed out, as well as any TODOs and FIXMEs marked in the source.

All source code lines are open to discussion. Especially appreciated are targets for simplification and value-added testing.