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
A computer or mini-PC (old desktops, laptops, or low-cost mini PCs work great)
At least 8GB USB drive (for creating a bootable installer)
Ubuntu Server ISO (download from ubuntu.com)
Rufus (for creating the bootable USB, rufus.ie)
PuTTY (SSH client for remote management, https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html)
Stable internet connection (upload speed will limit the number of platforms you can stream to—ideally 30 Mbps+)
Step 1: Prepare Your Ubuntu Server Installer
Download Ubuntu Server 24.04.3 LTS from Ubuntu’s website.
Download Rufus from rufus.ie.
Insert your USB drive and open Rufus.
Select your USB drive, choose the Ubuntu ISO, and start the process.
Warning: This will erase everything on the USB drive.
Step 2: Install Ubuntu Server
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).
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
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
Find your server’s IP address (shown at login).
Open PuTTY on your main computer.
Enter the IP address, select SSH, and connect.
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
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.
Save and exit (CTRL+X, then Y, then Enter).
Reload NGINX:
sudo systemctl reload nginx
Step 8: Test Your Server
Open OBS (or your streaming software).
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.