-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
DOC: Readme and website improvements
- Loading branch information
Showing
4 changed files
with
74 additions
and
49 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -80,3 +80,8 @@ vqwg | |
worktree | ||
zsh | ||
vL | ||
FAQPage | ||
acceptedAnswer | ||
addEventListener | ||
mainEntity | ||
typeof |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,15 +1,16 @@ | ||
<img src="icon.svg" width="64" alt/> 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**. | ||
|
@@ -77,8 +78,9 @@ that **large binaries don't change too often**. | |
**Myba** is **Git + Shell**, preconfigured and wrapped as thinly as needed to provide | ||
fully **encrypted backups** that are really **easily replicated and synced to the cloud**. | ||
|
||
<script src="https://ssl.gstatic.com/trends_nrtr/3826_RC01/embed_loader.js"></script> | ||
<script>var now=(new Date()).toISOString().split('T')[0]; window.trends.embed.renderExploreWidget("TIMESERIES", {"comparisonItem":[{"keyword":"/m/02mhh1","geo":"","time":"2004-01-01 "+now},{"keyword":"/m/05vqwg","geo":"","time":"2004-01-01 "+now},{"keyword":"/m/0ryppmg","geo":"","time":"2004-01-01 "+now}],"category":0,"property":""}, {"exploreQuery":"q=%2Fm%2F02mhh1,%2Fm%2F05vqwg,%2Fm%2F0ryppmg&date=all#TIMESERIES","guestPath":"https://trends.google.com:443/trends/embed/"})</script> | ||
<script async src="https://ssl.gstatic.com/trends_nrtr/3826_RC01/embed_loader.js"></script> | ||
<div id="trends"></div> | ||
<script>addEventListener("load", () => window.trends.embed.renderExploreWidgetTo(document.getElementById("trends"), "TIMESERIES", {"comparisonItem":[{"keyword":"/m/02mhh1","geo":"","time":"all"},{"keyword":"/m/05vqwg","geo":"","time":"all"},{"keyword":"/m/0ryppmg","geo":"","time":"all"},{"keyword":"myba","geo":"","time":"all"}],"category":0,"property":""}, {"exploreQuery":"date=all&q=%2Fm%2F02mhh1,%2Fm%2F05vqwg,%2Fm%2F0ryppmg,myba#TIMESERIES","guestPath":"https://trends.google.com:443/trends/embed/"}));</script> | ||
|
||
|
||
### Use-cases | ||
|
@@ -99,7 +101,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 +112,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 <subcommand> [options] | ||
Subcommands: | ||
|
@@ -173,7 +175,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 "[email protected]: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 +188,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 | ||
--- | ||
<div property="about" typeof="FAQPage"> | ||
|
||
<details markdown="1"> | ||
<summary>Is git a good tool for backups?</summary> | ||
<details markdown="1" property="mainEntity" typeof="Question"> | ||
<summary property="name">Is git a good tool for backups?</summary> | ||
<div property="acceptedAnswer" typeof="Answer"><div property="text"> | ||
|
||
Git/myba's inherently core features allow you to: | ||
|
||
|
@@ -217,11 +221,12 @@ Git/myba's inherently core features allow you to: | |
of people and organizations worldwide, | ||
with long and rigorous release / support cycles. | ||
|
||
</details> | ||
<details markdown="1"> | ||
<summary>Git doesn't track file owner and access control / permissions ...</summary> | ||
</div></div></details> | ||
<details markdown="1" property="mainEntity" typeof="Question"> | ||
<summary property="name">Git doesn't track file owner and access control / permissions ...?</summary> | ||
<div property="acceptedAnswer" typeof="Answer"><div property="text"> | ||
|
||
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 +241,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. | ||
|
||
</details> | ||
<details markdown="1"> | ||
<summary>Git isn't optimized for continuously-changing databases and binary files ...</summary> | ||
</div></div></details> | ||
<details markdown="1" property="mainEntity" typeof="Question"> | ||
<summary property="name">Is git optimized for continuously-changing databases and binary files?</summary> | ||
<div property="acceptedAnswer" typeof="Answer"><div property="text"> | ||
|
||
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. | ||
|
||
</details> | ||
<details markdown="1"> | ||
<summary>How to influence what files / filetypes to ignore from backup?</summary> | ||
</div></div></details> | ||
<details markdown="1" property="mainEntity" typeof="Question"> | ||
<summary property="name">How to configure what files / filetypes to ignore from backup?</summary> | ||
<div property="acceptedAnswer" typeof="Answer"><div property="text"> | ||
|
||
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`. | ||
|
||
</details> | ||
</div></div></details> | ||
</div> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters