Install
Three binaries and two plugins ship prebuilt:
| Package | Binary | What it does |
|---|---|---|
moq-relay | moq-relay | The relay server |
moq-cli | moq | The media router: publish, play, convert, gateways, and moq token |
moq-token-cli | moq-token | Standalone JWT tool; the same commands as moq token |
| GStreamer plugin | moqsink, moqsrc | GStreamer elements |
| OBS plugin | OBS Studio output and source |
Any platform
# crates.io (needs a Rust toolchain)
cargo install moq-relay moq-cli moq-token-cli
# Homebrew (macOS and Linux)
brew install moq-dev/tap/moq-relay moq-dev/tap/moq-cli
# Nix (pin a release tag to use the binary cache)
nix run github:moq-dev/moq#moq-relay -- relay.toml
nix run github:moq-dev/moq#moq-cli -- --help
# Docker (linux/amd64 and linux/arm64)
docker run -p 4443:4443/udp -p 4443:4443/tcp -v "$PWD/relay.toml:/app/relay.toml:ro" moqdev/moq-relay /app/relay.toml
docker run -i moqdev/moq-cli --helpStatic binaries for Linux (x86_64, aarch64), macOS (Apple Silicon), and Windows (x64) are attached to every GitHub release. The Nix cache at kixelated.cachix.org only holds tagged releases, so an unpinned github:moq-dev/moq builds from source.
Debian and Ubuntu
Debian 12+ and Ubuntu 22.04+. The GStreamer plugin needs GStreamer 1.22, so it is available on Debian 12+ and Ubuntu 24.04+.
curl -fsSL https://apt.moq.dev/moq-keyring.gpg | sudo tee /usr/share/keyrings/moq-keyring.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/moq-keyring.gpg] https://apt.moq.dev stable main" | sudo tee /etc/apt/sources.list.d/moq.list
sudo apt update
sudo apt install moq-relay moq-cli moq-token-cli gstreamer1.0-moqFedora, RHEL, and openSUSE
Fedora 39+, RHEL 9, Rocky 9, AlmaLinux 9. On openSUSE use zypper addrepo.
sudo dnf config-manager --add-repo https://rpm.moq.dev/moq.repo
sudo dnf install moq-relay moq-cli moq-token-cli gstreamer1-moqBoth repositories are signed with the project key, served at https://apt.moq.dev/moq-keyring.gpg and https://rpm.moq.dev/moq-keyring.gpg.
Running the relay as a service
The Linux packages install a systemd unit and a default config at /etc/moq-relay/relay.toml. Put the certificate, key, and JWK under /var/lib/moq-relay/, then:
sudo systemctl enable --now moq-relay
sudo journalctl -u moq-relay -fThe service runs as a dynamic user with CAP_NET_BIND_SERVICE, so port 443 works without root, and config edits survive upgrades.
Windows
winget install moq-dev.moq-relay
winget install moq-dev.moq-cli
winget install moq-dev.moq-token-cliThe OBS plugin ships as a zip for Windows x64 and macOS arm64 on the obs-moq releases; see OBS. To build the repository itself on Windows, see Development.
Other
- Arch Linux: a community-maintained
moq-relay-binPKGBUILD lives in the AUR. - Air-gapped hosts: use the release binaries. They link glibc 2.34+, so Alpine and other musl distributions should use the Docker image or build from source.
- From source:
cargo build --release -p moq-relay(or-p moq-cli) in a checkout.