BackupWallby PortWall
Licensing and billingUpdated 2026-11-16

How do I activate my licence key, or move it to a new server or IP?

Give the key to the installer with --license-key, or set BACKUPWALL_LICENSE_KEY in /etc/backupwall/backupwall.env and run python -m app.licensing activate. After a new IP, new hardware or a rebuild, run python -m app.licensing rebind. The service allows 3 re-binds per key in any 30 days.

Activate at install time

bash install.sh --license-key YOUR-KEY 2>&1 | tee /root/backupwall-install.log

LICENSE_KEY=YOUR-KEY bash install.sh does the same (the flag wins). A key is letters, digits and . _ : / + = - only. The key on the command line shows in ps while the installer runs, so on a shared server use the variable. The installer writes it to BACKUPWALL_LICENSE_KEY= in /etc/backupwall/backupwall.env and activates it near the end. Running the installer again for an upgrade with a key replaces the one in the file; with no key it leaves the file's alone.

Activate later, by hand

  1. Open /etc/backupwall/backupwall.env and set the line BACKUPWALL_LICENSE_KEY=YOUR-KEY.
  2. Activate it and restart the services, while no backup, restore or migration is running, so the 6-hourly check-in reads the key too:
cd /opt/backupwall && BACKUPWALL_ENV_FILE=/etc/backupwall/backupwall.env /opt/backupwall/.venv/bin/python -m app.licensing activate
systemctl restart backupwall-api backupwall-worker backupwall-beat

activate prints a short JSON answer. "reached": true and "state": "licensed" mean it worked (exit code 0). Any other answer has an "error" text and exit code 1.

Check it

cd /opt/backupwall && BACKUPWALL_ENV_FILE=/etc/backupwall/backupwall.env /opt/backupwall/.venv/bin/python -m app.licensing status

You want "state": "licensed". It prints state, code, the reason, grace_until, updates_allowed, enforce, and the last time the service answered.

Move the licence (new IP, new hardware, a rebuilt server)

A key is tied to one address and one installation. When either changes, the licence service answers the next check-in with "bound to another server" and the server goes into the 3-day Grace. BackupWall then asks the service to move the key to this server, once for each mismatch (log: licensing.auto_rebind). If that did not fix it, or you moved on purpose, run it yourself on the new server:

cd /opt/backupwall && BACKUPWALL_ENV_FILE=/etc/backupwall/backupwall.env /opt/backupwall/.venv/bin/python -m app.licensing rebind
  • The service allows 3 re-binds per key in any 30 days. When they are used up it keeps answering "bound to another server". Write to PortWall with the key's last four characters and the new address, and the binding is released; the next check-in claims the key afresh.
  • The same applies after a reinstall that wiped /var/lib/backupwall, which makes a new installation id, and after a Disaster Recovery rebuild.
  • After bw-dr-restore, check python -m app.licensing status and that the key is still in /etc/backupwall/backupwall.env.

If activation fails

See Licence will not activate.

Still stuck? Open a ticket at portwall.net/billing or write to [email protected], and attach a support bundle. See Report a problem and make a support bundle.