Install BackupProof
Install the dashboard on one machine. It protects that machine straight away, and every other server connects to it with one command.
Install the dashboard
Pick the machine that will run the dashboard: a small server, a NAS or a spare computer. It needs no database or other software.
Linux or macOS
Windows
Right-click Start, choose Terminal (Admin), then run:
Docker
To let the dashboard protect folders on the Docker host, mount them read-only, for example -v /srv:/host/srv:ro. The setup code is printed in the container log: docker logs backupproof 2>&1 | grep "setup code".
When the installer finishes it shows the address to open, for example http://192.168.1.20:8420, and a one-time setup code. Open the address, create your admin account, and choose Protect something. The getting-started guide walks through the rest.
The setup code
Until an admin account exists, anyone who can reach the dashboard could create one. To stop that, creating the first account from another machine needs the setup code the installer printed. It’s also saved in setup-code.txt in the data folder, and it’s deleted once the account exists.
If you open the dashboard on the same machine it runs on, the code isn’t needed.
Connect other servers
In the dashboard, open Servers and choose Connect a server. Pick Linux, macOS or Windows and copy the command shown. Run it on the other server. It appears in the dashboard within a minute.
- The command contains a connection code that works once and expires after an hour.
- Servers only make outbound HTTPS connections to the dashboard, so you don’t need to open any ports on them.
- Backup data goes straight from each server to your storage. It never passes through the dashboard.
- For database restore tests, the server that runs them needs Docker. File backups don’t.
If the dashboard says other servers can’t reach it, enter the address they should use under Settings.
Use it over the internet
Put the dashboard behind HTTPS before other servers connect to it over the internet, because their jobs carry storage passwords. With Caddy this is two lines:
backup.example.com {
reverse_proxy 127.0.0.1:8420
}
Then tell BackupProof its public address by re-running the installer with --public-url https://backup.example.com, or set it under Settings.
Installer options
| Linux / macOS | Windows | What it does |
|---|---|---|
--version v0.1.1 | -Version v0.1.1 | Install a specific release instead of the latest. |
--listen 0.0.0.0:8420 | -Listen 0.0.0.0:8420 | The address and port the dashboard listens on. |
--public-url URL | -PublicUrl URL | The address other servers use to reach the dashboard. |
--uninstall | -Uninstall | Remove the service and program. Your data is kept. |
On Linux and macOS, pass options after sh -s --, for example:
curl -fsSL https://github.com/chmuzamil/BackupProof/releases/latest/download/install.sh | sudo sh -s -- --public-url https://backup.example.com
Upgrade or uninstall
To upgrade, run the same install command again. It replaces the program, restarts the service and keeps your data. To remove BackupProof, run it with --uninstall (-Uninstall on Windows).
Data lives in /var/lib/backupproof on Linux, /Library/Application Support/BackupProof on macOS and C:\ProgramData\BackupProof\server on Windows. It holds the dashboard database and its keys, so include it in your own off-site backups.
What the installer does
- Detects your system and processor.
- Downloads the matching program and the published
SHA256SUMSfile from the release. - Checks the program against its checksum and stops if they don’t match.
- Installs it to
/usr/local/bin/backupproof(orC:\Program Files\BackupProof) and sets it up as a service that starts with the machine. - Starts it and prints the address and setup code.
You can read both installers before running them: install.sh and install.ps1. Prefer to install by hand? See Download.
Build from source
You need Go 1.27 or later. The program is pure Go with no C dependencies, so it builds for every platform from any machine.
git clone https://github.com/chmuzamil/BackupProof.git
cd BackupProof
make build # bin/backupproof
./bin/backupproof server