What does datarhei Restreamer do?
Restreamer is a self-hosted streaming server solution with a web interface. It can receive video sources, process them, serve them on its own player page, and forward them as a publication to platforms or other servers.
Open the official datarhei website
Phone / Encoder / OBS → Restreamer on your own server
├→ YouTube / Twitch / another service
├→ Player or HLS web page
└→ OBS or another receiverIn this guide
1. Requirements and checking your system
This guide is written for the 64-bit systems that Docker currently supports:
- Ubuntu: 26.04 LTS, 24.04 LTS, or 22.04 LTS
- Debian: 13 Trixie or 12 Bookworm
- a public IP or suitable router port forwards
- root access or a user with
sudorights - enough upload and enough CPU power, especially for transcoding
Show the distribution, version, and architecture:
cat /etc/os-release && \
dpkg --print-architectureThen switch to a root shell. On Ubuntu:
sudo -iOn Debian without sudo set up:
su -If your prompt already shows root@…, you are already root.
sudo.2. Installing Docker Engine and Compose
Check for an existing Docker first
If Docker is already installed and other containers are running, do not replace packages carelessly. On a fresh server you can look for conflicting packages with dpkg -l docker.io docker-compose docker-compose-v2 containerd runc. If such packages exist, follow the "Uninstall old versions" section of the official Docker guide for your system, linked below. The procedure that follows assumes a server without conflicts.
Install base packages
apt update && \
apt install ca-certificates curl -y && \
install -m 0755 -d /etc/apt/keyrings
Option A: Ubuntu 26.04, 24.04, or 22.04
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc && \
chmod a+r /etc/apt/keyrings/docker.asc && \
tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
Option B: Debian 13 or 12
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc && \
chmod a+r /etc/apt/keyrings/docker.asc && \
tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/debian
Suites: $(. /etc/os-release && echo "$VERSION_CODENAME")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
Install Docker on both systems and verify
apt update && \
apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y && \
systemctl enable --now docker && \
docker run --rm hello-world && \
docker compose versiondocker compose version shows the Compose plugin.Official sources: Docker on Ubuntu and Docker on Debian.
3. Deploying Restreamer with Compose
The container comes straight from the official datarhei project. This guide uses the multi-arch image datarhei/restreamer:latest, which Docker pulls to match your processor architecture.
See Restreamer at datarhei Download the ready-made Compose file
Download the prepared file straight into the install directory:
install -d -m 0755 /opt/restreamer/config /opt/restreamer/data && \
curl -fsSL --retry 3 https://irl4you.de/downloads/compose-restreamer.yaml -o /opt/restreamer/compose.yaml && \
chown root:root /opt/restreamer/compose.yaml && \
chmod 0644 /opt/restreamer/compose.yamlThe file uses the storage paths and ports documented by datarhei:
services:
restreamer:
image: datarhei/restreamer:latest
container_name: restreamer
restart: unless-stopped
ports:
- "8080:8080/tcp"
- "8181:8181/tcp"
- "1935:1935/tcp"
- "1936:1936/tcp"
- "6000:6000/udp"
volumes:
- /opt/restreamer/config:/core/config
- /opt/restreamer/data:/core/data/opt/restreamer/compose.yaml. The local UFW alone does not reliably limit ports published by Docker.Pull the container and start it:
cd /opt/restreamer && \
docker compose config && \
docker compose pull && \
docker compose up -d && \
docker compose psrestreamer service shows Up. The folders /opt/restreamer/config and /opt/restreamer/data are kept even when the container is recreated.privileged: true nor direct device access. Those rights are only needed for local USB cameras or certain GPU hardware, and should be added selectively only after the normal functional check.4. Ports and firewall
| Port | Protocol | Purpose | Open it? |
|---|---|---|---|
| 8080 | TCP | HTTP web interface | for setup, secure it later |
| 8181 | TCP | HTTPS web interface | if you use HTTPS |
| 1935 | TCP | RTMP | only for RTMP |
| 1936 | TCP | RTMPS | only for RTMPS |
| 6000 | UDP | SRT | only for SRT |
For SSH and other services directly on the host, you can use UFW. Before enabling it, check that the port shown really matches your current SSH connection; with several SSH ports you have to allow all the ports in use. Run the following block only once that is right:
SSH_PORT=$(/usr/sbin/sshd -T | awk '$1=="port" {print $2; exit}') && \
test -n "$SSH_PORT" && \
printf 'Erkannter SSH-Port: %s\n' "$SSH_PORT" && \
apt install ufw -y && \
ufw allow "${SSH_PORT}/tcp" && \
ufw default deny incoming && \
ufw default allow outgoing && \
ufw --force enable && \
ufw status verbose5. Setting up the web interface and first user
After starting, open this in your browser:
http://YOUR-SERVER-IP:8080/uiOn first launch, create your own admin account with a long, unique password. The wizard then walks you through video source, audio, and the publication you want. Do not use example passwords, and do not leave the admin interface publicly exposed without protection.
If something goes wrong, check the container:
cd /opt/restreamer && \
docker compose ps && \
docker compose logs --tail=1006. Setting up source and destination
- Create a new video source in the Restreamer web interface.
- Pick the right input protocol: RTMP, RTMPS, SRT, or another supported source.
- Copy the server address and stream key shown there into your phone app, encoder, or OBS.
- Check picture, audio, codec, and input bitrate in the preview.
- Under publication, create the destination you want and enter its server address and stream key.
- Start with a private test stream first and check picture, audio, and stability at the destination.
7. Security and HTTPS
- Pick a unique, hard-to-guess admin password and unique stream keys.
- Limit the admin interface to known IP addresses, a VPN, or an internal network where possible.
- Use HTTPS for public players and logins.
- Open only the streaming ports you need.
- Do not publish credentials in screenshots, videos, logs, or support chats.
For public operation, the official port forwarding typically calls for 80 → 8080 and 443 → 8181. Whether Restreamer's automatic certificate feature or your own reverse proxy makes more sense depends on your domain, router, and existing server setup.
8. Update, backup, and troubleshooting
Updating
cd /opt/restreamer && \
docker compose config && \
docker compose pull && \
docker compose up -dBack up configuration and data
tar -C / -czf /root/restreamer-backup-$(date +%F-%H%M%S).tar.gz \
opt/restreamer/config \
opt/restreamer/data \
opt/restreamer/compose.yamlWatch the live log
cd /opt/restreamer && \
docker compose logs -f --tail=200Leave the root shell
exitlatest tag makes updating easier, but it can also bring in a new program version. Back up the persistent folders and check inputs, publications, and players after the update.More details: the official datarhei website, the Restreamer Quick Start, and datarhei Restreamer on GitHub.
9. Video: installing Restreamer on a virtual machine
The video by Akinos01 "Akinos" shows the Restreamer installation on a virtual machine as a practical companion to this written guide. The video is in German.
Written alternative to the video: The steps for Docker, the Compose configuration, and starting and checking are right on this page.
10. FAQ
Is datarhei Restreamer the same as Restream.io?
No. This is about the open-source datarhei Restreamer project that you host yourself. The multistreaming service Restream.io is something different.
Which ports does Restreamer use by default?
8080 (HTTP web interface), 8181 (HTTPS web interface), 1935 (RTMP), 1936 (RTMPS), and 6000 UDP (SRT). Open only the ones you actually need. More under Ports and firewall.
Is UFW enough to secure the Docker ports?
Not necessarily. UFW may not apply to ports that a container publishes. Also block access in your server provider's firewall or at your router.
Do my settings survive an update?
The folders /opt/restreamer/config and /opt/restreamer/data are kept when you recreate the container. With the latest tag, though, a new program version can come in. So back up first anyway, see Update, backup, and troubleshooting.
When does Restreamer need a lot of CPU power?
When transcoding, that is, when resolution, codec, or bitrate are recalculated. If the input and output codecs already match, copying (remuxing) is enough. That takes much less CPU.
Thanks to the datarhei team
A heartfelt thank you goes to the developers and contributors of datarhei Restreamer. With the freely available open-source project, the official Docker image, and thorough documentation, they give the streaming community a capable solution for hosting and distributing live streams yourself.
This IRL4YOU guide is an independently written practical help, originally in German. It has no official connection to the datarhei project. Bug reports, source code, and contributions to the original project belong in the official Restreamer repository on GitHub.