Vinculum
"The processing device at the core of every Borg vessel. It interconnects the minds of all the drones. It purges individual thoughts and disseminates information relevant to the Collective."
"It brings order to chaos."
- Seven of Nine and Kathryn Janeway, 2375
The architecture consists of 3 distinct parts:
- borg remote server
- borg-drone clients
- borg-vinculum server
The borg remote server is the server on which the backups are saved. It can
provide multiple repositories for multiple clients. It must be reachable by
all other servers and requires borg
and sshd
to be installed.
The vinculum server is responsible for notifying users about failed backups, pruning & compacting the backups regularly. It also provides an administration interface to check the reports from the drones.
Borg-drone is a thin wrapper for borg
itself to provide functionality to:
- execute pre- and post-hooks
- collect stats information about how much time was spent in each step as well as stats about the archive provided by borg itself
- notify the vinculum about any occurred error
As there are currently no prebuilt packages, you have to compile all parts of the projects from source.
To build both (borg-drone
and borg-vinculum
) from source, you need to
have cargo
installed. The recommended way is to use rustup
to manage the installation.
The frontend of borg-vinculum
also requires npm
or yarn
to be installed.
Refer to the official page for installation instructions.
Build borg-drone
and borg-vinculum
executables:
cargo build -r -p borg-drone -p borg-vinculum
The resulting binaries can be found in target/release/
.
Build the frontend for borg-vinculum
:
cd borg-vinculum/frontend/
yarn && yarn build
or with npm
:
cd borg-vinculum/frontend/
npm install && npm run build
The resulting files can be found in dist/
.