@@ -84,8 +84,10 @@ fully **encrypted backups** that are really **easily replicated and synced to th
84
84
### Use-cases
85
85
86
86
* ** Zero-knowledge cloud sync and storage**
87
- * Replace or supplement existing ** poor complex and proprietary solutions** (like Veeam, Time Machine, Google Photos & Drive, iCloud)
88
- or software programs with ** complex and unfamiliar CLI APIs or wide attack surfaces** (Bacula, Borg Backup, restic) ...
87
+ * Replace or supplement existing ** poor complex and proprietary solutions**
88
+ (like Veeam, Time Machine, Google Photos & Drive, iCloud)
89
+ or software programs with ** complex and unfamiliar CLI APIs or wide attack surfaces**
90
+ (Bacula, Borg Backup, restic, git-crypt) ...
89
91
* Cloud-based serverless virii
90
92
* ** Protocol- and PaaS-agnostic** design (AWS to Backblaze B2, GitLab to Gitea). Simply sync (even rsync) a git folder.
91
93
@@ -98,7 +100,7 @@ To install everything on a Debian/Ubuntu-based system, run:
98
100
sudo apt install gzip git git-lfs openssl gpg
99
101
100
102
# Download and make available somewhere in path
101
- curl -L https://bit.ly/myba-backup > ~ /.local/bin/myba
103
+ curl -vL ' https://bit.ly/myba-backup' > ~ /.local/bin/myba
102
104
export PATH=" $HOME /.local/bin:$PATH "
103
105
104
106
myba help
@@ -150,12 +152,13 @@ The script also acknowledges a few **environment variables** which you can _set_
150
152
* ` PLAIN_REPO= ` The _ internal_ directory where myba actually stores both its repositories.
151
153
Defaults to ` $WORK_TREE/.myba ` but can be overriden to somewhere out-of-tree ...
152
154
* ` PASSWORD= ` The password to use for encryption instead of asking / reading from stdin.
153
- * ` USE_GPG= ` Myba uses ` openssl enc ` by default, but if you prefer to use GPG for symmetric encryption, set ` USE_GPG=1 ` .
154
- * ` KDF_ITERS= ` A sufficient number of iterations is used for the encryption key derivation function.
155
- To specify your own value and avoid rainbow table attacks on myba itself, you can customize this value.
156
- If you don't know, just leave it.
157
- * ` YES_OVERWRITE= ` If set, overwrite existing when restoring/checking out files that already exist in $WORK_TREE.
158
- The default is to ask instead.
155
+ * ` USE_GPG= ` Myba uses ` openssl enc ` by default, but if you prefer to use GPG even for
156
+ symmetric encryption, set ` USE_GPG=1 ` .
157
+ * ` KDF_ITERS= ` A sufficient number of iterations is used for the encryption key derivation
158
+ function. To specify your own value and avoid rainbow table attacks on myba itself,
159
+ you can customize this value. If you don't know, just leave it.
160
+ * ` YES_OVERWRITE= ` If set, overwrite existing when restoring/checking out files that already
161
+ exist in $WORK_TREE. The default is to ask instead.
159
162
* ` VERBOSE= ` More verbose output about what the program is doing.
160
163
161
164
@@ -167,15 +170,15 @@ export WORK_TREE="$HOME"
167
170
168
171
myba init
169
172
myba add Documents Photos Etc .dotfile
170
- PASSWORD=secret myba commit -m " my precious"
173
+ PASSWORD=' secret' myba commit -m " my precious"
171
174
myba remote add origin " /media/usb/backup"
172
175
myba remote add github " git@github.com:user/my-backup.git"
173
176
myba push # Push to all configured remotes & free disk space
174
177
175
178
# Somewhere else, much, much later, avoiding catastrophe ...
176
179
177
180
export WORK_TREE=" $HOME "
178
- PASSWORD=secret myba clone " ..." # Clone one of the known remotes
181
+ PASSWORD=' secret' myba clone " ..." # Clone one of the known remotes
179
182
myba checkout " .dotfile" # Restore backed up files in a space-efficient manner
180
183
```
181
184
See [ _ smoke-test.sh_ ] ( https://github.com/kernc/myba/blob/master/smoke-test.sh ) file for a more full example & test case!
@@ -185,8 +188,10 @@ Contributing
185
188
------------
186
189
The project is [ hosted on github] ( https://github.com/kernc/myba/ ) .
187
190
188
- The script is considered _ mostly_ feature-complete, but there remain bugs and design flaws to be discovered and ironed out,
189
- as well as any TODOs and FIXMEs marked in the source.
191
+ The script is considered _ mostly_ feature-complete, but there remain
192
+ bugs and design flaws to be discovered and ironed out, as well as any
193
+ [ TODOs and FIXMEs] ( https://github.com/search?q=repo%3Akernc%2Fmyba+%28todo+OR+fixme+OR+xxx%29&type=code )
194
+ marked in the source.
190
195
** All source code lines are open to discussion.**
191
196
Especially appreciated are clear pointers to targets for simplification.
192
197
@@ -235,8 +240,9 @@ you find widely-applicable and useful.
235
240
<details markdown =" 1 " >
236
241
<summary >Git isn't optimized for continuously-changing databases and binary files ...</summary >
237
242
238
- That is correct. Git saves whole file snapshots and doesn't do any in-file or within-file deduplication,
239
- so it's not well suited to automatic continuous backing up of databases that change often.
243
+ That is correct. Git saves whole file snapshots and doesn't do any in-file or within-file
244
+ or across-file deduplication, so it's not well suited to automatic continuous backing up
245
+ of databases that change often.
240
246
241
247
However, while git repositories bloat when commiting large binary and media files,
242
248
** _ myba_ only ever uses sparse-checkout** , keeping overhead disk space use to a minimum.
0 commit comments