oryx is a free, open source digital asset management (dam) project written in Go and released under MIT. It has 881 GitHub stars, 158 forks and 49 open issues, and was last pushed 4 days ago. On this registry it ranks #19 of 25 tracked projects in Digital Asset Management (DAM), with 5 head-to-head comparisons available.

What is oryx?

Oryx (SRS Stack) is an AI-driven, all-in-one, out-of-the-box, open-source video solution for creating online video services such as live streaming and WebRTC, in the cloud or through self-hosting, aimed at developers and operators who need to run those services themselves.

What it is

Oryx, renamed from SRS Stack, is a media solution built with Go, React.js, SRS, FFmpeg, and WebRTC, with Redis included, and it integrates OpenAI services. It supports RTMP, WebRTC, HLS, HTTP-FLV, and SRT, and offers authentication, streaming to multiple platforms, recording, transcoding, virtual live events, automatic HTTPS, and an HTTP Open API. It lives in the Content and Publishing / Digital Asset Management category, is written in Go, carries the MIT licence, and ships as the Docker image ossrs/oryx:5.

The concrete problem is assembling and operating a complete media server stack. Instead of combining SRS, FFmpeg, Redis, nginx, Let's Encrypt tooling, and WebRTC plumbing by hand, an operator runs one container that bundles those parts and exposes a browser-based management interface. The rename note says the new name exists so AI assistants can distinguish SRS from SRS Stack, which shows the project is the packaged, out-of-the-box layer above the SRS media server rather than a replacement for SRS itself.

Key capabilities

  • Ingests and delivers live video over RTMP, WebRTC, HLS, HTTP-FLV, and SRT from one deployment.
  • Publishes WebRTC WHIP streams from a browser; localhost and 127.0.0.1 are unsupported, so a private IP, public IP, or domain is required.
  • Provisions automatic HTTPS through Let's Encrypt, using the .well-known and lego directories for the ACME challenge.
  • Records streams into dvr and record directories and supports transcoding.
  • Runs virtual live events from the vlive directory and saves transcription files in the transcript directory.
  • Streams to multiple platforms, enforces authentication, and exposes an HTTP Open API.
  • Configures through environment variables such as MGMT_PASSWORD for the management password and REACT_APP_LOCALE for UI language, with en or zh values.

Who uses it and how

  • Self-hosting developers and small teams run the single Docker container on their own cloud or on-premises host and mount /data as the global data directory so state survives restarts.
  • Live operators use multi-protocol ingest: TCP 1935 for RTMP publishers, UDP 10080 for SRT, and UDP 8000 for WebRTC media such as RTP packets.
  • Teams in China pull registry.cn-hangzhou.aliyuncs.com/ossrs/oryx:5 to accelerate the Docker pull and ensure the proper language is set.
  • Bilingual teams switch the management UI between English and Chinese with REACT_APP_LOCALE.
  • Deployments that keep media in object storage mount S3-compatible storage through the srs-s3-bucket directory.

Getting started

Oryx runs as one Docker container: start ossrs/oryx:5 with the /data volume mounted and the ports mapped, then open http://localhost in a browser. The README example maps TCP 80, 443, and 1935 and UDP 8000 and 10080.

How it compares

The provided facts do not list paid products that Oryx replaces, and they name no directly comparable all-in-one video solution. Within this registry, Oryx stands alone.

When to use it — and when not to

A self-hoster must operate the container, persist the /data volume, expose TCP 80, 443, and 1935 plus UDP 8000 and 10080, and manage configuration for SRS, Redis, nginx, Prometheus, and Let's Encrypt files. It is a poor fit for teams that want a fully managed service or cannot provide a public IP or domain, because browser WebRTC WHIP will not work over localhost or 127.0.0.1. The README excerpt also gives no guidance on capacity, high availability, or upgrades, and data is lost on container restart if the /data volume is not mounted.

project readme (upstream, from github) — read inline

ORYX

Oryx(SRS Stack), is an all-in-one, out-of-the-box, and open-source video solution for creating online video services, including live streaming and WebRTC, on the cloud or through self-hosting.

Note: We renamed the project from SRS Stack to Oryx, because we only need a new name for AI assistant to identify SRS and SRS Stack. AI assistant is confused with SRS and SRS Stack.

