Revolt.chat is a fully open-source, self-hosted messaging platform with text, voice, and video channels — a genuine Discord alternative you own entirely. Running it yourself means you're responsible for keeping every layer healthy: the Rust API backend, the React web app, the real-time WebSocket gateway, the Voso voice/video server, and the supporting microservices for file storage and link previews. Vigilmon gives you a single pane of glass across all of it, alerting you before your users notice an outage.
What You'll Set Up
- HTTP uptime monitor for the Revolt API server (port 8000)
- Web app availability check (port 5000)
- WebSocket gateway health probe (port 4000)
- Voso voice/video server availability monitor (port 3000)
- TCP connectivity checks for MongoDB and Redis
- MinIO / S3 file storage service health endpoint monitor
- Autumn file storage microservice availability check
- January link preview microservice availability check
- SSL certificate expiry alerts for your Revolt domain
Prerequisites
- A running Revolt.chat self-hosted instance
- Reverse proxy (nginx or Caddy) exposing the services over HTTPS
- A free Vigilmon account
Step 1: Monitor the Revolt API Server
The Revolt backend (revolt-backend) exposes a REST API on port 8000. This is the backbone of your instance — if it goes down, no client can authenticate, send messages, or load channel history.
- Log in to vigilmon.online and click Add Monitor.
- Set Type to
HTTP / HTTPS. - Enter the API root URL:
https://api.yourdomain.com/(orhttp://your-host:8000/). - Set Check interval to
1 minute. - Set Expected HTTP status to
200. - Click Save.
The Revolt API returns a JSON object at the root with instance metadata. A 200 response confirms the Rust process is up and serving requests.
Step 2: Monitor the Web App Frontend
The React web app (typically served on port 5000 or via your reverse proxy) is what your users navigate to. A crash here is invisible to backend monitors.
- Click Add Monitor → HTTP / HTTPS.
- URL:
https://app.yourdomain.com/(orhttp://your-host:5000/). - Check interval:
1 minute. - Expected status:
200. - Click Save.
If you serve the web app as static files from nginx rather than a Node.js process, the nginx host-level check (Step 8) covers this automatically.
Step 3: Monitor the WebSocket Gateway
Revolt's real-time event gateway runs on port 4000. Clients maintain a persistent WebSocket connection to receive message events, presence updates, and typing indicators. A dead gateway means a silent outage — users can log in but messages stop appearing.
Add a TCP port monitor to confirm the gateway is accepting connections:
- Click Add Monitor → TCP Port.
- Host:
your-host(orapi.yourdomain.com). - Port:
4000. - Check interval:
1 minute. - Click Save.
For deeper health validation, add an HTTP monitor to the gateway's HTTP upgrade endpoint if your reverse proxy exposes it:
https://ws.yourdomain.com/
A 101 Switching Protocols or 200 response confirms the gateway process is alive.
Step 4: Monitor the Voso Voice/Video Server
Voso is Revolt's self-hosted voice and video server, running on port 3000. It handles WebRTC signaling and media routing. Monitor its HTTP health endpoint:
- Click Add Monitor → HTTP / HTTPS.
- URL:
http://your-host:3000/(orhttps://voso.yourdomain.com/). - Check interval:
2 minutes. - Expected status:
200. - Click Save.
Voice calls fail silently if Voso is down — users see "connecting…" indefinitely. A 2-minute check interval keeps alert lag short while reducing noise from transient WebRTC negotiation spikes.
Step 5: Monitor MongoDB Connectivity
Revolt stores all messages, channels, users, and server metadata in MongoDB. A MongoDB outage cascades immediately into API errors across every client action.
Add a TCP check for MongoDB's default port:
- Click Add Monitor → TCP Port.
- Host:
your-mongo-host(orlocalhostif running locally). - Port:
27017. - Check interval:
1 minute. - Click Save.
If you run MongoDB in Docker, ensure the port is bound to the host interface that Vigilmon's probe can reach — or use an SSH tunnel and a local probe script that pings the Vigilmon heartbeat API.
Step 6: Monitor Redis
Revolt uses Redis for session management, rate limiting, and pub/sub message passing between microservices. Redis downtime causes authentication failures and message delivery gaps.
- Click Add Monitor → TCP Port.
- Host:
your-redis-host. - Port:
6379. - Check interval:
1 minute. - Click Save.
For a richer check, use a Vigilmon cron heartbeat pinged by a Redis health script:
#!/bin/bash
# /opt/revolt/redis-health.sh
redis-cli -h localhost ping | grep -q PONG && \
curl -s https://vigilmon.online/heartbeat/YOUR_HEARTBEAT_ID
Schedule via cron:
* * * * * /opt/revolt/redis-health.sh
Step 7: Monitor MinIO / S3 File Storage
Revolt uses MinIO (or compatible S3 storage) for user-uploaded files, avatars, and attachments. MinIO exposes a health endpoint at /minio/health/live:
- Click Add Monitor → HTTP / HTTPS.
- URL:
http://your-minio-host:9000/minio/health/live. - Check interval:
2 minutes. - Expected status:
200. - Click Save.
A 200 response means MinIO is healthy and accepting uploads. Add a second monitor for the readiness probe at /minio/health/ready to confirm it can serve reads as well.
Step 8: Monitor Autumn (File Storage Microservice)
Autumn is Revolt's file storage microservice that fronts MinIO — it handles file uploads, download proxying, and virus scanning integration. It runs alongside the main backend.
- Click Add Monitor → HTTP / HTTPS.
- URL:
http://your-host:3003/(default Autumn port — verify in yourRevolt.toml). - Check interval:
2 minutes. - Expected status:
200. - Click Save.
If Autumn is unreachable, file uploads in Revolt return errors and existing attachments fail to load.
Step 9: Monitor January (Link Preview Microservice)
January fetches and caches Open Graph metadata for URLs shared in messages. It's non-critical for core messaging but degrades the user experience noticeably when down — link embeds stop appearing.
- Click Add Monitor → HTTP / HTTPS.
- URL:
http://your-host:7000/(default January port — verify in your config). - Check interval:
5 minutes. - Expected status:
200. - Click Save.
A 5-minute check interval is appropriate here: January failures are user-facing annoyances, not outages, so a slightly longer detection window reduces noise.
Step 10: SSL Certificate Alerts
Your Revolt instance likely uses Let's Encrypt certificates via your reverse proxy. Certificate expiry brings down all HTTPS services simultaneously.
Enable SSL monitoring on each HTTPS monitor you created:
- Open each HTTP / HTTPS monitor.
- Enable Monitor SSL certificate.
- Set Alert when certificate expires in less than
21 days. - Click Save.
With Caddy, auto-renewal is generally reliable. With nginx + Certbot, renewal can fail silently if port 80 is blocked. A 21-day alert window gives you enough time to investigate and renew manually:
certbot renew --dry-run
Step 11: Configure Alert Channels
- Go to Alert Channels in Vigilmon.
- Add email, Slack, or a webhook to your own Revolt instance (meta-alert!).
- Set Consecutive failures before alert to
2on all monitors — container restarts and proxy reloads cause transient single-probe failures.
To alert into a Revolt channel itself, use the Vigilmon webhook channel with Revolt's incoming webhook URL:
POST https://api.yourdomain.com/webhooks/YOUR_WEBHOOK_ID/YOUR_WEBHOOK_TOKEN
Content-Type: application/json
{"content": "🚨 Revolt monitor alert: {{monitor_name}} is DOWN"}
Summary
| Monitor | Target | What It Catches |
|---|---|---|
| API server (HTTP) | https://api.yourdomain.com/ | Rust backend crash |
| Web app (HTTP) | https://app.yourdomain.com/ | Frontend unavailability |
| WebSocket gateway (TCP) | Port 4000 | Real-time event delivery failure |
| Voso voice server (HTTP) | Port 3000 | Voice/video call failures |
| MongoDB (TCP) | Port 27017 | Database connectivity loss |
| Redis (TCP) | Port 6379 | Session/auth failures |
| MinIO (HTTP) | /minio/health/live | File upload/download failure |
| Autumn (HTTP) | Port 3003 | Attachment proxy failure |
| January (HTTP) | Port 7000 | Link preview failure |
| SSL certificate | All domains | Certificate expiry |
Revolt gives you a self-hosted messaging platform with the feature set of a commercial chat tool — but self-hosting means you own the uptime. With Vigilmon watching each layer of the stack, you'll catch Redis disconnects, MongoDB outages, and microservice crashes before your users file bug reports.