Quetre is a privacy-respecting open-source frontend for Quora — no JavaScript, no ads, no tracking. It proxies Quora's content through your own server using PHP and the Slim Framework, served by Apache or nginx with PHP-FPM. Because Quetre depends on both your own infrastructure and Quora's upstream API, there are two distinct failure modes: your server goes down, or Quora blocks or throttles your scraping requests. Vigilmon helps you distinguish between the two, so you know whether to restart PHP-FPM or wait out a Quora rate limit.
What You'll Set Up
- HTTP uptime monitor for the Quetre web server (port 80/443)
- PHP-FPM process health check via a local status endpoint
- Quora upstream connectivity check
- Question and search page response-time monitors
- Rate-limit detection for Quora 429 responses
- Cache health check (Redis or APCu)
- SSL certificate expiry alerts
Prerequisites
- Quetre running on a server (Apache or nginx + PHP-FPM, port 80/443)
- A free Vigilmon account
Step 1: Monitor the Quetre Web Server
Quetre's homepage or any question page returns HTML when the server is healthy. Add an HTTP monitor:
- Log in to vigilmon.online and click Add Monitor.
- Set Type to
HTTP / HTTPS. - Enter your Quetre URL:
https://quetre.yourdomain.com. - Set Check interval to
1 minute. - Set Expected HTTP status to
200. - Click Save.
This catches web server crashes, nginx misconfigurations, and PHP-FPM failures that result in 502 or 503 responses.
Step 2: Enable and Monitor the PHP-FPM Status Page
PHP-FPM exposes a built-in status page that reports active workers, idle workers, and queue depth. Enable it by adding a pool configuration:
; /etc/php/8.x/fpm/pool.d/www.conf
pm.status_path = /fpm-status
Restrict the status path in nginx so it's only accessible locally:
location /fpm-status {
allow 127.0.0.1;
deny all;
fastcgi_pass unix:/run/php/php8.x-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
Reload PHP-FPM and nginx:
systemctl reload php8.x-fpm nginx
Add a Vigilmon monitor for the internal status endpoint via a local proxy or expose it on a non-public port:
- Click Add Monitor →
HTTP / HTTPS. - URL:
http://127.0.0.1/fpm-status(or use an SSH tunnel / local monitoring agent). - Expected HTTP status:
200. - Response body contains:
pool:. - Check interval:
2 minutes. - Click Save.
If PHP-FPM has no idle workers, the queue is growing, or the process has crashed, this check catches it before user-facing 502 errors accumulate.
Step 3: Monitor Quora Upstream Connectivity
Quetre's core function depends on reaching quora.com from your server. Add an HTTP monitor that checks Quora reachability from Vigilmon's monitoring nodes (as a baseline), and complement it with a host-side check:
- Click Add Monitor →
HTTP / HTTPS. - URL:
https://www.quora.com - Expected HTTP status:
200. - Check interval:
5 minutes. - Click Save.
This tells you if Quora is globally reachable. For your server's specific outbound path (which may be rate-limited or blocked by Quora's IP filters), add a heartbeat-based check:
#!/bin/bash
# /usr/local/bin/quetre-upstream-check.sh
STATUS=$(curl -s -o /dev/null -w "%{http_code}" \
-A "Mozilla/5.0 (compatible; health-check)" \
--max-time 10 \
"https://www.quora.com/robots.txt")
if [ "$STATUS" = "200" ] || [ "$STATUS" = "301" ]; then
curl -s https://vigilmon.online/heartbeat/YOUR_HEARTBEAT_ID
fi
Schedule it every 10 minutes:
*/10 * * * * /usr/local/bin/quetre-upstream-check.sh
Step 4: Monitor Question Page Response Times
A Quetre question page involves fetching and parsing Quora content. Slow responses indicate either PHP processing bottlenecks or slow upstream Quora responses. Add a response-time monitor:
- Click Add Monitor →
HTTP / HTTPS. - URL:
https://quetre.yourdomain.com/question/what-is-self-hosting(use a real question slug from your instance). - Expected HTTP status:
200. - Maximum response time:
5000 ms— Quetre pages legitimately take 2–4 seconds when fetching from Quora. - Check interval:
5 minutes. - Click Save.
Step 5: Detect Quora Rate Limiting
Quora may return 429 (Too Many Requests) or redirect to a CAPTCHA page when it detects scraping. When this happens, Quetre returns an error page. Add a body-content check to detect this:
- Click Add Monitor →
HTTP / HTTPS. - URL:
https://quetre.yourdomain.com/question/what-is-self-hosting. - Enable Response body must NOT contain:
rate limitorblockedorcaptcha. - Check interval:
10 minutes. - Click Save.
Alternatively, monitor the HTTP status code from Quetre's error pages — Quetre typically returns a 503 when Quora is unavailable:
- Add a second check on the same URL.
- Expected HTTP status:
200(any non-200 response triggers an alert). - Click Save.
Step 6: Monitor the Image Proxy
Quetre proxies Quora images through your server to prevent tracking pixels from following users. If the image proxy fails, pages load with broken images. Add a monitor for the image proxy endpoint:
- Click Add Monitor →
HTTP / HTTPS. - URL:
https://quetre.yourdomain.com/image?url=https://example.com/test.png(the proxy path format depends on your Quetre version). - Expected HTTP status:
200or302. - Check interval:
10 minutes. - Click Save.
Step 7: Cache Health (Redis or APCu)
If you've configured Redis or APCu caching to reduce Quora request load, a cache failure causes every page to hit Quora directly — increasing latency and risk of rate limiting. Monitor cache availability:
For Redis:
- Click Add Monitor → TCP Port.
- Host: your Redis server IP.
- Port:
6379. - Check interval:
2 minutes. - Click Save.
For APCu (in-process PHP cache): APCu is embedded in the PHP-FPM process. Monitor it via the FPM status page response time — a sudden increase in response time when APCu is disabled means pages are no longer cached.
Step 8: SSL Certificate Alerts
- Open the HTTPS monitor for your Quetre domain.
- Enable Monitor SSL certificate.
- Set Alert when certificate expires in less than
21 days. - Click Save.
Step 9: Configure Alert Channels
- Go to Alert Channels and add Slack, email, or a webhook.
- Set Consecutive failures before alert to
2— PHP-FPM restarts can cause a brief 502 before the process pool recovers. - Use separate alert channels for "your server is down" (web server + FPM alerts) vs. "Quora is blocking you" (upstream connectivity + rate-limit alerts) so you know which type of incident requires action from you.
Summary
| Monitor | Target | What It Catches |
|---|---|---|
| Web server HTTP | :80/:443 | nginx/Apache down, PHP-FPM crash |
| PHP-FPM status | /fpm-status | Worker pool exhausted, FPM down |
| Quora upstream | quora.com | Quora globally unreachable |
| Upstream heartbeat | Heartbeat URL | Your IP blocked or rate-limited by Quora |
| Question page | /question/:slug | Slow Quora responses, PHP errors |
| Image proxy | /image?url=... | Image proxy broken |
| Redis TCP | :6379 | Cache down, increased Quora load |
| SSL certificate | HTTPS domain | TLS cert expiry |
Quetre's value is seamless, private Quora browsing — but that depends on both your PHP stack and Quora's tolerance for your scraping requests. With Vigilmon watching the web server, PHP-FPM, upstream connectivity, and rate-limit signals, you'll know immediately whether your instance is down or Quora is throttling you, and you'll respond to the right problem.