Back to Templates
Oryx logo

Oryx

v5.15.20

Oryx (formerly SRS Stack) is an all-in-one, open-source video streaming server with a web console. It ingests RTMP, WebRTC (WHIP) and SRT streams and plays them back over HLS, HTTP-FLV and WebRTC (WHEP), with built-in recording, forwarding, transcoding and virtual live streaming.

Deploy on Dokploy

Deploy Oryx on Dokploy

  1. Install Dokploy on your server if you haven't already.
  2. In your Dokploy panel, open a project and click Create Service → Template.
  3. Search for Oryx and click Create — Dokploy configures domains, environment variables, and volumes for you.

Alternatively, create a Compose service, go to Advanced → Import from Base64, and paste this payload:

base64
ewogICJjb21wb3NlIjogInZlcnNpb246IFwiMy44XCJcbnNlcnZpY2VzOlxuICBvcnl4OlxuICAgIGltYWdlOiBvc3Nycy9vcnl4OjUuMTUuMjBcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxuICAgIHBvcnRzOlxuICAgICAgIyBSVE1QLCBXZWJSVEMgYW5kIFNSVCBhcmUgbm90IEhUVFAgcHJvdG9jb2xzLCBzbyBUcmFlZmlrIGNhbm5vdCByb3V0ZVxuICAgICAgIyB0aGVtIHRocm91Z2ggdGhlIGRvbWFpbi4gVGhleSBtdXN0IGJlIHB1Ymxpc2hlZCBkaXJlY3RseSBvbiB0aGUgaG9zdFxuICAgICAgIyAoc2FtZSBhcHByb2FjaCBhcyB0aGUgcG9zdGUuaW8gdGVtcGxhdGUgd2l0aCBpdHMgbWFpbCBwb3J0cykuIFVzZSB0aGVcbiAgICAgICMgc2VydmVyIElQIChub3QgdGhlIGRvbWFpbikgZm9yIHRoZXNlIHByb3RvY29scy5cbiAgICAgIC0gXCIxOTM1OjE5MzVcIiAjIFJUTVAgaW5nZXN0L3BsYXliYWNrIChUQ1ApXG4gICAgICAtIFwiODAwMDo4MDAwL3VkcFwiICMgV2ViUlRDIG1lZGlhIHRyYW5zcG9ydCAoVURQKVxuICAgICAgLSBcIjEwMDgwOjEwMDgwL3VkcFwiICMgU1JUIGluZ2VzdC9wbGF5YmFjayAoVURQKVxuICAgIHZvbHVtZXM6XG4gICAgICAtIG9yeXgtZGF0YTovZGF0YVxuXG52b2x1bWVzOlxuICBvcnl4LWRhdGE6IHt9IiwKICAiY29uZmlnIjogIlt2YXJpYWJsZXNdXG5tYWluX2RvbWFpbiA9IFwiJHtkb21haW59XCJcblxuW2NvbmZpZ11cbltbY29uZmlnLmRvbWFpbnNdXVxuc2VydmljZU5hbWUgPSBcIm9yeXhcIlxucG9ydCA9IDIwMjJcbmhvc3QgPSBcIiR7bWFpbl9kb21haW59XCIiCn0=

Configuration

The exact Docker Compose and template configuration this template deploys.

Instructions

Oryx (SRS Stack)

Oryx is an all-in-one video streaming server built on SRS, with a web console for managing streams, recording, forwarding, transcoding and virtual live streaming.

First login

Open the domain assigned to this service. On the first visit Oryx asks you to create the admin password — set it right away, since anyone who reaches the page first can claim the instance. The password (and all other state) is stored in the oryx-data volume, so it survives restarts and upgrades.

Publishing streams

The web console (Scenarios > Streaming) shows ready-to-copy URLs that include your stream secret. The streaming protocols are not HTTP, so Traefik cannot route them through your domain — they are published directly on the server's host ports instead. Use the server IP address (not the domain) for these:

ProtocolURL formatHost port
RTMP (OBS, ffmpeg)rtmp://SERVER_IP/live/livestream?secret=xxx1935/tcp
SRTsrt://SERVER_IP:10080?streamid=#!::r=live/livestream,secret=xxx,m=publish10080/udp
WebRTC (WHIP)https://your-domain/rtc/v1/whip/?app=live&stream=livestream&secret=xxxsignaling via domain, media via 8000/udp

Make sure your server firewall / cloud security group allows 1935/tcp, 8000/udp and 10080/udp. Because these are fixed host ports, only one Oryx instance can run per server.

Playback

HTTP-based playback goes through your domain (HTTPS via Traefik):

  • HLS: https://your-domain/live/livestream.m3u8
  • HTTP-FLV: https://your-domain/live/livestream.flv
  • WebRTC (WHEP): available from the console's preview page; media flows over 8000/udp.

If WebRTC playback or publishing connects but produces no media, verify that UDP port 8000 is reachable from the client — WebRTC media bypasses the reverse proxy entirely.

Related Templates

Self-host Oryx in minutes

Dokploy is a free, open source deployment platform. Deploy Oryx and 499+ other templates on your own infrastructure with a single click.