IT-Tools is a self-hosted collection of 60+ browser-based utilities — JWT decoders, UUID generators, hash tools, subnet calculators, regex testers, QR code generators, and more — all in a single Vue.js app served by nginx. The pitch is simple: sensitive data (API keys, JWTs, internal IP ranges) stays on your own infrastructure instead of being pasted into jwt.io or online regex tools. But "simple static app" doesn't mean "no monitoring needed." A broken nginx config, a failed Docker container, or a reverse proxy misconfiguration leaves your team with a blank page and no tools. Vigilmon keeps watch so the toolbox stays open.
What You'll Set Up
- HTTP availability monitor for the IT-Tools nginx server
- Keyword check to confirm the correct application bundle is being served
- Static asset probe to verify nginx file serving is healthy
- SSL certificate expiry alerts for HTTPS IT-Tools deployments
- Container health heartbeat for Docker-based IT-Tools installations
Prerequisites
- IT-Tools deployed via Docker (official
corentinth/it-toolsimage) or built from source - IT-Tools accessible on port 80 or behind a reverse proxy on a custom domain
- A free Vigilmon account
Step 1: Monitor IT-Tools nginx Availability
IT-Tools runs nginx inside Docker serving a pre-built Vue.js SPA. A 200 response on port 80 confirms the nginx server and Docker container are running:
- Log in to vigilmon.online and click Add Monitor.
- Set Type to
HTTP / HTTPS. - Enter your IT-Tools URL:
http://tools.yourdomain.com(orhttps://if TLS-terminated at a reverse proxy or Caddy sidecar). - Set Check interval to
1 minute. - Set Expected HTTP status to
200. - Click Save.
If IT-Tools is behind a reverse proxy (nginx, Traefik, Caddy), monitoring the public URL validates both the proxy routing and the upstream Docker container — a single check covers two failure points.
Step 2: Keyword-Check for Correct Application Content
When multiple applications share a reverse proxy, a misconfiguration can serve the wrong site on the IT-Tools domain — returning 200 from a different application. Add a keyword monitor that confirms the IT-Tools bundle is what's actually being served:
- Click Add Monitor → HTTP / HTTPS.
- URL:
http://tools.yourdomain.com - Set Check interval to
2 minutes. - Enable Keyword check and enter
IT-Toolsas the expected keyword. - Click Save.
The IT-Tools HTML shell contains IT-Tools in the <title> and application metadata. A reverse proxy misconfiguration that serves a different site will fail this keyword check even if it returns HTTP 200. This is especially useful in environments where IT-Tools is one of many services on the same host.
Step 3: Static Asset Probe for nginx File Serving Health
IT-Tools is a pure static application — if nginx's static file serving breaks (wrong root path, file permission change, volume mount failure), the index.html may load but no JavaScript, CSS, or image assets will be served. The app will appear to load but will be non-functional. Probe a specific static asset directly:
- Click Add Monitor → HTTP / HTTPS.
- URL:
http://tools.yourdomain.com/favicon.svg - Set Check interval to
5 minutes. - Set Expected HTTP status to
200. - Click Save.
The favicon is a small, predictable asset that nginx serves from the SPA root. A 200 response confirms nginx can locate and serve files from the static root — validating that volume mounts, file permissions, and nginx configuration are all intact.
Step 4: SSL Certificate Alerts for HTTPS IT-Tools
IT-Tools should be served over HTTPS when hosting it for a team — developers paste sensitive data into these tools (JWT tokens with real signatures, internal API keys for hashing, private IP ranges for subnet calculations). Cleartext HTTP transmission of that data to a shared internal tool is a security risk. Add SSL monitoring:
- Open the HTTPS monitor created in Step 1 (if you're using HTTPS) or create a new HTTPS monitor.
- Enable Monitor SSL certificate.
- Set Alert when certificate expires in less than
21 days. - Click Save.
If IT-Tools is served via a Caddy reverse proxy, Caddy handles automatic certificate renewal — but the renewal depends on DNS reachability and ACME challenge success. An expired certificate causes browser security warnings that block access to the tools entirely.
Step 5: Heartbeat Monitoring for Docker Container Health
IT-Tools has no dynamic backend — there's no database, no API, and no background jobs. But the Docker container can still become unhealthy silently: the container restarts in a crash loop, the nginx process exits but Docker considers the container running, or a volume mount fails after a host reboot.
Use a scheduled heartbeat script that validates internal nginx accessibility independent of any reverse proxy:
- In Vigilmon, click Add Monitor → Cron Heartbeat.
- Name it
IT-Tools Container Heartbeat. - Set the expected ping interval to
10minutes. - Copy the heartbeat URL (e.g.,
https://vigilmon.online/heartbeat/abc123).
Create a health check script on the Docker host:
#!/bin/bash
# IT-Tools container health check — run via cron every 10 minutes
CONTAINER_NAME="${IT_TOOLS_CONTAINER:-it-tools}"
VIGILMON_HEARTBEAT="https://vigilmon.online/heartbeat/abc123"
# Check if container is running
if ! docker inspect --format='{{.State.Running}}' "${CONTAINER_NAME}" 2>/dev/null | grep -q "true"; then
echo "$(date): IT-Tools container is not running" >&2
exit 1
fi
# Validate nginx is serving content inside the container
HTTP_STATUS=$(docker exec "${CONTAINER_NAME}" \
wget -q -O /dev/null -S http://localhost:80/ 2>&1 | grep "HTTP/" | awk '{print $2}')
if [ "$HTTP_STATUS" = "200" ]; then
curl -s --max-time 10 "${VIGILMON_HEARTBEAT}"
echo "$(date): IT-Tools health check passed"
else
echo "$(date): IT-Tools nginx returned HTTP ${HTTP_STATUS}" >&2
fi
Add to cron:
# /etc/cron.d/it-tools-health
*/10 * * * * root /usr/local/bin/it-tools-healthcheck.sh >> /var/log/it-tools-health.log 2>&1
This inner-container probe catches the case where nginx has crashed inside a container that Docker still considers running — a failure mode that external HTTP monitors won't catch until the container restarts and the port stops responding.
Step 6: Configure Alert Channels
- Go to Alert Channels in Vigilmon and add email, Slack, or a webhook.
- For the nginx availability and keyword monitors, set Consecutive failures before alert to
2— a brief Docker container restart during adocker compose pullupgrade will cause one failed check. - For the static asset probe, set Consecutive failures before alert to
3— the asset check can occasionally time out due to network blips without indicating a real nginx failure. - Tag all monitors with
it-toolsfor easy filtering in the Vigilmon dashboard.
Summary
| Monitor | Target | What It Catches |
|---|---|---|
| HTTP availability | http(s)://tools.domain.com | Docker container down, nginx crash |
| Keyword check | Root URL — "IT-Tools" | Reverse proxy misconfiguration |
| Static asset | /favicon.svg | nginx file serving failure |
| SSL certificate | HTTPS IT-Tools URL | Certificate expiry |
| Cron heartbeat | Container heartbeat URL | Container crash loop, silent nginx failure |
IT-Tools is deliberately simple — no database, no users, no backend API. That simplicity is its strength, and it makes monitoring equally focused: keep nginx running, keep the Docker container healthy, and keep TLS valid. With Vigilmon watching availability, content correctness, and static serving health, your team's tool-box stays available without anyone needing to manually check it.