This guide takes you from zero to a running restreamer with at least one push target configured. By the end, your broadcasting software will be sending a single stream that Simple RTMP Restreamer forwards to every destination you add.

Prerequisites

Before you start, make sure you have:
  • Docker and Docker Compose installed on the machine where you’ll run the restreamer. Any recent version works. See the Docker installation docs if needed.
  • Broadcasting software capable of sending an RTMP stream — OBS Studio, Streamlabs, or any other encoder that supports custom RTMP ingest URLs.
  • The RTMP stream keys for each platform you want to push to (YouTube, Twitch, Facebook Live, etc.).

Deploy and go live

1

Create a working directory

Create a directory for the restreamer’s files and navigate into it.
mkdir restreamer && cd restreamer
2

Write the docker-compose.yml

Create a docker-compose.yml file with the following content.
docker-compose.yml
services:
  restreamer:
    image: ghcr.io/kbats183/simple-rtmp-restreamer:latest
    container_name: "restreamer"
    environment:
      - BASIC_AUTH_USER=live
      - BASIC_AUTH_PASS=changeme
    volumes:
      - ./simple-rtmp-restreamer.data.json:/app/simple-rtmp-restreamer.data.json
      - ./web:/app/web
    ports:
      - "1935:1935"
      - "6070:6070"
    restart: unless-stopped
Change BASIC_AUTH_PASS from changeme to a strong password before exposing the service on a public network. Anyone who can reach port 6070 can manage your streams.
3

Create required files and directories

The compose file mounts the data file and the web/ UI directory. Set them up before starting the container.Create the empty data file:
echo '[]' > simple-rtmp-restreamer.data.json
Download the web/ directory from the project repository and place it in the same directory as your docker-compose.yml. This directory contains the dashboard UI assets.
4

Start the service

Pull the image and start the container in the background.
docker compose up -d
Wait a few seconds for the container to start, then confirm it is running.
docker compose ps
You should see the restreamer container with status Up.
5

Open the web UI

Open your browser and navigate to http://localhost:6070. Log in with the username live and the password you set for BASIC_AUTH_PASS.
If you deployed to a remote server, replace localhost with your server’s IP address or hostname. Make sure port 6070 is reachable from your browser.
6

Create your first stream

In the dashboard, click New stream and give it a name — for example, main. The name becomes part of the RTMP ingest URL, so use lowercase letters, numbers, and hyphens only.After saving, your ingest URL is:
rtmp://<your-server-ip>/live/main
Replace <your-server-ip> with localhost if you’re testing locally, or your server’s public IP if the restreamer is on a VPS.
7

Add push targets

With your stream selected, click Add target and paste the RTMP URL for your first destination. Platform-specific formats look like this:
PlatformRTMP URL format
YouTube Livertmp://a.rtmp.youtube.com/live2/<stream-key>
Twitchrtmp://live.twitch.tv/app/<stream-key>
Facebook Livertmps://live-api-s.facebook.com:443/rtmp/<stream-key>
Custom endpointrtmp://<host>/<app>/<key>
Repeat for each platform you want to reach. There is no limit on the number of targets per stream.
8

Configure your broadcasting software

Point your encoder at the restreamer’s ingest URL instead of a platform directly.In OBS Studio:
  1. Open SettingsStream.
  2. Set Service to Custom.
  3. Set Server to rtmp://<your-server-ip>/live.
  4. Set Stream Key to your stream name (for example, main).
  5. Click OK.
In OBS, you can also enter the full URL as the server with no stream key: rtmp://<your-server-ip>/live/main. Both formats work.
9

Go live

Click Start Streaming in OBS (or the equivalent in your encoder). Simple RTMP Restreamer receives the connection on port 1935 and immediately begins forwarding to all push targets you added.Return to the dashboard to confirm the stream shows an active status and that each target is connected.

Next steps

Deployment guide

Configure firewalls, set up a reverse proxy, and harden your deployment for production.

Dashboard guide

Learn all the dashboard controls for managing streams and targets.

Authentication

Configure or disable basic auth for your environment.

API reference

Automate stream creation and target management via the REST API.