MoQ is under active development. APIs will change, but we keep backwards wire compatibility.

Skip to content

Install ​

Two binaries and two plugins ship prebuilt:

PackageBinaryWhat it does
moq-relaymoq-relayThe relay server
moqmoqThe media router: publish, play, convert, gateways, and moq auth
GStreamer pluginmoqsink, moqsrcGStreamer elements
OBS pluginOBS Studio output and source

Package names match the executables everywhere except crates.io, where the crate is moq-cli. Existing Homebrew installs migrate through formula renames; apt upgrades use transitional packages, and dnf replaces the old packages. The moqdev/moq-cli Docker image and the #moq-cli flake package stop at 0.12.2 and now exit with an error naming moqdev/moq and #moq.

Use moq auth for keys and tokens; installing moq includes it.

macOS and Linux ​

The quickest way to install moq:

bash
curl -fsSL https://moq.sh | sh

It installs the newest moq release into ~/.local/bin, without sudo or Rust, on macOS (Apple Silicon) and Linux (x86_64, aarch64, glibc 2.34+). It checks the download against the release's SHA256SUMS and never edits your shell profile; it prints the PATH line to add if needed. Run it again to upgrade. Pass options after sh -s --:

bash
# A specific version, e.g. to pin or downgrade
curl -fsSL https://moq.sh | sh -s -- --version 0.14.0

# Another directory, required when HOME is unset
curl -fsSL https://moq.sh | sh -s -- --dir ~/bin

It refuses to overwrite a moq that a package manager symlinked, so upgrade that one with its package manager. To uninstall, delete the binary: rm ~/.local/bin/moq. moq-relay and the plugins use the methods below.

Any platform ​

bash
# crates.io (needs a Rust toolchain)
cargo install moq-relay moq-cli

# Homebrew (macOS and Linux)
brew install moq-dev/tap/moq-relay moq-dev/tap/moq

# Nix (`release` builds from source; a release tag such as moq-relay-v0.12.4 uses the binary cache)
nix run github:moq-dev/moq/release#moq-relay -- relay.toml
nix run github:moq-dev/moq/release#moq -- --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 --help

Static 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 the release branch 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+.

bash
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 gstreamer1.0-moq

Fedora, RHEL, and openSUSE ​

Fedora 39+, RHEL 9, Rocky 9, AlmaLinux 9. On openSUSE use zypper addrepo.

bash
sudo curl -fsSL https://rpm.moq.dev/moq.repo -o /etc/yum.repos.d/moq.repo
sudo dnf install moq-relay moq gstreamer1-moq

Both 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:

bash
sudo systemctl enable --now moq-relay
sudo journalctl -u moq-relay -f

The service runs as a dynamic user with CAP_NET_BIND_SERVICE, so port 443 works without root, and config edits survive upgrades.

Windows ​

powershell
winget install moq-dev.moq-relay
winget install moq-dev.moq

The 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-bin PKGBUILD 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.

Licensed under MIT or Apache-2.0