The plugin provides UI for managing local and remote Borg backups on shell-less and shell-equipped DirectAdmin accounts.
Note the plugin is dedicated mostly for users who want to keep regular backup of most important files/databases even locally or remotely (free remote BorgBase etc.). Admins usually have a script (may be run in Directadmin postbackup hook or as a cron job) that backups all accounts and this plugin is not intended to be a replacement for such a server-wide backup.
Features
- Create/extract/check/prune/info/delete borg command support
- Local and remote repository support (e.g. BorgBase)
- Deduplication and compression efficiency graph
- Exclusion patterns and exclusion file support
- Pre and post backup scripts for database dumps included
- Cron run backup, prune and check + send results by email
- Full and brief (directories only) JStree indexes to choose what should be extracted
- Background task log browsing
daborgenv
profile loader for easy borg command line activity- Support and feature request form
- Language support
See demo screencast below.
Prerequisites
As prerequsites you should have Borg Backup and Perl’s JSON module.
CentOS 7 and 8
yum -y install borgbackup perl-JSON perl-JSON-PP
Debian 10
apt -y install borgbackup libjson-perl libjson-pp-perl
Plugin installation
You will receive plugin download URL in your license email. Now you can install the plugin.
Then (still as user admin) check plugin’s Config page to see if everything looks good (green). After you drop borg.lic
into plugin’s directory additional lines with licence info will appear.
Plugin demo
Notes
- You can use
daborgenv
to facilitate setting borg variables when using command line. Example:
[admin@ud1 ~]$ daborgenv
*** AVAILABLE PROFILES:
local1_r3
local_databases
local_db2
local_db3
local_t1
remote_us
The script should be sourced like this:
. daborgenv [PROFILE_NAME]
[admin@ud1 ~]$ . daborgenv local1_r3
export BORG_REPO=/home/admin/.da-borg/repos/r3
export BORG_PASSPHRASE=5cccccc569511d88ccccccd4e20d99cd
[admin@ud1 ~]$ borg info
Repository ID: bb5d4bdf8052222ad4bfff1b2866666666666928fbd09a8745bbe5f56bed11c7
Location: /home/admin/.da-borg/repos/r3
Encrypted: Yes (authenticated BLAKE2b)
Cache: /home/admin/.cache/borg/bb5d4bdf8052233ad4bfff1b33333333a6555928fbd09a8745bbe5f56bed11c7
Security dir: /home/admin/.config/borg/security/bb5d4bdf8052233ad444444444444756a6555928fbd09a8745bbe5f56bed11c7
------------------------------------------------------------------------------
Original size Compressed size Deduplicated size
All archives: 40.23 MB 7.15 MB 2.65 MB
Unique chunks Total chunks
Chunk index: 430 1582
To add your language, copy existing language in
/usr/local/directadmin/plugins/borg/lang
to a new directory named according to your language and translate strings insidemessages.po
. To translate menu follow instructions in HOWTO file inlang
directory.Pre and post backup scripts can be used to dump databases. You can find tested examples in
/usr/local/directadmin/plugins/borg/bin
directory and share them with your users.To exclude Borg repo from being backed up by DirectAdmin (this may take time and create really big tarballs) run:
echo '.da-borg' >> ~/.backup_exclude_paths
assuming you are using default repo location.
Feel free to discuss additional features below or by using the form on plugin’s Config page.