Libreddit gives your users a clean, fast, tracker-free Reddit experience — but it depends on Reddit's API staying available and your Rust process staying healthy. When Reddit rate-limits your instance, the image proxy stalls, or the Actix-web server crashes, every page returns an error and users have no context for why. Vigilmon monitors the web server, upstream Reddit API connectivity, subreddit and post response times, and your TLS certificate so you catch failures before users do.
What You'll Set Up
- HTTP uptime monitor for the Libreddit web server
- Reddit API upstream connectivity health check
- Subreddit and post page response time monitoring
- Image proxy health check
- Search endpoint availability
- SSL/TLS certificate expiry alerts
Prerequisites
- Libreddit running (Rust/Actix-web, default port
8080) - Instance accessible over HTTP or HTTPS
- A free Vigilmon account
Step 1: Monitor the Libreddit Web Server
The root endpoint of Libreddit returns the front page — a live Reddit feed. If it's down, the Rust process has crashed or the port is unreachable.
- Log in to vigilmon.online and click Add Monitor.
- Set Type to
HTTP / HTTPS. - Enter:
http://your-server-ip:8080/ - Set Check interval to
1 minute. - Set Expected HTTP status to
200. - Click Save.
For an HTTPS deployment behind nginx or Caddy:
https://libreddit.yourdomain.com/
A 200 from the root confirms Actix-web is running and can serve pages. Crashes, OOM kills, and port conflicts surface immediately.
Step 2: Monitor Reddit API Upstream Connectivity
Libreddit has no local data — it proxies every request to Reddit's API (api.reddit.com). If Reddit's API is unreachable or rate-limiting your server's IP, every Libreddit page will fail with an upstream error.
Add a monitor for Reddit's API endpoint:
- Click Add Monitor → HTTP / HTTPS.
- Enter:
https://api.reddit.com/ - Set Check interval to
5 minutes. - Set Expected HTTP status to
200. - Set Response time threshold to
3000 ms. - Click Save.
Also monitor the JSON endpoint that Libreddit uses for subreddit feeds:
- Add another monitor for:
https://api.reddit.com/r/popular.json?limit=1 - Set Expected content to
"kind"— every valid Reddit API response includes this field. - Set Expected HTTP status to
200.
If you see a 429 response, Reddit is rate-limiting your instance's IP. This is the most common cause of Libreddit degradation and requires either a different IP or adding OAuth credentials.
Step 3: Monitor Subreddit Page Response Times
Subreddit listing pages are the core user experience. Beyond availability, response time matters — a page that takes 8 seconds to load feels broken even if it eventually succeeds.
- Click Add Monitor → HTTP / HTTPS.
- Enter a popular subreddit on your instance:
http://your-server-ip:8080/r/technology - Set Check interval to
2 minutes. - Set Response time threshold to
5000 ms— alert if the page takes more than 5 seconds. - Set Expected HTTP status to
200. - Set Expected content to
technology(subreddit name should appear on the page). - Click Save.
Add a second subreddit monitor for one of your most-visited communities. Response time degradation on subreddit pages is the first signal of Reddit API latency or rate-limiting upstream.
Step 4: Monitor Post and Comment Pages
Post pages (/r/:subreddit/comments/:id) are heavier than listing pages — they load full comment trees from the API. Monitor a known-good post URL:
- Click Add Monitor → HTTP / HTTPS.
- Enter a static post URL on your instance (pick a stable post like a pinned wiki thread):
http://your-server-ip:8080/r/selfhosted/comments/about/wiki - Set Check interval to
5 minutes. - Set Response time threshold to
8000 ms. - Set Expected HTTP status to
200. - Click Save.
Post page timeouts often appear before subreddit list timeouts because comment trees require multiple API round trips.
Step 5: Monitor the Image Proxy
Libreddit proxies Reddit's image CDN through its own server to prevent client browsers from contacting Reddit's tracking pixels. If the image proxy breaks, every post with images shows broken image icons.
Test the image proxy endpoint directly:
- Click Add Monitor → HTTP / HTTPS.
- Enter the Libreddit image proxy path with a known Reddit image URL encoded. The proxy endpoint is typically:
Or you can check a specific Reddit external image via Libreddit's proxy:http://your-server-ip:8080/img/http://your-server-ip:8080/preview/pre/SOME_IMAGE_ID.png - Set Expected HTTP status to
200(or404is acceptable for a test path that doesn't exist — what you want is NOT a500). - Set Check interval to
5 minutes. - Click Save.
Alternatively, monitor the static assets endpoint which exercises the same serving path:
http://your-server-ip:8080/style.css
A 200 from the CSS file confirms static asset serving is working alongside the image proxy.
Step 6: Monitor the Search Endpoint
Libreddit's /search endpoint queries Reddit's search API. Search failures are often a leading indicator of broader Reddit API issues.
- Click Add Monitor → HTTP / HTTPS.
- Enter:
http://your-server-ip:8080/search?q=test&type=sr - Set Check interval to
5 minutes. - Set Expected HTTP status to
200. - Set Response time threshold to
6000 ms. - Click Save.
Search is typically slower than subreddit listing — 6 seconds is a reasonable alert threshold.
Step 7: Monitor User Page Endpoint
User profile pages (/user/:username) require a separate Reddit API call to /user/:username/about.json. They can fail independently of subreddit pages.
- Click Add Monitor → HTTP / HTTPS.
- Enter a known user page (pick a stable, active public user):
http://your-server-ip:8080/user/reddit - Set Check interval to
5 minutes. - Set Expected HTTP status to
200. - Click Save.
Step 8: SSL/TLS Certificate Expiry Monitoring
If Libreddit is served over HTTPS, monitor certificate expiry:
- Open the HTTPS monitor created in Step 1.
- Scroll to the SSL section.
- Enable Monitor SSL certificate.
- Set Alert when certificate expires in less than
21 days. - Click Save.
Certificate failures on Libreddit are especially disruptive because many users access it specifically to avoid tracking — they're security-conscious and will not click through a certificate warning.
Step 9: Configure Alert Channels
- Go to Alert Channels in Vigilmon and add Slack, email, or a webhook.
- For the web server monitor: Consecutive failures before alert =
2. - For Reddit API upstream monitor: Consecutive failures before alert =
3(brief API hiccups are normal). - For subreddit and post page monitors: Consecutive failures before alert =
2. - Enable Recovery alerts — knowing when Reddit rate-limiting clears is as useful as knowing it started.
Summary
| Monitor | Target | What It Catches |
|---|---|---|
| Web server | http://server:8080/ | Rust process crash |
| Reddit API (root) | https://api.reddit.com/ | Upstream unreachable |
| Reddit API (feed) | /r/popular.json | Rate limiting (429) |
| Subreddit page | /r/technology | Listing page degradation |
| Post page | /r/sub/comments/... | Comment tree timeout |
| Image proxy | /style.css or /img/ | Image serving broken |
| Search endpoint | /search?q=test | Search API failure |
| User page | /user/reddit | User API failure |
| SSL certificate | HTTPS instance URL | Certificate expiry |
Libreddit is a single point of access between your users and Reddit's API. With Vigilmon watching the server process, upstream API health, and every major endpoint, you stop guessing which layer failed and start getting precise, actionable alerts the moment something goes wrong.