[PR #1027] feat: add Oryx (SRS) media streaming template #16335

Open
opened 2026-07-14 23:19:38 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/Dokploy/templates/pull/1027
Author: @Siumauricio
Created: 7/14/2026
Status: 🔄 Open

Base: canaryHead: feat/oryx


📝 Commits (1)

  • af8b535 feat: add Oryx (SRS) media streaming template

📊 Changes

5 files changed (+129 additions, -0 deletions)

View changed files

blueprints/oryx/docker-compose.yml (+18 -0)
blueprints/oryx/instructions.md (+29 -0)
blueprints/oryx/logo.svg (+52 -0)
blueprints/oryx/meta.json (+22 -0)
blueprints/oryx/template.toml (+8 -0)

📄 Description

Summary

Adds a template for Oryx (formerly SRS Stack), an all-in-one open-source video streaming server built on SRS, with a web console for managing streams, recording, forwarding, transcoding and virtual live streaming.

  • Image: ossrs/oryx:5.15.20 (latest stable release on Docker Hub)
  • Web console (port 2022) is routed through the Traefik domain
  • State persisted in the oryx-data volume (/data)
  • instructions.md covers the first-login password setup and the RTMP/SRT/WebRTC publish URLs

Port decision

RTMP, SRT and WebRTC are not HTTP protocols, so Traefik cannot route them through the domain. Following the precedent set by the poste.io template (which publishes its mail ports the same way), the streaming ports are published directly on the host, with a comment in the compose file explaining why:

  • 1935:1935 — RTMP ingest/playback (TCP)
  • 8000:8000/udp — WebRTC media transport (UDP)
  • 10080:10080/udp — SRT ingest/playback (UDP)

Users publish streams against the server IP on these ports; HLS/HTTP-FLV playback and the console go through the HTTPS domain. This is documented in instructions.md.

Test evidence

Deployed on a Dokploy instance from this exact blueprint:

  • Deploy: done (123s), container running
  • GET / via the assigned domain → HTTP 200, <title>Oryx</title> (management console)
  • GET /terraform/v1/mgmt/init{"code":0,"data":{"init":false}} (first-run admin setup ready)
  • Host port check: nc -vz SERVER_IP 1935 → connection succeeded (RTMP reachable)
  • node build-scripts/generate-meta.js --check → 481 templates validated

Closes #300

🤖 Generated with Claude Code


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/Dokploy/templates/pull/1027 **Author:** [@Siumauricio](https://github.com/Siumauricio) **Created:** 7/14/2026 **Status:** 🔄 Open **Base:** `canary` ← **Head:** `feat/oryx` --- ### 📝 Commits (1) - [`af8b535`](https://github.com/Dokploy/templates/commit/af8b535d34fd030f576dc7cf15dad8f03afdbed7) feat: add Oryx (SRS) media streaming template ### 📊 Changes **5 files changed** (+129 additions, -0 deletions) <details> <summary>View changed files</summary> ➕ `blueprints/oryx/docker-compose.yml` (+18 -0) ➕ `blueprints/oryx/instructions.md` (+29 -0) ➕ `blueprints/oryx/logo.svg` (+52 -0) ➕ `blueprints/oryx/meta.json` (+22 -0) ➕ `blueprints/oryx/template.toml` (+8 -0) </details> ### 📄 Description ## Summary Adds a template for [Oryx](https://github.com/ossrs/oryx) (formerly SRS Stack), an all-in-one open-source video streaming server built on SRS, with a web console for managing streams, recording, forwarding, transcoding and virtual live streaming. - Image: `ossrs/oryx:5.15.20` (latest stable release on Docker Hub) - Web console (port 2022) is routed through the Traefik domain - State persisted in the `oryx-data` volume (`/data`) - `instructions.md` covers the first-login password setup and the RTMP/SRT/WebRTC publish URLs ## Port decision RTMP, SRT and WebRTC are not HTTP protocols, so Traefik cannot route them through the domain. Following the precedent set by the `poste.io` template (which publishes its mail ports the same way), the streaming ports are published directly on the host, with a comment in the compose file explaining why: - `1935:1935` — RTMP ingest/playback (TCP) - `8000:8000/udp` — WebRTC media transport (UDP) - `10080:10080/udp` — SRT ingest/playback (UDP) Users publish streams against the server IP on these ports; HLS/HTTP-FLV playback and the console go through the HTTPS domain. This is documented in `instructions.md`. ## Test evidence Deployed on a Dokploy instance from this exact blueprint: - Deploy: `done` (123s), container running - `GET /` via the assigned domain → **HTTP 200**, `<title>Oryx</title>` (management console) - `GET /terraform/v1/mgmt/init` → `{"code":0,"data":{"init":false}}` (first-run admin setup ready) - Host port check: `nc -vz SERVER_IP 1935` → connection succeeded (RTMP reachable) - `node build-scripts/generate-meta.js --check` → 481 templates validated Closes #300 🤖 Generated with [Claude Code](https://claude.com/claude-code) --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-07-14 23:19:38 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/templates#16335