Installing the server agent

Download the downctl-agent binary, run it, and keep it running permanently with systemd.

The downctl-agent binary runs on your servers and pushes CPU, memory, disk, and load metrics to your DownCTL account every 30 seconds. It has no dependencies and needs a single environment variable to run.

1. Download the binary

Grab the prebuilt binary for your platform from the Servers tab of the site you want to monitor in your DownCTL dashboard, or download it directly:

curl -fsSL https://downctl.com/install.sh | bash

This installs downctl-agent to /usr/local/bin. If you'd rather download a specific platform binary yourself, use:

curl -fsSL -o downctl-agent https://downctl.com/agent/linux-amd64/download
chmod +x downctl-agent

2. Set your server API key

Every server gets its own API key, separate from the site's error-tracking key. Find it on the Servers tab of the site in your dashboard.

export DOWNCTL_API_KEY=srv_your_server_api_key

3. Run the agent

downctl-agent

That's it — metrics start flowing within 30 seconds, and the server shows as Online in your dashboard.

Running permanently with systemd

Running the agent directly in a terminal stops as soon as you disconnect. For production servers, run it as a systemd service so it starts on boot and restarts automatically if it ever exits.

Create /etc/systemd/system/downctl-agent.service:

[Unit]
Description=DownCTL Agent
After=network-online.target
Wants=network-online.target

[Service]
User=nobody
ExecStart=/usr/local/bin/downctl-agent
Restart=on-failure
RestartSec=10
Environment="DOWNCTL_API_KEY=srv_your_server_api_key"

# Harden the service
NoNewPrivileges=true
ProtectSystem=strict
ProtectHome=true
PrivateTmp=true
RestrictAddressFamilies=AF_INET AF_INET6

[Install]
WantedBy=multi-user.target

Replace srv_your_server_api_key with the API key from the Servers tab of your site. Then enable and start it:

systemctl daemon-reload
systemctl enable downctl-agent
systemctl start downctl-agent
systemctl status downctl-agent

You should see active (running) in the status output.

Troubleshooting

  • Service won't start — check journalctl -u downctl-agent -n 50 for the exit reason.
  • Server never shows as online — confirm the API key is correct and that outbound HTTPS to your DownCTL URL isn't blocked by a firewall.
  • Metrics stop after a while — the Restart=on-failure directive restarts the agent automatically; check systemctl status downctl-agent for a crash loop, which usually means the API key was revoked or the server was deleted.

Next steps

Ready to be first
to know?

Add your first site in 30 seconds. Start your free trial today.

14-day free trial · No credit card required · Cancel anytime