Overview
The backup server requires a valid license to operate. Agents do not require a license — they are managed by the server.
- Validation: Checked at startup and every 24 hours
- Expired license: Blocks new backups, but restore operations continue to work
Contact [email protected] or your vendor to obtain a license file.
Installing a License
Method 1: Default Location (Recommended)
sudo cp license.json /var/lib/backup/repo/license.json
sudo systemctl restart backup-serverMethod 2: Custom Path via CLI Flag
Edit the systemd service file:
sudo nano /etc/systemd/system/backup-server.serviceExecStart=/usr/local/bin/xreplicator server \
--listen 0.0.0.0:50051 \
--repo /var/lib/backup/repo \
--license /etc/xreplicator/license.jsonsudo systemctl daemon-reload
sudo systemctl restart backup-serverMethod 3: Environment Variable
export LICENSE_FILE="/etc/xreplicator/license.json"
sudo systemctl restart backup-serverPriority Order
--licenseCLI flag (highest)LICENSE_FILEenvironment variable<repo>/license.json(default location)
License File Format
License files are JSON:
{
"data": "base64-encoded-json-payload",
"signature": "base64-encoded-rsa-signature"
}VM Count Limits
The license enforces a maximum number of connected agents. When the limit is reached, new agent registrations are rejected with:
license limit exceeded: X/Y agents connectedDisconnect unused agents or contact your vendor to upgrade the license.
Checking License Status
sudo journalctl -u backup-server -fLook for messages like:
# Valid
License validated: <org> (expires: <date>, VMs: <count>)
# Expired
WARN: License expired on <date>Troubleshooting
No public key configured
The public key must be embedded in the binary at build time, or set via:
export LICENSE_PUBLIC_KEY="<key>"License file not found
Ensure the license file exists at the expected path, or use the --license flag to specify its location.
License hostname mismatch
The license must be generated for the exact server hostname. Verify with:
hostnameLicense expired
Generate a new license with a future expiry date.
License limit exceeded
The maximum agent count has been reached. Disconnect unused agents or upgrade the license.