Status
Live app-health probe and component map for mybillbook. Internal uptime monitoring runs on Uptime Kuma and error tracking on self-hosted GlitchTip — both on the same Frankfurt LXC as the app. No third-party SaaS, no tracking pixels, no shared infrastructure with anyone else's outage.
Component map
Every layer mb depends on, listed honestly — including what's self-hosted vs SaaS. The whole observability stack runs on the same box as the app, by design.
| Service | Role | Where |
|---|---|---|
| staging.billmybill.com | Beta web app | Frankfurt LXC · single instance |
| Postgres | Primary database (Row-Level Security) | Same LXC · nightly age-encrypted pg_dump |
| Worker | PDF render queue + outbox dispatcher | Same LXC · separate container |
| Cloudflare edge | WAF + CDN + TLS termination | Orange-cloud proxied |
| GlitchTip | Self-hosted error tracking (Sentry-compatible) | Same LXC · all-local, no SaaS |
| Uptime Kuma | Internal uptime monitoring + alerting | Same LXC · all-local, no SaaS |
| qpdf (login.21pdf.com) | PDF rendering service | External SaaS · India region |
Incident response
Internal Uptime Kuma probes
/readyz every five minutes
and emails the on-call address on failure. Live error stack traces
from every panic and 5xx land in GlitchTip within 200 ms.
Operator playbooks live in
docs/runbooks/oncall.md.
If something looks broken to you before we see it, email founder@billmybill.com or file a GitHub issue. Response time in beta is typically under an hour.