Your remote team's sprint review starts in five minutes. Half the team can't load the Leantime board. The PHP-FPM pool maxed out at 2 AM and never recovered. No alert fired. No one knew until people started sending "is Leantime down?" messages in Slack.
Leantime is a lean, self-hosted project management tool — a lightweight alternative to Jira or Basecamp — built on PHP, MySQL, and a simple background job system. Self-hosting gives you full control, but it also means you're responsible for catching failures. Vigilmon gives you the external monitoring layer that catches downtime, broken health endpoints, and background job failures before your team hits them.
This tutorial covers monitoring a self-hosted Leantime instance end-to-end.
What You'll Build
- An HTTP monitor on Leantime's health endpoint
- A web UI availability monitor
- A background job health check
- SSL certificate expiry alerts
Prerequisites
- A self-hosted Leantime instance (Leantime 3.x recommended, Docker or bare-metal PHP)
- A free account at vigilmon.online
Step 1: Monitor the Leantime Health Endpoint
Leantime exposes a health check endpoint at /api/health (available in Leantime 3.x). This endpoint verifies that the PHP application can connect to the MySQL database and that the application is in a running state.
Test it:
curl -s https://leantime.yourdomain.com/api/health
Expected response:
{"status":"ok","database":"connected"}
A non-200 response or a missing "ok" status indicates the application or database is down.
Set up the Vigilmon monitor:
- Log in to Vigilmon and click New Monitor → HTTP.
- Set URL to
https://leantime.yourdomain.com/api/health. - Set Check interval to 60 seconds.
- Set Expected status code to
200. - Under Advanced → Keyword check, add keyword present:
"ok". - Save the monitor.
Vigilmon checks your Leantime health endpoint every minute from multiple regions. A PHP-FPM crash, a MySQL outage, or a misconfigured deployment fires an alert immediately.
If your Leantime version predates the /api/health endpoint, skip to Step 2 — the web UI monitor covers the essential availability check.
Step 2: Monitor the Leantime Web UI
The Leantime login page exercises the full PHP stack: PHP-FPM, the web server (Nginx or Apache), MySQL session reads, and static asset delivery. Monitoring it catches the failures most likely to affect your team — a broken PHP-FPM pool, a failed container restart, or an Nginx misconfiguration.
- Click New Monitor → HTTP in Vigilmon.
- Set URL to
https://leantime.yourdomain.com/(the Leantime login page). - Set Expected status code to
200. - Under Advanced → Keyword check, add keyword present:
"Leantime"(appears in the page title). - Set Check interval to 60 seconds.
- Save.
This is your primary reliability signal for Leantime. If this monitor goes red, your team can't access projects, timesheets, or sprint boards.
Step 3: Monitor Background Jobs
Leantime uses background jobs (cron-driven PHP tasks) for recurring operations: sending email notifications, generating reports, and processing scheduled reminders. If the cron schedule breaks — a common failure on Docker restarts or server migrations — those jobs silently stop running. Users stop receiving notifications, and reports aren't generated.
The best way to monitor Leantime's background jobs from outside is with a Vigilmon heartbeat monitor:
- In your Leantime cron job script, add a
curlcall to a Vigilmon heartbeat URL at the end of each successful execution:
# Example cron entry (runs every 15 minutes)
*/15 * * * * php /var/www/leantime/bin/leantime system:notify && \
curl -fsS https://vigilmon.online/heartbeat/<your-heartbeat-id> > /dev/null
- In Vigilmon, go to Heartbeat Monitors → New Heartbeat.
- Set Name to
Leantime background jobs. - Set Expected interval to 20 minutes (slightly longer than your cron interval to allow for execution time).
- Copy the heartbeat URL and add it to your cron command.
- Save.
If the cron job stops firing — because the container restarted without its cron daemon, the PHP process errored, or the job was accidentally removed — Vigilmon fires an alert after 20 minutes of silence.
Step 4: SSL Certificate Monitoring
Leantime deployments typically use Let's Encrypt certificates. A missed auto-renewal means your team's browser shows a certificate error and blocks access entirely — and PHP sessions may break before the TLS layer even fails.
Vigilmon monitors SSL certificates on all HTTPS monitors automatically. Enable expiry alerts:
- Open your Leantime web UI monitor in Vigilmon.
- Go to Settings → SSL and enable SSL expiry alert.
- Set the warning threshold to 14 days.
- Repeat for the health endpoint monitor.
You'll receive an alert two weeks before expiry — enough time to run certbot renew or debug failed auto-renewal before users encounter TLS errors.
Step 5: Alert Channels
Go to Notifications → New Channel in Vigilmon and configure:
- Email — your system administrator or team lead
- Webhook — Slack, Discord, or Microsoft Teams
A Leantime web UI alert in Slack:
🔴 DOWN: leantime.yourdomain.com
Status: 502 Bad Gateway
Keyword "Leantime" not found in response
Region: EU-Central
Started: 2026-01-08 07:55 UTC
Recovery:
✅ RECOVERED: leantime.yourdomain.com
Downtime: 12 minutes
Configure your alert channel before your team starts their day — early-morning PHP-FPM failures are one of the most common failure patterns for self-hosted PHP applications.
What You've Built
| Failure scenario | How Vigilmon catches it | |---|---| | PHP-FPM crash or pool exhaustion | Web UI monitor returns 502 | | MySQL database unreachable | Health endpoint check fails | | Nginx/Apache misconfiguration | Web UI monitor detects 502/503 | | Background cron stopped | Heartbeat monitor fires after missed interval | | Email notifications halted | Heartbeat gap detected | | SSL certificate expired | Expiry alert fires 14 days early | | DNS misconfiguration | All monitors detect resolution failure |
Leantime keeps your team organized and lean — but self-hosting means downtime is your responsibility. With Vigilmon monitoring your health endpoint, web UI, background jobs, and certificates, you'll know about failures before they interrupt your team's workflow.
Start monitoring your Leantime instance today — register free at vigilmon.online.