Restreamer is an open-source Multi Streaming tool. It allows you to stream to multiple places from one source.
Restreamer is a great self-hosted option for anyone that needs to stream to multiple places! There are lots of paid services across the web that accomplish this but with a little bit of docker knowledge and networking knowledge, you can accomplish the same thing and hopefully save yourself some money! Consider donating to the developer Here!
Restreamer allows you to stream to YouTube, Facebook, Twitch, Embed onto your website, to your own video server, and even have a public channels page on your Restreamer!
We are going to assume you already have a working server with Docker, Portainer, and Nginx Proxy Manager running. We will go over the docker-compose, and configuring Nginx-Proxy-Manager. We are not using our own images for this stack so please consult the Docker hub and GitHub links for more information regarding the Docker image and source code.
This is strictly how to get the app running. Once again, we cover how to do this at TrueFreedomTech.com in much more detail! This will get beginners running, and experts should be able to adapt this to their own configuration with relative ease.
Ready?
The next step is our Docker-Compose. We will be deploying this with Portainer.
If you are not familiar with Portainer or Docker-Compose here are the official docs:
Step 1: Go to Stacks.
Step 2: Click Add Stack.
Step 3: Name your Stack (Ex. restreamer)
Step 4: Paste in the Contents Below.
Step 5: Deploy the Stack.
![]() |
![]() |
![]() |
#Docker-compose version
version: "3.8"
#Apps
services:
#Name of app
restreamer:
#Docker image
image: datarhei/restreamer:latest
#Ports to Expose
ports:
- 1935:1935
#Docker Network
networks:
- nginx-public
#Persistant Volumes
volumes:
- data:/core/data
- config:/core/config
#Environment Variable
environment:
- CORE_ROUTER_UI_PATH=/core/ui
#Restart Policy
deploy:
restart_policy:
condition: any
networks:
nginx-public:
external: true
volumes:
data:
config:
Before we configure our apps, we will set up our domains using Nginx-Proxy-Manager. If you followed our Nginx-Proxy-Manager stack setup you should be able to copy everything we do step by step.
Step 1: Copy the Restreamer service name.
This should be restreamer_restreamer
if you did not change the names of apps.
Step 2: Log in to Nginx-Proxy-Manager and create a new proxy host.
Step 3: Enter your Domain name (Ex. restreamer.example.com)
Step 4: Add the service name to the Forward Hostname / IP at port 8080.
Step 5: Enable Cache Assets, Block Common Exploits, and Websockets Support.
Step 6: Click Save.
Step 7 (Optional): Enable SSL (we say this is optional, but you should always have an SSL cert if possible).
![]() |
![]() |
![]() |
![]() |
After setting up your domain name, it's time to log in. Go to the URL you chose for your application. You should arrive at a screen like this!
![]() |
![]() |
(If you do not arrive at a screen like this then something is wrong! Our premium members can open a support ticket Here!)
Now create your admin user and start setting up your Restreamer!
Congrats! This is the basic setup for Restreamer, as mentioned at the beginning we have a more in-depth course available at TrueFreedomTech.com.