ToolJet is an open-source, self-hosted low-code platform for building internal tools — admin panels, dashboards, and CRUD apps — without writing a full backend. When teams adopt ToolJet for internal operations, it quickly becomes critical infrastructure: the order management dashboard, the customer support tool, the inventory tracker all run on it. If ToolJet goes down, internal workflows stop. Vigilmon gives you uptime monitoring, API health checks, and SSL certificate alerts so you know immediately when ToolJet needs attention.
What You'll Set Up
- HTTP uptime monitor for the ToolJet web UI
/api/healthendpoint check for deep backend health- App builder service availability check
- Database connection health verification
- SSL certificate expiry alerts
Prerequisites
- ToolJet deployed with Docker Compose or Kubernetes
- ToolJet accessible over HTTPS on a domain
- A free Vigilmon account
Step 1: Monitor the ToolJet Web UI
The ToolJet dashboard is where your team builds and runs internal tools. An HTTP monitor catches nginx failures, container crashes, and load balancer issues:
- Log in to vigilmon.online and click Add Monitor.
- Set Type to
HTTP / HTTPS. - Enter your ToolJet URL:
https://tooljet.yourdomain.com. - Set Check interval to
1 minute. - Set Expected HTTP status to
200. - Click Save.
A 1-minute check interval means you'll know within 60 seconds if the ToolJet dashboard becomes unreachable — critical when teams are actively using it during business hours.
Step 2: Check the /api/health Endpoint
ToolJet exposes a /api/health endpoint that checks the application server and its dependencies. This is more reliable than the UI check because it bypasses frontend caching and static asset serving:
- In Vigilmon, click Add Monitor → HTTP / HTTPS.
- Set the URL to
https://tooljet.yourdomain.com/api/health. - Set Expected HTTP status to
200. - Optionally, set Expected response body contains to
"works":trueto verify the response content. - Set Check interval to
1 minute. - Click Save.
Verify the endpoint manually:
curl -s https://tooljet.yourdomain.com/api/health
# → {"works":true}
If this returns anything other than {"works":true}, ToolJet's Node.js backend is unhealthy — the frontend may still load from cache while the API is down, making this check essential for catching partial failures.
Step 3: Monitor the App Builder Service
ToolJet's app builder is a distinct interface from the app runner. Verify it's accessible by checking the builder route:
- In Vigilmon, click Add Monitor → HTTP / HTTPS.
- Set the URL to
https://tooljet.yourdomain.com/login. - Set Expected HTTP status to
200. - Set Check interval to
5 minutes. - Click Save.
The login page loads the React app bundle that includes the app builder. If this returns a 502 or 404, the SPA assets aren't being served correctly — which means users can't access any ToolJet apps, even if the API backend is up.
To check the app builder more thoroughly, verify the API route that the builder uses to list apps:
curl -s -I https://tooljet.yourdomain.com/api/apps
# → HTTP/2 401 (unauthenticated request correctly rejected)
A 401 response confirms the apps API is live and enforcing authentication.
Step 4: Verify Database Connection Health
ToolJet stores app definitions, users, and configurations in PostgreSQL. A database connectivity problem breaks everything — no apps load, no data sources connect. Monitor database health indirectly through ToolJet's health endpoint:
The /api/health endpoint (Step 2) already checks the database connection. But you can add an additional layer by monitoring ToolJet's database migration endpoint at startup. For a more direct approach, use a TCP port monitor on your PostgreSQL instance if it's hosted separately:
- In Vigilmon, click Add Monitor → TCP Port.
- Set the Host to your PostgreSQL host (e.g.
db.yourdomain.comor the internal Docker network hostname). - Set the Port to
5432. - Set Check interval to
5 minutes. - Click Save.
If you run PostgreSQL on the same Docker network as ToolJet and it's not externally accessible, use a cron heartbeat instead:
#!/bin/bash
# Run on the ToolJet host
pg_isready -h localhost -p 5432 -U tooljet && \
curl -s https://vigilmon.online/heartbeat/your-token
Add to cron:
*/5 * * * * /usr/local/bin/tooljet-db-check.sh
This pings Vigilmon only when PostgreSQL responds to connection checks — if the DB goes down, the heartbeat stops.
Step 5: SSL Certificate Alerts
ToolJet handles internal company data and potentially connects to production databases. It must always run over HTTPS. A lapsed certificate locks your entire team out of their internal tools:
- Open the HTTP / HTTPS monitor for
https://tooljet.yourdomain.com(created in Step 1). - Enable Monitor SSL certificate under the SSL section.
- Set Alert when certificate expires in less than
21 days. - Click Save.
ToolJet deployments often use Nginx or Caddy as a reverse proxy for TLS termination. If you use Caddy, automatic certificate renewal is built in — but Vigilmon's 21-day warning catches the edge cases where Caddy's ACME renewal fails silently due to DNS misconfiguration or rate limits.
Step 6: Configure Alert Channels
- Go to Alert Channels in Vigilmon and add Slack, email, or PagerDuty.
- For a production internal tools platform, PagerDuty or Slack is appropriate — ToolJet outages directly block team workflows, so alerts need immediate visibility.
- Set Consecutive failures before alert to
2to absorb brief container restarts during ToolJet updates. - Create a dedicated
#tooljet-alertsSlack channel and route ToolJet monitors there separately from other infrastructure alerts.
For organizations with SLAs on internal tools, configure escalation policies: a 2-failure threshold triggers Slack, and a 10-minute sustained outage escalates to PagerDuty on-call.
Step 7: Maintenance Windows for ToolJet Updates
ToolJet releases frequent updates and database migrations can cause brief downtime. Suppress false alerts during planned updates:
# Before running ToolJet update
curl -X POST https://vigilmon.online/api/maintenance \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{"monitor_id": "your-monitor-id", "duration_minutes": 15}'
# Run your ToolJet update
docker-compose pull && docker-compose up -d
# Vigilmon resumes monitoring after 15 minutes automatically
ToolJet migrations can take several minutes on large datasets. A 15-minute maintenance window is usually sufficient for routine updates.
Summary
| Monitor | Target | What It Catches |
|---|---|---|
| Web UI | https://tooljet.yourdomain.com | Frontend unavailable |
| Health API | /api/health (expect {"works":true}) | Backend / DB failure |
| Login page | /login (expect 200) | SPA assets not served |
| Apps API | /api/apps (expect 401) | Application layer error |
| Database | TCP port 5432 or heartbeat | PostgreSQL down |
| SSL certificate | Your ToolJet domain | Certificate expiry |
ToolJet becomes core infrastructure quickly — the moment your team builds their first operational tool on it, a ToolJet outage becomes a business disruption. With Vigilmon checking every layer from the UI to the database connection, you get the visibility you need to catch problems before they interrupt your team's work.