Set up external monitoring
Use Better Stack to check OwnMediaHost from outside your VPS and publish an independent status page. This integration is optional.
1. Create a monitor
Create an uptime monitor at Better Stack. Set the target to your backend-facing health URL. The supplied setup guide uses a 3-minute interval; confirm available intervals and current plan limits in your account.
| Topology | Monitor target | Dashboard |
|---|---|---|
| Unified domain | https://media.yourdomain.com/health | https://media.yourdomain.com |
| Split domains | https://api.yourdomain.com/health | https://media.yourdomain.com |
Always monitor/health, not/. The static frontend can return HTTP 200 while the backend is stopped. If Caddy is still available but Axum is stopped, the proxy typically returns 502; a VPS or network outage may instead cause a timeout or connection failure.
2. Create your public status page
In Better Stack, create a status page, attach your monitor, choose the dark theme, and configure status.yourdomain.com as the custom domain. Use the exact DNS target shown by Better Stack. The supplied guide specifies the following target:
| Type | Name | Target |
|---|---|---|
| CNAME | status | statuspage.betteruptime.com |
Use DNS-only mode in Cloudflare during initial certificate setup. Verify current custom-domain availability and pricing in Better Stack before relying on a free plan.
3. Connect OwnMediaHost
Run the connection utility on your VPS:
sudo bash /opt/ownmediahost/scripts/connect-status.sh "https://status.yourdomain.com"According to the supplied guide, this updates /etc/ownmediahost/ownmediahost.env, synchronizes database settings, configures origins, and links the dashboard sidebar badge to the status page.
What incident timing means
A polling monitor records detected failures and recoveries. With checks every 3 minutes, it cannot guarantee the exact second an outage actually began or ended. A short outage between checks may be missed. Detection and notification delays also depend on retries, confirmation rules, and alert settings.
Second-resolution timestamps describe recorded observations, not second-accurate continuous measurement. Incident reports and post-mortems depend on your configuration and plan; do not assume a full root-cause analysis is generated automatically.
Validate application health
The supplied API document describes status: "degraded" when a database check fails but does not establish its HTTP status. Configure response-content checks for operational, or additionally monitor /health/ready, documented to return HTTP 500 when the database is unavailable.
Dashboard integration
After connection, the sidebar badge links to your external status page. Configure it in Settings → Status & Topology. The supplied integration also describes forwarding /status/ visitors to the configured status URL. Verify that redirect in your installed release.