Your Conduit homeserver stopped federating at midnight. Rooms with users on matrix.org, Element's servers, and other homeservers went silent. Your users in those rooms sent messages that were never delivered. Nobody knew for hours because Conduit doesn't send you an alert when federation breaks — it just silently fails.
Conduit is a lightweight, high-performance Matrix homeserver written in Rust. It's designed for self-hosters who want a Matrix server without the operational complexity of Synapse. It's fast, has a tiny memory footprint, and runs on modest hardware. But when it goes down or loses federation connectivity, your users lose access to the broader Matrix network.
Vigilmon gives you the external uptime monitoring that catches Conduit failures, federation endpoint issues, and certificate problems before your users report them in a room you can no longer read.
What You'll Build
- A Vigilmon HTTP monitor on Conduit's client API health endpoint
- A federation version endpoint check
- A web client availability monitor (if using Element Web or Cinny)
- Response time monitoring to catch performance degradation
- SSL certificate expiry alerts
Prerequisites
- A self-hosted Conduit homeserver (Conduit v0.8.x or later recommended)
- A free account at vigilmon.online
Step 1: Monitor the Client API Health Endpoint
Conduit exposes a Matrix spec-compliant endpoint at /_matrix/client/versions that returns the supported Matrix client-server spec versions. This endpoint requires no authentication and responds whenever Conduit is running and healthy.
Test it:
curl https://your-conduit.example.com/_matrix/client/versions
Expected response:
{
"versions": [
"r0.5.0",
"r0.6.0",
"v1.1",
"v1.2"
],
"unstable_features": {
"org.matrix.e2e_cross_signing": true
}
}
A 200 response with a versions array confirms Conduit is running and the embedded Sled (or RocksDB) database is accessible. If Conduit crashes or its storage layer becomes corrupted, this endpoint returns a non-200 or times out entirely.
Set up the Vigilmon monitor:
- Log in to Vigilmon and click New Monitor → HTTP.
- Set URL to
https://your-conduit.example.com/_matrix/client/versions. - Set Check interval to 60 seconds.
- Set Expected status code to
200. - Under Advanced → JSON body assertion, add:
- Path:
versions - Operator:
exists
- Path:
- Save the monitor.
Vigilmon checks your Conduit client API every minute from multiple geographic regions. A Conduit process crash, OOM kill, or storage corruption will be detected within 60 seconds.
Step 2: Federation Endpoint Check
Matrix federation is the mechanism that allows your Conduit users to join rooms hosted on other servers and communicate with users on matrix.org, beeper.com, and thousands of other homeservers. Conduit exposes a federation version endpoint at /_matrix/federation/v1/version.
Test it:
curl https://your-conduit.example.com/_matrix/federation/v1/version
Expected response:
{
"server": {
"name": "Conduit",
"version": "0.8.0"
}
}
This endpoint is what remote servers hit to negotiate federation. If it returns an error or your TLS certificate is mismatched on port 8448 (the Matrix federation port), other homeservers will stop federating with yours. Users will see messages fail to send in federated rooms.
Add a federation monitor in Vigilmon:
- Click New Monitor → HTTP.
- Set URL to
https://your-conduit.example.com/_matrix/federation/v1/version. - Set Check interval to 5 minutes.
- Set Expected status code to
200. - Under Advanced → JSON body assertion, add:
- Path:
server.name - Operator:
exists
- Path:
- Save.
Note on ports: If your Conduit instance runs Matrix federation on port 8448 (the Matrix default), adjust the URL to https://your-conduit.example.com:8448/_matrix/federation/v1/version. Many self-hosted setups proxy federation through port 443 via a .well-known/matrix/server delegation — check your configuration.
Step 3: Web Client Availability
Many self-hosters deploy a Matrix web client — Element Web, Cinny, or Hydrogen — alongside Conduit so users can access the server from a browser. This web client is a separate static site served by Nginx or Caddy. It can go down independently of Conduit itself.
- Click New Monitor → HTTP in Vigilmon.
- Set URL to
https://your-element.example.com/(your Matrix web client URL). - Set Check interval to 60 seconds.
- Set Expected status code to
200. - Under Advanced → Keyword check:
- Keyword present:
Element(orCinny/Hydrogendepending on your client) - Keyword absent:
"502 Bad Gateway","Internal Server Error"
- Keyword present:
- Save.
This catches Nginx misconfigurations, static file deployment failures, and reverse proxy outages that take down the web client while Conduit itself stays healthy.
Step 4: Response Time Monitoring
Conduit is written in Rust and is designed to be fast. Under normal conditions, the /_matrix/client/versions endpoint responds in single-digit milliseconds. If you observe response times climbing above 500ms, it typically indicates a storage layer issue (Sled/RocksDB compaction, disk I/O saturation) or the server is under unusual load.
Vigilmon tracks response time automatically on every HTTP monitor. To set a response time alert:
- Open your existing
/_matrix/client/versionsmonitor in Vigilmon. - Under Advanced → Response time, set Alert if response time exceeds to
2000ms. - Save.
A response time alert fires before users notice sluggishness, giving you time to investigate disk I/O, database compaction, or an unusual traffic spike before the server tips into full unavailability.
You can also add a monitor on a slightly heavier endpoint to catch performance issues under real load:
# Check the server well-known endpoint — used by clients to auto-discover your homeserver
curl https://your-conduit.example.com/.well-known/matrix/client
Add this as a second HTTP monitor with the same response time threshold.
Step 5: SSL Certificate Alerts
Matrix federation is particularly sensitive to certificate issues. Other homeservers verify your TLS certificate during federation handshakes. An expired or misconfigured certificate doesn't just break browser access — it breaks federation with every other Matrix homeserver. Users in federated rooms will see their messages fail silently.
Vigilmon's HTTPS monitors automatically check SSL validity on every check. To add an explicit expiry alert:
- Open your
/_matrix/client/versionsmonitor in Vigilmon. - Under Advanced → SSL certificate, enable Alert when certificate expires within and set to
21 days. - Save.
Set the threshold to 21 days (rather than the typical 14) because Let's Encrypt auto-renewal can fail silently, and federation certificate mismatches are harder to debug remotely than a web browser TLS error.
For setups using a reverse proxy (Nginx, Caddy, or Traefik) to terminate TLS, the certificate Vigilmon checks is the one on your public-facing domain — exactly the one that matters for both users and federation partners.
Step 6: Alert Channels
Go to Notifications → New Channel in Vigilmon and configure:
- Email — direct alerts to your administrator inbox
- Webhook — post to a Matrix room via a bot (self-referential but effective for non-critical alerts), or to a Slack/Discord channel your admin team watches
A federation endpoint alert looks like:
🔴 DOWN: your-conduit.example.com Federation
/_matrix/federation/v1/version returned 502
Region: EU-West
Triggered: 2026-01-15 01:33 UTC
A certificate expiry warning looks like:
⚠️ SSL EXPIRY: your-conduit.example.com
Certificate expires in 18 days (2026-02-02)
What You've Built
| Scenario | How Vigilmon catches it |
|---|---|
| Conduit process crash | /_matrix/client/versions returns non-200 |
| Storage layer corruption (Sled/RocksDB) | Client API times out or errors |
| Federation endpoint broken | /_matrix/federation/v1/version check fails |
| Other homeservers can't federate | Federation monitor detects endpoint failure |
| Web client (Element/Cinny) unreachable | Keyword monitor on web client URL fails |
| Reverse proxy (Nginx/Caddy) down | HTTP monitor detects 502/504 |
| Response time degradation | Response time alert fires before full outage |
| SSL certificate expiry | Expiry alert fires 21 days before expiry |
Conduit's lightweight footprint makes it easy to run on a small VPS — but that same small VPS can run out of disk, get OOM-killed, or have its certificates expire without any built-in alerting. External monitoring closes that gap.
Start monitoring your Conduit homeserver today — register free at vigilmon.online.