OwnMediaHostDocs
Get started

Quick start

From a fresh VPS to your first hosted file.

Deploy the platform on a fresh Ubuntu or Debian VPS. Setup time depends on your server, DNS, and certificate issuance.

Step 1: Configure DNS Records

Configure your DNS records at your domain registrar (Cloudflare, Namecheap, Route53, etc.) pointing to your VPS IP:

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

Step 2: 1-Line Server Deployment

SSH into your fresh Ubuntu or Debian VPS and execute the automated installer bot:

Run as root:

bash
bash <(curl -fsSL https://raw.githubusercontent.com/nourddinak/OwnMediaHost/main/scripts/deploy.sh)

Run with sudo (standard user):

bash
curl -fsSL https://raw.githubusercontent.com/nourddinak/OwnMediaHost/main/scripts/deploy.sh -o /tmp/deploy.sh && sudo bash /tmp/deploy.sh

The installer provisions Caddy reverse proxy, downloads pre-compiled release binaries , initializes SQLite WAL mode, configures systemd services, and secures automatic Let's Encrypt SSL.


Step 3: Connect 24/7 Status Page (Optional)

If you want automated public uptime monitoring, incident history and uptime tracking, OwnMediaHost integrates with Better Stack via a standalone companion repository: OwnMediaHost-status.

Once your monitor is set up, connect it to your server in 1 click:

bash
sudo bash /opt/ownmediahost/scripts/connect-status.sh "https://status.yourdomain.com"
This step is optional. OwnMediaHost operates completely independently without an external status page. If connected, the status dot in your dashboard sidebar will link directly to your public status page. For the complete step-by-step setup guide, DNS CNAME configuration, and template files, visit the standalone repository: nourddinak/OwnMediaHost-status (or see status/README.md).
Always monitor /health (https://media.yourdomain.com/health) in Better Stack! Do not monitor the root domain (/). In a single unified domain setup, Caddy serves the static frontend HTML directly. Probing / returns HTTP 200 even if the backend service is down. Probing /health accurately triggers an HTTP 502 Bad Gateway incident when the backend is down but Caddy remains reachable.

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