Files
nyone/deploy/nginx

Nginx Deployment Notes

These configs match the current project domains:

  • App: https://nyone.app
  • HLS playback: https://nyone-hls.net
  • OBS ingest: rtmp://nyone.app:19935

MediaMTX stays private on local ports:

  • RTMP ingest: 0.0.0.0:19935 directly through MediaMTX
  • HLS: 127.0.0.1:19988

Install layout on Ubuntu/Debian:

sudo cp deploy/nginx/nyone-app.conf /etc/nginx/sites-available/nyone-app.conf
sudo cp deploy/nginx/nyone-hls.conf /etc/nginx/sites-available/nyone-hls.conf
sudo ln -s /etc/nginx/sites-available/nyone-app.conf /etc/nginx/sites-enabled/nyone-app.conf
sudo ln -s /etc/nginx/sites-available/nyone-hls.conf /etc/nginx/sites-enabled/nyone-hls.conf

Check and reload:

sudo nginx -t
sudo systemctl reload nginx

Make sure DNS points both hostnames to the server:

  • nyone.app
  • nyone-hls.net

The Laravel .env should use:

APP_URL=https://nyone.app
STREAMING_RTMP_INGEST_URL=rtmp://nyone.app:19935
STREAMING_HLS_PUBLIC_URL=https://nyone-hls.net
MEDIAMTX_SHARED_SECRET=change-this-secret

Open TCP 19935 on the server firewall for OBS ingest. Nginx is only proxying the Laravel app and HLS HTTPS playback in this setup.