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
-
Custom-build the
Runnginx-rtmp
containerdocker build --target nginx -t xplex/nginx .
if you just need the nginx base image. -
Integrate with a Node.js base image
This setup simplifies things—though decoupling Node.js is on the roadmap. -
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. -
Deploy xplexHQ server
A lightweight Node.js app to manage and store ingest URLs. -
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