Files
BackupX/docs-site/docs/deployment/bare-metal.md
Wu Qing 61709dd4c9 fix(cluster): support external master URL
- add server.external_url / BACKUPX_SERVER_EXTERNAL_URL for Agent install URL generation
- pass the configured external Master URL into install script and compose rendering
- document cluster deployment requirements for Docker, bare-metal, and multi-node setups

Fixes #55
2026-05-09 07:41:51 +08:00

2.1 KiB

sidebar_position, title, description
sidebar_position title description
2 Bare-metal Deployment systemd + Nginx deployment from the prebuilt release tarball or source.

Bare-metal Deployment

From prebuilt release

# Download the matching tarball
curl -LO https://github.com/Awuqing/BackupX/releases/latest/download/backupx-v1.6.0-linux-amd64.tar.gz

# Extract and install
tar xzf backupx-v*-linux-amd64.tar.gz && cd backupx-*
sudo ./install.sh

The installer performs these steps automatically:

  1. Creates a system user backupx
  2. Copies the binary to /opt/backupx/
  3. Generates a default config.yaml with safe JWT/encryption secrets
  4. Installs backupx.service (systemd), enabled at boot
  5. (Optional) installs an Nginx site file — see Nginx Reverse Proxy

For multi-node clusters, edit /etc/backupx/config.yaml after installation and set the Master URL that remote Agents can reach:

server:
  external_url: "https://backup.example.com"

Restart BackupX after changing it:

sudo systemctl restart backupx

From source

git clone https://github.com/Awuqing/BackupX.git && cd BackupX
make build
sudo ./deploy/install.sh

make build compiles:

  • server/bin/backupx (Go backend, no CGO)
  • web/dist/ (React frontend, npm run build)

systemd

The installed unit:

[Unit]
Description=BackupX backup management service
After=network.target

[Service]
Type=simple
User=backupx
WorkingDirectory=/opt/backupx
ExecStart=/opt/backupx/backupx --config /opt/backupx/config.yaml
Restart=on-failure
RestartSec=5s
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

Typical operations:

sudo systemctl status backupx
sudo journalctl -u backupx -f    # live logs
sudo systemctl restart backupx

Password reset

If the admin password is lost:

/opt/backupx/backupx reset-password \
  --username admin \
  --password 'newpass123' \
  --config /opt/backupx/config.yaml

Docker equivalent:

docker exec -it backupx /app/bin/backupx reset-password --username admin --password 'newpass123'