xplex setup guide

Setting up multistreaming with xplex is actually easier than setting up a streaming software (like OBS, XSplit etc.). Just follow along the steps, and you'll be up and live in no time!

Table of Contents

  1. getting started
  2. preparing host
  3. deploying xplex
  4. adding streams
  5. updating ingest

1. getting started

In order to get started, you need to keep your prerequisites in check:

Cloud Host

A cloud infrastructure to run the xplex service container for you. Can be any host of your choice, as long as they can run a linux distro with a docker container within it, has enough bandwidth to split your stream, and can have the HTTP & RTMP ports opened. AWS, GCP, Azure, DigitalOcean, Linode, Vultr etc. to name a few popular services that you can use for this.

I personally use DigitalOcean to setup my own xplex instance. If you use this link to sign up to DigitalOcean, you get $100 credit & once you spend $25, I'll get $25 as referral bonus (with $100 starting credit, you can stream for roughly 20 months for free). You don't have to do this, but I'll highly appreciate the support if you do.

Remote Terminal

You will need an SSH client to access the VM in the cloud. It's a small command-line software, usually available out-of-the-box in all Linux & Mac OS' terminal emulators. But on Windows, you'll have to get one (as Windows command prompt is Pepega). I recommend using PuTTY for this purpose, as it's widely popular & trusted SSH client for Windows systems.

Streaming Accounts

May it be Twitch, YouTube, Mixer, some of them, all of them, some other service(s), or a custom streaming server — as long as they can take streaming ingest of regular encoding settings over RTMP — you're good. So, go ahead and get your accounts registered on the services you prefer (and keep the ingest URLs with stream-keys handy).

Streaming Software

If you've streamed before, you probably already have a streaming software set up; if you haven't then you'll need one. The software can be anything, like OBS, XSplit or the likes, as long as it can take a custom ingest server as streaming URL.

2. preparing host

Now that you have all the prerequisites in check, it's time to dive into the real task. First you need to create a host where you can deploy the xplex container — which is essentially a small linux system running on the cloud of the infrastructure provider of your choosing.

Create a small VM (1 CPU Core, 1GB RAM, 1GB Storage are more than enough) & choose an image with Docker set up in it.

Vendors name their computation units differently (nodes, gears, compute cloud etc.). So, please don't be confused — effectively they're all just virtual machines (VMs). Like, in DigitalOcean, they're called droplets.

I'll add service-specific detailed guide to preparing host in this section very soon. Stay tuned!

3. deploying xplex

Note down the IP address of the VM. Login over SSH (Secure SHell) as root into that IP (with PuTTY on Windows).

Now (just to be sure) check if Docker service is up and running, with docker version (you may need to start Docker server, if it wasn't already running, with systemctl start docker). Once you're sure that Docker v18+ is up and running, you can start the xplex container with nohup docker run --name xplex -p 80:80 -p 1935:1935 xplex/full & (note: don't forget the & at the end of the command).

Hopefully everything went well, and you're now ready for the next step. But, there are eleventy-billion ways this can go wrong (considering how many moving parts and abstractions are in play here), but usually it doesn't. I'll try my best to document the common causes of failures — so if you've faced issues, please let me know so I can update the guide — it'll help others as well!

4. adding streams

Open your web-browser and go to http://<your-vm-IP>/ and you should see the xplexhq landing page. This is a small web-app to help you manage your xplex instance.

Visit your streaming services' dashboard(s) and collect the streaming server & stream-keys, then put them in the "Add new ingest URL" field in xplexhq. Once you're done adding all the outgoing ingests, click "Apply Changes" to make the change permanent in the xplex server, and reload this new configuration.

Note: if your streaming server is rtmp://zone.service.tld/path & your stream-key is abc-xyz-1234, then your ingest URL would be rtmp://zone.service.tld/path/abc-xyz-1234.

Your xplex server is now ready to multistream — all you need is to send an audio-video stream to its way with a streaming software. Let's get to that!

5. updating ingest

Whichever streaming software you're using, xplex doesn't really care about all that. All you need is to tell the streaming software to send the stream to your xplex server (instead of whichever service you were sending it to before).

To do that, change the streaming URL to rtmp://<your-vm-IP>:1935/live (there's no stream-key requirement, so put whatever, or leave it blank) in the streaming software settings. And done!

Now, when you'll start streaming, all the services you've added ingests to (in the xplexhq) will receive your stream. Visit your channels to verify that you're live... Happy streaming!