OwnMediaHostDocs
Get started

Architecture & domains

Understand how the dashboard, API, and independent status page fit together.

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 TypeHostTarget / ValuePurpose
A / AAAAmedia<YOUR_VPS_IP>Serves both React Dashboard UI and Rust Media APIs
CNAMEstatusstatuspage.betteruptime.comDedicated out-of-band Better Stack status page

Topology B: Split 2-Domain Architecture

Record TypeHostTarget / ValuePurpose
A / AAAAmedia<YOUR_VPS_IP>Dedicated React Dashboard UI
A / AAAAapi<YOUR_VPS_IP>Dedicated Rust Axum API and media streaming
CNAMEstatusstatuspage.betteruptime.comDedicated 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.

Based on the supplied platform and API documentation. View project source ↗