If you are using the Docker version of BmuS, the program files are locked in the container, which means you can no longer simply call it with sudo bash bmus.sh.
There are two solutions for how you can solve this.
Solution 1: The “long” Docker command
Commands must be sent into the container.
The command is:
sudo docker exec -it -e CONFIG_FILE=/config/bmus.conf bmus_backup /app/bmus.sh [ARGUMENTS]
That’s really long and hard to remember. If you are used to sudo bash /home/user/bmus.sh --restore --list --source all, you’ll likely learn to hate these kinds of Docker commands. Solution 2 might be the right choice then.
Solution 2: The “wrapper script” (in the ZIP file)
The wrapper script called bmus contained in the ZIP file does nothing more than execute a long Docker command.

Simply use ./bmus --restore, for example, or any all of the other flags as usual.
Some examples:
# List all backups: ./bmus --restore --list --source all
# Restore a specific backup: ./bmus --restore --date 2025-12-31-1400 --source /host_root/home/pi/data
# Trigger a manual backup: ./bmus
# Show help: ./bmus --help
This is the wrapper script:
#!/bin/bash
# Container is running?
if [ ! "$(sudo docker ps -q -f name=bmus_backup)" ]; then
echo "Error: BmuS container is not running!"
echo "Please start it first: sudo docker compose up -d"
exit 1
fi
# Pass the command to the container
# “$@” passes all arguments (such as --restore --list) 1:1
sudo docker exec -it -e CONFIG_FILE=/config/bmus.conf bmus_backup /app/bmus.sh "$@"
Make the helper script executable (first time only):
chmod +x bmus