Oryx makes it easy for you to create an online video service. It is made using Go, Reactjs, SRS, FFmpeg, and WebRTC. It supports protocols like RTMP, WebRTC, HLS, HTTP-FLV, and SRT. It offers features like authentication, streaming on multiple platforms, recording, transcoding, virtual live events, automatic HTTPS, and an easy-to-use HTTP Open API.

Oryx is built on SRS, FFmpeg, React.js, and Go, with Redis included, and integrates OpenAI services. It is a media solution designed for various useful scenarios.

Note: For more details on the Oryx, please visit the following link.

Usage

Run Oryx in one docker, then open http://localhost in browser:

docker run --restart always -d -it --name oryx -v $HOME/data:/data \
  -p 80:2022 -p 443:2443 -p 1935:1935 -p 8000:8000/udp -p 10080:10080/udp \
  ossrs/oryx:5

Important: Remember to mount the /data volume to avoid losing data when the container restarts. For instance, if you mount /data to $HOME/data, all data will be stored in the $HOME/data folder. Be sure to modify this according to your desired directory.

Important: To use WebRTC WHIP in a browser, avoid using localhost or 127.0.0.1. Instead, use a private IP (e.g., https://192.168.3.85), a public IP (e.g., https://136.12.117.13), or a domain (e.g., https://your-domain.com). To set up HTTPS, refer to this post.

Note: In China, use registry.cn-hangzhou.aliyuncs.com/ossrs/oryx:5 to accelerate the Docker pull process and ensure the proper language is set.

The ports used for Oryx:

  • 80/tcp: The HTTP port, you can also use 2022 instead, such as -p 2022:2022 etc.
  • 443/tcp: The HTTPS port, you can also use 2443 instead, such as -p 2443:2443 etc.
  • 1935/tcp: The RTMP port, to support publish stream by RTMP to Oryx.
  • 8000/udp: The WebRTC UDP port, to transport WebRTC media data like RTP packets.
  • 10080/udp: The SRT UDP port, to support publish stream via SRT protocol.

You have the option to modify the volumes for Oryx and direct them to different directories.

  • /data The global data directory.
    • .well-known The directory for Let's Encrypt ACME challenge.
    • config The .env for password, srs/redis/nginx/prometheus config, and SSL files.
    • dvr The dvr storage directory, save dvr files.
    • lego The LEGO Let's Encrypt ACME challenge directory.
    • record The record storage directory, save record files.
    • redis The redis data directory, the publish secret and record configuration.
    • signals The signals storage directory, save signal files.
    • upload The upload storage directory, save upload files.
    • vlive The storage directory for virtual live, save video files.
    • transcript The storage directory for transcription, save transcription files.
    • nginx-cache The storage directory for nginx cache, save cache files.
    • srs-s3-bucket The mount directory for AWS S3 compatible storage.

You can use environment variables to modify the settings.

  • MGMT_PASSWORD: The mgmt administrator password.
  • REACT_APP_LOCALE: The i18n config for ui, en or zh, default to en.

Note: The MGMT_PASSWORD is also saved in /data/config/.env, you can modify it by yourself.

To access additional environment variables, please refer to the Environments section.

Sponsor

Would you like additional assistance from us? By becoming a sponsor or backer of SRS, we can provide you with the support you need:

  • Backer: $5 per month, online text chat support through Discord.
  • Sponsor: $100 per month, online meeting support, 1 meeting per month in 1 hour.

Please visit OpenCollective to become a backer or sponsor, and send us a direct message on Discord. We are currently providing support to the developers listed below:

We at SRS aim to establish a non-profit, open-source community that assists developers worldwide in creating your own high-quality streaming and RTC platforms to support your businesses.

FAQ

  1. English FAQ
  2. 中文 FAQ

Tutorials

readme truncated — read the full docs on github

Frequently asked questions

Is oryx free to use?

oryx is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does oryx do?

Oryx (SRS Stack) is an AI-driven, all-in-one, out-of-the-box, and open-source video solution for creating online video services, including live streaming and We

What is oryx written in?

oryx is primarily written in Go. Its source is publicly available at https://github.com/ossrs/oryx, and it has 881 GitHub stars.