This list contains all programs and packages that must be installed on the system for BmuS to function properly. Almost all of them should be installed. An exception is, for example, msmtp or gocryptfs.
Note: Just run install_dependencies.sh and everything will be installed automatically.
Note: If you use the Docker version of BmuS, all dependencies are already pre-installed. BmuS is then essentially plug & play.
When you first start it, BmuS checks for system dependencies and informs you if something needs to be installed. If everything is okay, the backup starts, otherwise it stops.
The variable FIRST_CHECK (bmus.conf) is set to 1 on the first run. This triggers the dependency check. If the check is successful, the variable will automatically set to 0 (assuming it has sufficient write access to bmus.conf).
Overview
Below is an overview of the programs/packages used by BmuS.
1. Bash Shell
bash
# Check
bash --version
# Install (if not available)
sudo apt-get install bash
Minimum version: 4.0 or higher
2. rsync
bash
# Check
rsync --version
# Install
sudo apt-get install rsync
Used for: Differential file synchronization, backup verification
3. CIFS Utils (for NAS mount)
bash
# Check
dpkg -l | grep cifs-utils
# Install
sudo apt-get install cifs-utils
Used for: Mounting SMB/CIFS shares (NAS connection)
4. Core-Utils
bash
# Check (usually preinstalled)
date --version
stat --version
find --version
awk --version
# Install
sudo apt-get install coreutils gawk findutils
Used for: Basic system commands
5. zip
bash
# Check
zip --version
# Install
sudo apt-get install zip
Used for: Compressing log and dashboard files for emailing
6. numfmt (part of coreutils)
bash
# Check
numfmt --version
# Install
sudo apt-get install coreutils
Used for: Converting bytes to readable formats (KB, MB, GB)
Conditional dependencies (depending on configuration)
7. MySQL-Client (only with BACKUP_SQL=1)
bash
# Check
mysql --version
mysqldump --version
# Install
sudo apt-get install mysql-client
# Or for MariaDB
sudo apt-get install mariadb-client
Used for: Creating database dumps
Check configuration:
nano
# Check bmus.conf:
BACKUP_SQL=1 # → MySQL client required
BACKUP_SQL=0 # → MySQL client NOT required
8. msmtp (only with SEND_MAIL=1)
bash
# Check
msmtp --version
# Install
sudo apt-get install msmtp msmtp-mta
Used for: Emailing
Following configuration required:
nano
# Create file: ~/.msmtprc
nano ~/.msmtprc
# Example msmtp configuration:
# Default settings
defaults
auth on
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile ~/.msmtp.log
# Gmail
account gmail
host smtp.gmail.com
port 587
from your@email.com
user your@email.com
password yourPassword
# Set default account
account default : gmail
Set permissions:
bash
chmod 600 ~/.msmtprc
Check configuration:
nano
# Check bmus.conf:
SEND_MAIL=1 # → msmtp necessary
SEND_MAIL=0 # → msmtp Not required
9. base64 (usually preinstalled)
bash
# Check
base64 --version
# Install
sudo apt-get install coreutils
Used for: Email attachment encoding (MIME)
System requirements
10. sudo rights
bash
# Check
sudo -l
Required sudo commands:
mount – mount NAS shareumount – umount NAS sharemkdir – Create mount directorychown – Set permissionsmsmtp – Email sending (as another user)
Recommended sudoers configuration:
bash
sudo visudo
# Add (replace user with your user):
user ALL=(ALL) NOPASSWD: /bin/mount
user ALL=(ALL) NOPASSWD: /bin/umount
user ALL=(ALL) NOPASSWD: /bin/mkdir
user ALL=(ALL) NOPASSWD: /bin/chown
user ALL=(ALL) NOPASSWD: /usr/bin/msmtp
11. Network tools
bash
# Check
ping -c 1 8.8.8.8
# Install
sudo apt-get install iputils-ping net-tools
Used for: NAS accessibility check
Dashboard dependencies
12. sed
bash
# Check
sed --version
# Install
sudo apt-get install sed
Used for: Text replacement in HTML dashboard
13. tail / head / grep
bash
# Check (usually preinstalled)
tail --version
head --version
grep --version
# Install
sudo apt-get install coreutils grep
Used for: Log analysis and dashboard data extraction
Encryption
14. gocryptfs & gnupg
bash
# gocryptfs
sudo apt-get update
sudo apt-get install gocryptfs
# gnupg
apt-get install gnupg
Create GPG key with: gpg --gen-key