Docker Compose setup
The recommended way to run Simple RTMP Restreamer is with Docker Compose. The completedocker-compose.yml is shown below.
docker-compose.yml
Container image
The image is published to the GitHub Container Registry:latest always pulls the most recent build. To pin to a specific version for reproducible deployments, replace latest with a version tag from the package page.
Port requirements
The container exposes two TCP ports. Both must be reachable by the appropriate clients.| Port | Protocol | Purpose | Who needs access |
|---|---|---|---|
1935 | TCP | RTMP ingest — your encoder connects here | Your broadcasting machine |
6070 | TCP | Web UI and REST API | Your browser / API clients |
If you run the restreamer on a different host from your encoder, make sure your encoder can reach port 1935 on the server. Likewise, any machine that will use the dashboard or API must be able to reach port 6070.
Volume mounts
Thedocker-compose.yml defines two volume mounts. Both are bind mounts from the host directory where you placed the compose file.
simple-rtmp-restreamer.data.json
This file stores all your stream and push target configuration. Mounting it as a bind mount means your configuration survives container restarts, image updates, and container recreation.
Create the file before starting the container for the first time:
web/
The web/ directory contains the frontend assets served by the web UI. Download the web/ folder from the project repository and place it alongside your docker-compose.yml before starting the container.
Restart policy
Therestart: unless-stopped policy tells Docker to restart the container automatically if it exits unexpectedly, and after a host reboot, unless you explicitly stopped it with docker compose stop. This is appropriate for a long-running production service.
Firewall configuration
Restrict access to each port based on who actually needs it.Port 1935 (RTMP ingest)
Open this port only to the IP address of your encoding machine. If you stream from a fixed location or a specific host, use a firewall rule to allow only that source.Port 6070 (web UI and API)
For a private deployment (local network or VPN only), you can restrict port 6070 to trusted IP ranges:Reverse proxy configuration
If you want to access the dashboard over HTTPS or expose it on a standard port, put a reverse proxy such as nginx or Caddy in front of port 6070.Caddy
Caddyfile
nginx
nginx.conf
docker-compose.yml so port 6070 is only accessible from localhost:
docker-compose.yml
Updating the container
To update to the latest image, pull the new version and recreate the container:simple-rtmp-restreamer.data.json is preserved because it lives on the host filesystem, not inside the container.