Request routing
Caddy · HTTPS entry pointmedia.yourdomain.com
/ → React dashboardStatic files served from disk
/api · /f · /health → AxumRust service → SQLite + media storage
Independent health checks ↓
Better Stack · Separate infrastructurestatus.yourdomain.com
Choose a domain topology
| Record Type | Host | Target / Value | Purpose |
|---|---|---|---|
A / AAAA | media | <YOUR_VPS_IP> | Serves both React Dashboard UI and Rust Media APIs |
CNAME | status | statuspage.betteruptime.com | Dedicated out-of-band Better Stack status page |
Topology B: Split 2-Domain Architecture
| Record Type | Host | Target / Value | Purpose |
|---|---|---|---|
A / AAAA | media | <YOUR_VPS_IP> | Dedicated React Dashboard UI |
A / AAAA | api | <YOUR_VPS_IP> | Dedicated Rust Axum API and media streaming |
CNAME | status | statuspage.betteruptime.com | Dedicated out-of-band Better Stack status page |
Monitor the backend, not the frontend.Caddy can keep serving the dashboard when Axum is stopped. Check
/health on the backend-facing domain.Keep status infrastructure separate
A status page hosted outside your VPS can remain available when your VPS is offline. Independence reduces shared failure risk; it is not a guarantee of uninterrupted service.