diff --git a/.github/scripts/aspell-ignorewords.txt b/.github/scripts/aspell-ignorewords.txt index 72781c2..03995d7 100644 --- a/.github/scripts/aspell-ignorewords.txt +++ b/.github/scripts/aspell-ignorewords.txt @@ -80,3 +80,7 @@ vqwg worktree zsh vL +FAQPage +acceptedAnswer +mainEntity +typeof diff --git a/.github/scripts/build-website.sh b/.github/scripts/build-website.sh index c19f0f8..2924be3 100755 --- a/.github/scripts/build-website.sh +++ b/.github/scripts/build-website.sh @@ -4,19 +4,20 @@ mkdir -p output cp icon.svg output preamble=' - + 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 ===== -[![Build Status](https://img.shields.io/github/actions/workflow/status/kernc/myba/ci.yml?branch=master&style=for-the-badge)](https://github.com/kernc/myba/actions) -[![Source lines of code](https://img.shields.io/endpoint?url=https://ghloc.vercel.app/api/kernc/myba/badge?filter=myba.sh$&style=for-the-badge&logo=github&color=skyblue&label=SLOC)](https://github.com/kernc/myba) -[![Script size](https://img.shields.io/github/size/kernc/myba/myba.sh?style=for-the-badge&logo=github&color=skyblue)](https://github.com/kernc/myba) +[![Build status](https://img.shields.io/github/actions/workflow/status/kernc/myba/ci.yml?branch=master&style=for-the-badge)](https://github.com/kernc/myba/actions) +[![Language: shell / Bash](https://img.shields.io/badge/lang-Shell-skyblue?style=for-the-badge)](https://github.com/kernc/myba) +[![Source lines of code](https://img.shields.io/endpoint?url=https://ghloc.vercel.app/api/kernc/myba/badge?filter=myba.sh$&style=for-the-badge&color=skyblue&label=SLOC)](https://github.com/kernc/myba) +[![Script size](https://img.shields.io/github/size/kernc/myba/myba.sh?style=for-the-badge&color=skyblue)](https://github.com/kernc/myba) [![Issues](https://img.shields.io/github/issues/kernc/myba?style=for-the-badge)](#) -[![GitHub Sponsors](https://img.shields.io/github/sponsors/kernc?color=pink&style=for-the-badge)](https://github.com/sponsors/kernc) +[![Sponsors](https://img.shields.io/github/sponsors/kernc?color=pink&style=for-the-badge)](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 ===== -[![Build Status](https://img.shields.io/github/actions/workflow/status/kernc/myba/ci.yml?branch=master&style=for-the-badge)](https://github.com/kernc/myba/actions) -[![Source lines of code](https://img.shields.io/endpoint?url=https://ghloc.vercel.app/api/kernc/myba/badge?filter=myba.sh$&style=for-the-badge&logo=github&color=skyblue&label=SLOC)](https://github.com/kernc/myba) -[![Script size](https://img.shields.io/github/size/kernc/myba/myba.sh?style=for-the-badge&logo=github&color=skyblue)](https://github.com/kernc/myba) +[![Build status](https://img.shields.io/github/actions/workflow/status/kernc/myba/ci.yml?branch=master&style=for-the-badge)](https://github.com/kernc/myba/actions) +[![Language: shell / Bash](https://img.shields.io/badge/lang-Shell-skyblue?style=for-the-badge)](https://github.com/kernc/myba) +[![Source lines of code](https://img.shields.io/endpoint?url=https://ghloc.vercel.app/api/kernc/myba/badge?filter=myba.sh$&style=for-the-badge&color=skyblue&label=SLOC)](https://github.com/kernc/myba) +[![Script size](https://img.shields.io/github/size/kernc/myba/myba.sh?style=for-the-badge&color=skyblue)](https://github.com/kernc/myba) [![Issues](https://img.shields.io/github/issues/kernc/myba?style=for-the-badge)](#) -[![GitHub Sponsors](https://img.shields.io/github/sponsors/kernc?color=pink&style=for-the-badge)](https://github.com/sponsors/kernc) +[![Sponsors](https://img.shields.io/github/sponsors/kernc?color=pink&style=for-the-badge)](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.