InvokeAI is a professional-grade open-source Stable Diffusion interface and toolkit — a Python FastAPI backend paired with a React frontend and a node-based Unified Canvas for structured AI image creation workflows. It runs a comprehensive REST API on port 9090 and is used by digital artists, creative studios, and AI production pipelines that need version history, project management, and a structured node-based approach alongside standard text-to-image generation. When your InvokeAI instance goes down, you need to know immediately. Vigilmon gives you web UI availability monitoring, FastAPI health checks, generation queue heartbeats, and SSL certificate alerts for every InvokeAI deployment.
What You'll Set Up
- HTTP uptime monitor for the InvokeAI web UI and FastAPI server (port 9090)
/api/v1/app/versionREST API endpoint monitor for backend health/api/v1/app/configendpoint monitor confirming model pipeline initialization- SSL certificate expiry alerts for HTTPS InvokeAI deployments
- Cron heartbeat for InvokeAI queue health via
/api/v1/queue/default/status
Prerequisites
- InvokeAI installed and running (default port 9090)
- Network access to the InvokeAI host from the internet (direct or via reverse proxy)
- A free Vigilmon account
Step 1: Monitor the InvokeAI Web UI
InvokeAI's FastAPI server serves the React SPA on port 9090. A 200 response on the root path confirms both the FastAPI server is running and static asset serving is operational — the minimum requirement for any client to load the canvas UI.
- Log in to vigilmon.online and click Add Monitor.
- Set Type to
HTTP / HTTPS. - Enter the InvokeAI URL:
http://your-server-ip:9090(or your proxied domainhttps://invoke.yourdomain.com). - Set Check interval to
1 minute. - Set Expected HTTP status to
200. - Click Save.
Verify InvokeAI is bound to an accessible address by checking its configuration:
# Check InvokeAI binding — default is 127.0.0.1, change to 0.0.0.0 for remote access
grep "host" ~/.invokeai/invokeai.yaml
If you need remote access, set host: 0.0.0.0 in invokeai.yaml or use a reverse proxy.
Step 2: Monitor the /api/v1/app/version REST API Endpoint
InvokeAI exposes a /api/v1/app/version endpoint that returns JSON with the application version and commit hash. This is a reliable FastAPI backend health check — a 200 response proves the API is serving requests, regardless of frontend state.
- Click Add Monitor in Vigilmon.
- Set Type to
HTTP / HTTPS. - Enter:
http://your-server-ip:9090/api/v1/app/version - Set Method to
GET. - Set Check interval to
1 minute. - Set Expected HTTP status to
200. - Optionally, set Expected response body contains to
"version"for a JSON shape check. - Click Save.
Test the endpoint manually:
curl http://your-server-ip:9090/api/v1/app/version
# {"version": "4.x.x", "app_name": "InvokeAI"}
This endpoint requires no authentication and returns quickly — making it the ideal lightweight API layer health check.
Step 3: Monitor the /api/v1/app/config REST API Endpoint
The /api/v1/app/config endpoint returns InvokeAI's model and feature configuration as JSON. A 200 response confirms the model pipeline is initialized and the configuration has been successfully loaded — a deeper health signal than the version endpoint alone.
- Click Add Monitor in Vigilmon.
- Set Type to
HTTP / HTTPS. - Enter:
http://your-server-ip:9090/api/v1/app/config - Set Method to
GET. - Set Check interval to
2 minutes. - Set Expected HTTP status to
200. - Click Save.
This unauthenticated endpoint is safe to monitor from an external probe and catches model pipeline initialization failures that won't surface on the version endpoint.
Step 4: SSL Certificate Alerts for HTTPS Deployments
InvokeAI deployments exposed to the internet should run behind a reverse proxy with TLS. Certificate expiry silently locks users out of their canvas and breaks API integrations.
Add a certificate expiry monitor for your InvokeAI domain:
- Open the HTTP monitor for your proxied InvokeAI domain (created in Step 1).
- Enable Monitor SSL certificate under the SSL section.
- Set Alert when certificate expires in less than
21 days. - Click Save.
A sample nginx reverse proxy configuration for InvokeAI:
server {
listen 443 ssl;
server_name invoke.yourdomain.com;
ssl_certificate /etc/letsencrypt/live/invoke.yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/invoke.yourdomain.com/privkey.pem;
client_max_body_size 100M;
location / {
proxy_pass http://127.0.0.1:9090;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 300s;
}
}
InvokeAI uses WebSocket connections for real-time canvas updates — the Upgrade and Connection headers are required.
Step 5: Heartbeat Monitoring for the Generation Queue
InvokeAI manages image generation through a queue service. The /api/v1/queue/default/status endpoint returns the current queue state including item count and status. Monitoring this endpoint as a heartbeat confirms InvokeAI's generation queue service is operational and ready to accept work from the canvas or API clients.
- In Vigilmon, click Add Monitor → Cron Heartbeat.
- Set the expected ping interval to
10 minutes. - Copy the heartbeat URL (e.g.
https://vigilmon.online/heartbeat/abc123).
Create a script that polls the queue status endpoint and pings the heartbeat when the queue service responds:
#!/bin/bash
# invokeai-heartbeat.sh — run via cron every 10 minutes
QUEUE_STATUS="http://127.0.0.1:9090/api/v1/queue/default/status"
HEARTBEAT="https://vigilmon.online/heartbeat/abc123"
response=$(curl -sf --max-time 10 "$QUEUE_STATUS")
if [ $? -eq 0 ] && echo "$response" | grep -q '"queue"'; then
curl -sf "$HEARTBEAT" > /dev/null
fi
Add to crontab:
*/10 * * * * /path/to/invokeai-heartbeat.sh
A valid JSON response from /api/v1/queue/default/status confirms InvokeAI's generation queue service is alive. Queue status looks like:
{"queue": {"item_count": 0, "status": "idle"}}
If InvokeAI crashes or the queue service hangs, the endpoint stops responding and Vigilmon alerts after the 10-minute window passes.
Step 6: Configure Alert Channels
- Go to Alert Channels in Vigilmon and add Slack, email, or a webhook.
- Set Consecutive failures before alert to
2on the web UI monitor — InvokeAI model loading at startup can take 30–90 seconds for large checkpoints. - On API endpoint monitors (
/api/v1/app/versionand/api/v1/app/config), set Consecutive failures to1— API failures while the web UI responds are always actionable. - Use Maintenance windows in Vigilmon to suppress alerts during InvokeAI upgrades, which require a service restart.
Summary
| Monitor | Target | What It Catches |
|---|---|---|
| Web UI | http://host:9090/ | FastAPI crash, static serving failure |
| API version | /api/v1/app/version | FastAPI backend failure |
| API config | /api/v1/app/config | Model pipeline initialization failure |
| SSL certificate | HTTPS proxied domain | Let's Encrypt renewal failure |
| Queue heartbeat | /api/v1/queue/default/status cron | Queue service stall, backend hang |
InvokeAI gives creative professionals a structured, node-based AI image generation platform — but that professional-grade power requires professional-grade monitoring. With Vigilmon watching the FastAPI backend, the model pipeline, the generation queue, and your SSL certificates, you get the observability layer that keeps your InvokeAI instance production-ready.