Skip to content

Under the hood

At its core, xplex is an nginx server with RTMP support, which pushes the incoming stream to multiple RTMP endpoints—the platforms you stream to.

xplex also includes a simple web dashboard for config management, called xplexHQ .


Project structure

Here’s how the xplex core is organized:

  • Directory.github/ ----> GitHub Actions & CI workflows
  • Directoryapp/ --------> Source code for xplexHQ
  • Directoryconf/ -------> RTMP & HTTP configs for nginx
  • Directorydaemons/ ----> systemd units for service control
  • compose.yaml —> Docker Compose definition
  • Dockerfile ---> Container build steps
  • LICENSE -----> Licensed under MPLv2.0
  • setup.sh ----> Manual setup script
  • xplex.sh ----> Container start script

How it’s built

  1. Custom-build the nginx-rtmp container Run docker build --target nginx -t xplex/nginx . if you just need the nginx base image.

  2. Integrate with a Node.js base image This setup simplifies things—though decoupling Node.js is on the roadmap.

  3. Configure HTTP and RTMP servers HTTP is used to serve the dashboard; reverse-proxied to port 80 for easy access. RTMP is used to receive the stream and push it to the platforms.

  4. Deploy xplexHQ server A lightweight Node.js app to manage and store ingest URLs.

  5. Launch in sequence First the dashboard API, then the nginx server with RTMP support.


Future Roadmap

  • ARM & RISC-V architecture support
  • Unit and integration testing
  • Major upgrades to xplexHQ
  • HTTPS / Let’s Encrypt support
  • One-click provider integrations
  • Stretch goals: RTMPS, RTSP, SRT, HLS, NDI support