Myba - git-based file backup with encryption
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -38,18 +39,25 @@ details[open] summary {border:2px solid black;}
-
-
+
+
+
+
+
+
+
+
'
postamble='
-
+
+
+
'
ext_config_file="$(dirname "$0")/markdown-ext-config.json"
-
{
echo "$preamble"
python -m markdown -v -o html -x extra -x toc -c "$ext_config_file" README.full.md
diff --git a/README.full.md b/README.full.md
index ff6ac70..bde8397 100644
--- a/README.full.md
+++ b/README.full.md
@@ -1,15 +1,16 @@
Myba — git-based backup utility with encryption
=====
-[](https://github.com/kernc/myba/actions)
-[](https://github.com/kernc/myba)
-[](https://github.com/kernc/myba)
+[](https://github.com/kernc/myba/actions)
+[](https://github.com/kernc/myba)
+[](https://github.com/kernc/myba)
+[](https://github.com/kernc/myba)
[](#)
-[](https://github.com/sponsors/kernc)
+[](https://github.com/sponsors/kernc)
[TOC]
-**Myba** (pronounced: mỹba) **is an
+**_Myba_** (pronounced: [_mỹba_](https://www.google.com/search?q=myba)) **is an
open-source, secure, distributed, version-controlled, encrypted
file backup software based on `git`**,
for **Linux, MacOS, BSDs**, and possibly even **Windows/WSL**.
@@ -78,7 +79,7 @@ that **large binaries don't change too often**.
fully **encrypted backups** that are really **easily replicated and synced to the cloud**.
-
+
### Use-cases
@@ -99,7 +100,7 @@ To install everything on a Debian/Ubuntu-based system, run:
# Install dependencies
sudo apt install gzip git git-lfs openssl gpg
-# Download and make available somewhere in path
+# Download and put somewhere on PATH
curl -vL 'https://bit.ly/myba-backup' > ~/.local/bin/myba
export PATH="$HOME/.local/bin:$PATH"
@@ -110,14 +111,14 @@ Note, only one of `openssl` _or_ `gpg` is needed, not both!
It should be similar, if not nearly equivalent, to install on other platforms.
Hopefully you will find most dependencies already satisfied.
-Please report back if you find / manage to get this working under anything but the above configuration and especially Windows/WSL!
+Please report back if you find / manage to get this working under everything but the above configuration and especially Windows/WSL!
Usage
-----
You run the script with arguments according to the usage printout below.
Myba heavily relies on `git` and thus **its command-line usage largely follows that of git convention**.
-Most subcommands pass obtained arguments and options (`"@"`) straight to matching `git` subcommands!
+Most subcommands pass obtained arguments and options (`"$@"`) straight to matching `git` subcommands!
```text
Usage: myba [options]
Subcommands:
@@ -173,7 +174,7 @@ myba add Documents Photos Etc .dotfile
PASSWORD='secret' myba commit -m "my precious"
myba remote add origin "/media/usb/backup"
myba remote add github "git@github.com:user/my-backup.git"
-myba push # Push to all configured remotes & free disk space
+VERBOSE=1 myba push # Push to all configured remotes & free up disk space
# Somewhere else, much, much later, avoiding catastrophe ...
@@ -186,21 +187,23 @@ See [_smoke-test.sh_](https://github.com/kernc/myba/blob/master/smoke-test.sh) f
Contributing
------------
-The project is [hosted on github](https://github.com/kernc/myba/).
+The project is [hosted on GitHub](https://github.com/kernc/myba/).
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](https://github.com/search?q=repo%3Akernc%2Fmyba+%28todo+OR+fixme+OR+xxx%29&type=code)
marked in the source.
**All source code lines are open to discussion.**
-Especially appreciated are clear pointers to targets for simplification.
+Especially appreciated are targets for simplification.
FAQ
---
+
-
-Is git a good tool for backups?
+
+Is git a good tool for backups?
+
Git/myba's inherently core features allow you to:
@@ -217,11 +220,12 @@ Git/myba's inherently core features allow you to:
of people and organizations worldwide,
with long and rigorous release / support cycles.
-
-
-Git doesn't track file owner and access control / permissions ...
+
+
+Git doesn't track file owner and access control / permissions ...?
+
-True. Files commited by any user are restorable by any user with the right password.
+Correct. Files commited by any user are restorable by any user with the right password.
In order to restore files with specific file permission bits set, **defer to
[umask](https://pubs.opengroup.org/onlinepubs/9799919799/utilities/umask.html)**,
e.g.:
@@ -236,23 +240,27 @@ simply **write a small shell wrapper** that takes care of it.
**Welcome to contrib** anything short to the respect
you find widely-applicable and useful.
-
-
-Git isn't optimized for continuously-changing databases and binary files ...
+
+
+Is git optimized for continuously-changing databases and binary files?
+
-That is correct. Git saves whole file snapshots and doesn't do any in-file or within-file
+It's not. Git saves whole file snapshots and doesn't do any in-file or within-file
or across-file deduplication, so it's not well suited to automatic continuous backing up
of databases that change often.
However, while git repositories bloat when commiting large binary and media files,
**_myba_ only ever uses sparse-checkout**, keeping overhead disk space use to a minimum.
-
-
-How to influence what files / filetypes to ignore from backup?
+
+
+How to configure what files / filetypes to ignore from backup?
+
-You can edit `$PLAIN_REPO/info/exclude`, which is prepopulated with default common ignore patterns.
+You can edit `$PLAIN_REPO/info/exclude`, which is prepopulated with
+[default common ignore patterns](https://github.com/search?q=repo%3Akernc%2Fmyba+%22default_gitignore%3D%22&type=code).
You can tweak various other git settings (like config, filters, hooks)
-by modifying files in `$PLAIN_REPO` and `$PLAIN_REPO/_encrypted/.git`.
+by modifying respective files in `$PLAIN_REPO` and (encrypted repo) `$PLAIN_REPO/_encrypted/.git`.
-
+
+
diff --git a/README.md b/README.md
index 32da0b6..b718447 100644
--- a/README.md
+++ b/README.md
@@ -1,13 +1,14 @@
Myba — git-based backup utility w/ encryption
=====
-[](https://github.com/kernc/myba/actions)
-[](https://github.com/kernc/myba)
-[](https://github.com/kernc/myba)
+[](https://github.com/kernc/myba/actions)
+[](https://github.com/kernc/myba)
+[](https://github.com/kernc/myba)
+[](https://github.com/kernc/myba)
[](#)
-[](https://github.com/sponsors/kernc)
+[](https://github.com/sponsors/kernc)
-**Myba** (pronounced: mỹba) **is an
+**_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**.
@@ -29,7 +30,9 @@ See [_smoke-test.sh_](https://github.com/kernc/myba/blob/master/smoke-test.sh) f
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.
+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](https://github.com/search?q=repo%3Akernc%2Fmyba+%28todo+OR+fixme+OR+xxx%29&type=code)
+marked in the source.
**All source code lines are open to discussion.**
-Especially appreciated are clear pointers to targets for simplification.
+Especially appreciated are targets for simplification.