Register & Install the Agent
Installation
When adding a pool, you will be asked whether the pool will be for HAProxy nodes.
Only select the HAProxy Pool if the backend server(s) are currently running, or will be running, HAProxy.
For all other server types—including cPanel, OpenLiteSpeed, Galera, database servers, and general-purpose Linux hosts—select Generic Linux.
Choosing the correct template ensures that ServersCTL enables the appropriate features and management tools for that server type. If you accidentally select the wrong template, remove any members from the pool and recreate the pool on the correct template.
Recommended: one-shot from the dashboard
You can access the UI using https://serversctl.com/app or https://balctl.com/app. Only the public websites are different.
- Register an account at https://serversctl.com/app/
- Add a new pool. https://serversctl.com/app/sites
- Servers can be pooled together. For example, cPanel Servers, LiteSpeed, MariaDB/MySQL all use the Generic Linux template, or HAProxy servers use the dedicated HAProxy template.
- Select Add Member. The modal generates a paste-ready command that:
- Ensures
unzip+python3(via apt or dnf/yum). - Downloads
https://download.serversctl.com/agent.zip. - Runs
balctl-agent.sh --enrol --key … --hostname … --api-base …. - Writes
/etc/balctl/agent.env, runs--update, enables systemd.
- Ensures
- The ServersCTL UI will now start to report agent information.
- See troubleshooting if you have problems.
To add further members to a pool. Keep using the Add Member button. There are no limits to the number of pools or members.
Files after install
Bundle contents (agent.zip)
Flat zip: balctl_heartbeat.py, balctl-agent.sh, balctl-heartbeat.env.example, balctl-heartbeat.service, README.md, LICENSE, INSTALL_VM.txt.
Configuration (/etc/balctl/agent.env)
If your configured hostname is different from the hostname sent to ServersCTL, use BALCTL_HOSTNAME
Systemd loads this via EnvironmentFile=/etc/balctl/agent.env. Manual sudo python3 … runs merge missing vars from the same file.