How to Build Your Own Self-Hosted Multi-Streaming Server (No Monthly Fees!)

If you’re tired of paying recurring fees for services like Restream.io and want full control over your streaming setup, you can build your own self-hosted multi-streaming server. Once it’s set up, you can broadcast from your streaming software or hardware switcher to multiple platforms—without ongoing subscription costs.

This guide walks you through installing NGINX with the RTMP module on an Ubuntu Server, so you can restream to YouTube, Facebook, Vimeo, and more.

What You’ll Need

Step 1: Prepare Your Ubuntu Server Installer

  1. Download Ubuntu Server 24.04.3 LTS from Ubuntu’s website.

  2. Download Rufus from rufus.ie.

  3. Insert your USB drive and open Rufus.

  4. Select your USB drive, choose the Ubuntu ISO, and start the process.

  5. Warning: This will erase everything on the USB drive.

Step 2: Install Ubuntu Server

  1. Boot your target computer from the USB drive (press F2, F10, or Delete during startup to enter BIOS and change boot order to boot from the USB drive).

  2. Follow the prompts to:

    • Select your language

    • Use the entire disk (note: this will erase any existing OS)

    • Set a hostname (e.g., mystreams)

    • Create a username and password (you’ll use this later for SSH)

    • Enable OpenSSH Server

  3. Let the installation finish, then remove the USB drive and reboot.

Step 3: Lock in a Static IP Address

To avoid losing connection if your IP changes:

  • Log in to your router and assign your server a static IP.

Step 4: Connect via SSH

  1. Find your server’s IP address (shown at login).

  2. Open PuTTY on your main computer.

  3. Enter the IP address, select SSH, and connect.

  4. Accept the security warning and log in with your username/password.

Step 5: Update and Install NGINX

In PuTTY, run:

sudo apt-get update
sudo apt install nginx -y

Check that it’s running:

sudo systemctl status nginx

Open a browser and go to your server’s IP—if you see the NGINX welcome page, you’re good.

Step 6: Install RTMP Module

sudo apt install libnginx-mod-rtmp -y

Step 7: Edit NGINX Config

  1. Open the config file:

sudo nano /etc/nginx/nginx.conf 

Scroll to the bottom of file and add:

rtmp {
    server {
        listen 1935;
        chunk_size 4096;
        allow publish 127.0.0.1;
        #deny publish all;

        application live {
            live on;
            record off;

            # Push to Platform #1
            push rtmp://streaming_url/stream_key;

            # Push for Additional platforms go here
            # push rtmp://streaming_url/stream_key;
        }
    }
}

Replace rtmp://streaming_url/stream_key with your platform’s RTMP URL and persistent stream key.

  1. Save and exit (CTRL+X, then Y, then Enter).

  2. Reload NGINX:

sudo systemctl reload nginx

Step 8: Test Your Server

  1. Open OBS (or your streaming software).

  2. Set the stream destination to:

rtmp://YOUR_SERVER_IP/live

(No stream key required for the local server.)


3. Start streaming—your video should appear on all configured platforms.

Step 9: Add More Platforms

Repeat Step 7 for each platform you want to push to, adding more push lines in the config file.

Pro Tips

  • Keep your server on your local network for security.

  • Use a persistent stream key to avoid editing the config frequently.

  • Don’t overload your upload speed—limit to 2–3 platforms unless you have high bandwidth.

  • Consider a small, dedicated mini-PC for 24/7 stability.

By following this guide, you now have a self-hosted multi-streaming setup that eliminates monthly costs and gives you full control.

Next
Next

Onsite AV Consultation at Cypress Baptist Church | Media Ministry Upgrade