Create your first pool & Enroll your first member
Create your first pool
Step 1 — Add pool
- Go to Pools → Add pool
- Choose the HAProxy template
- Name the pool (e.g.
production-edge) - After create, you land in the pool with a setup banner
Step 2 — Connect DNS (Settings)
ServerCTL needs API access to authoritative DNS to create/update the failover A record.
Cloudflare
- API token: Zone · DNS · Edit (+ zone read)
- Cloudflare Account ID
- Select the zone that will host your public hostname
cPanel / WHM
- WHM hostname and port (usually 2087 or 443)
- WHM username + API token
- Zone domain (apex), e.g.
example.com
You can save reusable Cloudflare credentials under Settings → API providers and link them to pools without re-entering tokens.
Step 3 — Enrol the first member
On Overview → Add member:
After creating, copy the one-shot install command immediately and run it in the HAProxy Server — the enrollment secret is shown once.
The command:
- Downloads the agent bundle
- Runs
balctl-agent.sh --enrol --key … --hostname … - Writes
/etc/balctl/agent.env - Installs and starts
balctl-heartbeat.service
Within a few seconds, the member tab should show a green heartbeat.
Step 4 — Set the public failover hostname
Settings or Managed DNS tab:
- Set DNS label (e.g.
lb→lb.example.com) - Choose orange-cloud (proxied) vs DNS-only as needed
- On Overview, Make active on the member that should receive traffic
Step 6 — Add a standby (High Availability)
Repeat enrollment on a second VM. Enable Automatic failover in Settings when ready for unattended promotion.