HestiaCP is a modern open-source Linux hosting control panel and the actively maintained successor to VestaCP. Running Nginx, Apache, PHP-FPM, Exim, Dovecot, BIND, and vsftpd together under one management interface, it's widely used by VPS operators and small web hosting companies who want a full-featured panel without vendor lock-in. That control comes with a monitoring responsibility: HestiaCP has no built-in uptime dashboard. Vigilmon covers the entire HestiaCP stack — panel availability, REST API health, mail server connectivity, SSL certificate expiry, and scheduled task execution — so you know before your customers do when something breaks.
What You'll Set Up
- HTTP monitor for the HestiaCP web UI (port 8083 HTTPS login page)
- REST API availability check (
/api/with API key authentication) - TCP port monitor for the Exim mail server (port 25)
- SSL certificate expiry alerts for the HestiaCP UI and hosted domain certificates
- Cron heartbeat monitoring for HestiaCP scheduled tasks (daily backups, Let's Encrypt renewal, system health checks)
Prerequisites
- HestiaCP installed on a Debian/Ubuntu VPS
- At least one user and domain configured in HestiaCP
- A free Vigilmon account
Step 1: Monitor the HestiaCP Web UI (Port 8083)
HestiaCP's control panel runs on HTTPS port 8083. A down panel means neither you nor your customers can manage their hosting accounts, add domains, or access mail settings.
- Log in to vigilmon.online and click Add Monitor.
- Set Type to
HTTP / HTTPS. - Enter your HestiaCP URL:
https://your-server-ip:8083orhttps://cp.yourdomain.com:8083. - Set Check interval to
1 minute. - Set Expected HTTP status to
200. - Click Save.
HestiaCP's login page at port 8083 returns HTTP 200 on a healthy installation. A firewall rule change, PHP-FPM crash, or Nginx configuration error will drop this check and alert you within minutes.
Step 2: Monitor the HestiaCP REST API
HestiaCP exposes a REST API at /api/ that accepts JSON requests with an API key. This API powers automation, WHMCS billing integration, and third-party management tools. Monitoring it separately from the UI catches backend failures where Nginx still serves static files but the PHP application layer is broken.
- In Vigilmon, click Add Monitor → HTTP / HTTPS.
- Set the URL to
https://your-server-ip:8083/api/. - Set Expected HTTP status to
200. - Under Request headers, add:
X-API-Key: your-hestiacp-api-key. - Under Response body, enable Contains keyword and enter
{"result":to confirm a valid JSON API response. - Set Check interval to
2 minutes. - Click Save.
To generate a HestiaCP API key, log in as admin, go to Edit User → API Keys, and create a read-only key for monitoring. The API returns a JSON object on every valid request; a keyword match on {"result": confirms the PHP API layer is responding.
Step 3: Monitor the Exim Mail Server (TCP Port 25)
HestiaCP uses Exim as its SMTP server. Monitoring TCP port 25 confirms that outbound and inbound mail routing is available — a critical signal for hosting customers who rely on your server for business email.
- In Vigilmon, click Add Monitor → TCP Port.
- Enter your server hostname or IP.
- Set Port to
25. - Set Check interval to
2 minutes. - Click Save.
A TCP connection failure on port 25 means Exim has stopped or the port has been blocked by a firewall change. Dovecot (IMAP/POP3) failures can be added the same way on ports 143 and 993.
Step 4: SSL Certificate Alerts for HestiaCP and Hosted Domains
HestiaCP manages Let's Encrypt certificates for both the control panel UI and every hosted domain. The renewal process runs via HestiaCP's built-in cron system, but DNS propagation delays and HTTP challenge failures can cause renewals to silently fail.
HestiaCP UI certificate (port 8083)
- Open the HTTP monitor you created in Step 1.
- Enable Monitor SSL certificate under the SSL section.
- Set Alert when certificate expires in less than
21 days. - Click Save.
Hosted domain certificates
For each customer domain hosted in HestiaCP, add an SSL monitor:
- Click Add Monitor → HTTP / HTTPS.
- Enter the domain URL:
https://customerdomain.com. - Enable Monitor SSL certificate and set the threshold to
21 days. - Click Save.
HestiaCP's Let's Encrypt renewal runs automatically, but the 21-day window gives you time to investigate failures and manually trigger renewal via the HestiaCP CLI:
v-add-letsencrypt-domain admin customerdomain.com www.customerdomain.com
Step 5: Heartbeat Monitoring for HestiaCP Scheduled Tasks
HestiaCP schedules critical maintenance jobs through its cron system: daily backups, Let's Encrypt renewal, and system health checks. Use Vigilmon's cron heartbeat to verify these jobs complete on schedule.
Create a heartbeat monitor
- In Vigilmon, click Add Monitor → Cron Heartbeat.
- Set the Expected ping interval to match the job frequency (e.g.,
1440minutes for daily backups). - Copy the heartbeat URL:
https://vigilmon.online/heartbeat/your-token. - Click Save.
Wire the heartbeat to HestiaCP's backup cron
HestiaCP's backup system runs via /usr/local/hestia/bin/v-backup-users. Add a Vigilmon ping on successful completion:
# Edit root crontab
crontab -e
# Daily user backup — ping Vigilmon only on success
0 2 * * * /usr/local/hestia/bin/v-backup-users && curl -s https://vigilmon.online/heartbeat/your-backup-token
For Let's Encrypt renewal (HestiaCP handles this internally, but you can wrap the renewal check):
# Let's Encrypt renewal check — runs at 2:30am daily by default in HestiaCP
30 2 * * * /usr/local/hestia/bin/v-update-sys-ssl-certificates && curl -s https://vigilmon.online/heartbeat/your-ssl-token
The && operator ensures Vigilmon only receives the ping when the command exits with status 0. A failed backup or renewal script silently drops the ping, and Vigilmon alerts after the expected interval passes.
Step 6: Configure Alert Channels
- Go to Alert Channels in Vigilmon and configure email, Slack, or a webhook for your team's incident response workflow.
- Set Consecutive failures before alert to
2for the panel UI and API monitors — brief PHP-FPM restarts during package updates may cause a single probe to miss. - For the Exim TCP port monitor, set to
1failure — a downed mail server affects every customer immediately.
Summary
| Monitor | Target | What It Catches |
|---|---|---|
| HTTP (HestiaCP UI) | https://server:8083 | Panel crash, Nginx/PHP-FPM failure |
| HTTP (REST API) | https://server:8083/api/ | API layer failure, PHP crash |
| TCP port | :25 (Exim SMTP) | Mail server down, firewall block |
| SSL certificate | Panel + each hosted domain | Let's Encrypt renewal failure |
| Cron heartbeat | Backup/renewal/health tasks | Scheduled job failure or skipped run |
HestiaCP gives hosting providers and VPS operators a capable self-managed panel without vendor lock-in. Pairing it with Vigilmon closes the observability gap — you get immediate alerts when the panel, API, mail server, or any hosted site's SSL certificate needs attention, before your customers file a support ticket.