From a221189356ca81f3c5401440969a6cdee20f9914 Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Fri, 16 Apr 2021 08:25:36 +0000
Subject: [PATCH] doc
---
doc/ExampleBorgConfig.adoc | 116 ++++++++++++++++++++++++++++++++++++++
README.adoc | 10 +++
doc/Development.adoc | 18 ------
3 files changed, 126 insertions(+), 18 deletions(-)
diff --git a/README.adoc b/README.adoc
index f4be5c5..cc6e078 100644
--- a/README.adoc
+++ b/README.adoc
@@ -69,6 +69,12 @@
You may refer the log file through the web browser or in `$HOME/BorgButler/borgbutler.log`.
+=== Starting from Java zip
+You'll need OpenJDK 9+.
+
+1. Download BorgButler from https://sourceforge.net/projects/borgbutler/files/latest/download
+2. Unzip `borgbutler-server/build/distributions/borgbutler-server-<version>.zip`
+3. Run `bin/borgbutler-server` or `bin/borgbutler-server.bat`.
=== Starting from sources
You'll need OpenJDK 9+ as well as gradle.
@@ -109,6 +115,10 @@
showDemoRepos: false
----
+== Example on how to script backups (Linux/MacOS)
+Here: link:doc/ExampleBorgConfig{outfilesuffix}[Installation]
+
+
==== Backups of configuration files
You may configure and initialize your repositories by the BorgButler app. The config file is generated by BorgButler. Before
diff --git a/doc/Development.adoc b/doc/Development.adoc
index c12086e..c819664 100644
--- a/doc/Development.adoc
+++ b/doc/Development.adoc
@@ -24,24 +24,6 @@
== Build and start inside your IDE
-=== Lombok required
-[.text-center]
-https://github.com/mplushnikov/lombok-intellij-plugin[Lombok Intellij plugin description^] +
-[.text-left]
-Or go to
-[.text-center]
-https://projectlombok.org/[Lombok home page^] +
-[.text-left]
-
-* Using IDE built-in plugin system on Windows: +
- File > Settings > Plugins > Browse repositories... > Search for "lombok" > Install Plugin
-* Using IDE built-in plugin system on MacOs: +
- Preferences > Settings > Plugins > Browse repositories... > Search for "lombok" > Install Plugin
-* Manually: +
- Download the latest release and install it manually using Preferences > Plugins > Install plugin from disk..
-* In your project: Click Preferences -> Build, Execution, Deployment -> Compiler, Annotation Processors. Click Enable Annotation Processing
-
-
=== Start borgbutler-server
1. `cd borgbutler-webapp`
2. `npm install`
diff --git a/doc/ExampleBorgConfig.adoc b/doc/ExampleBorgConfig.adoc
new file mode 100644
index 0000000..578e931
--- /dev/null
+++ b/doc/ExampleBorgConfig.adoc
@@ -0,0 +1,116 @@
+Micromata BorgBackup-Butler
+===========================
+Micromata GmbH, Kai Reinhard
+:toc:
+:toclevels: 4
+
+Copyright (C) 2018-2021
+
+ifdef::env-github,env-browser[:outfilesuffix: .adoc]
+
+
+== Examples
+
+=== Borg script client
+
+[source,bash]
+----
+#!/bin/sh
+BORG_COMMAND=~/.borgbutler/bin/borg-macosx64-1.1.8
+
+# Setting this, so the repo does not need to be given on the commandline:
+export BORG_REPO=ssh://horst@borgbackup.acme.priv:23/backups/myLaptop
+export BORG_RSH='ssh -i /home/horst/.ssh/borgbackup'
+
+# Setting this, so you won't be asked for your repository passphrase:
+# export BORG_PASSPHRASE='XYZl0ngandsecurepa_55_phrasea&&123'
+# or this to ask an external program to supply the passphrase:
+export BORG_PASSCOMMAND="cat /home/horst/.borg-passphrase"
+
+# Intialization:
+# 1. export BORG_PASSCOMMAND="cat /home/horst/.borg-passphrase"
+# 2. BORG_RSH='ssh -i /home/horst/.ssh/borgbackup'
+# 3. borg init --encryption=repokey ssh://horst@@borgbackup.acme.priv:23/backups/myLaptop
+
+
+case "$1" in
+ break-lock)
+ borg break-lock $BORG_REPO
+ exit 1
+ ;;
+ info)
+ borg info $BORG_REPO
+ exit 1
+ ;;
+ create)
+ echo Creating backup
+ ;;
+ *)
+ echo "Usage: $0 {break-lock|create|info}" >&2
+ exit 1
+ ;;
+esac
+
+# some helpers and error handling:
+info() { printf "\n%s %s\n\n" "$( date )" "$*" >&2; }
+trap 'echo $( date ) Backup interrupted >&2; exit 2' INT TERM
+
+info "Starting backup"
+
+# Backup the most important directories into an archive named after
+# the machine this script is currently running on:
+
+$BORG_COMMAND create \
+ --filter AME \
+ --stats \
+ --progress \
+ --show-rc \
+ --compression lz4 \
+ --exclude-caches \
+ --exclude '/home/*/.cache/*' \
+ --exclude '/Users/*/.cache/*' \
+ --exclude '/var/cache/*' \
+ --exclude '/var/tmp/*' \
+ --exclude '*/Caches/*' \
+ --exclude '*/.m2/*' \
+ --exclude '/Users/horst/Library/*' \
+ --exclude '/Users/horst/Music/iTunes/iTunes\ Music/*' \
+ --exclude '/Users/horst/Backup/Archive' \
+ --exclude '/Users/horst/Downloads' \
+ ::'myLaptop-{now}' \
+ /home/horst \
+
+backup_exit=$?
+
+info "Pruning repository"
+
+# Use the `prune` subcommand to maintain 7 daily, 4 weekly and 6 monthly
+# archives of THIS machine. The '{hostname}-' prefix is very important to
+# limit prune's operation to this machine's archives and not apply to
+# other machines' archives also:
+
+$BORG_COMMAND prune \
+ --list \
+ --prefix 'myLaptop-' \
+ --show-rc \
+ --keep-daily 7 \
+ --keep-weekly 4 \
+ --keep-monthly 6 \
+
+prune_exit=$?
+
+# use highest exit code as global exit code
+global_exit=$(( backup_exit > prune_exit ? backup_exit : prune_exit ))
+
+if [ ${global_exit} -eq 1 ];
+then
+ info "Backup and/or Prune finished with a warning"
+fi
+
+if [ ${global_exit} -gt 1 ];
+then
+ info "Backup and/or Prune finished with an error"
+fi
+
+exit ${global_exit}
+----
--
Gitblit v1.10.0