▮ Getting started

Run from source

For development, or if you'd rather build it yourself. You'll run the Rust API and the SvelteKit web UI together.

1 · Install dependencies

Rust and Node via your preferred toolchain managers:

# Rust — https://rustup.rs
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# Node.js 20+
nvm install 20 && nvm use 20

And ffmpeg, which the media engine shells out to:

# macOS
brew install ffmpeg

# Ubuntu / Debian
sudo apt-get update && sudo apt-get install -y ffmpeg
No GStreamer required. Muxshed uses ffmpeg plus a custom Rust RTMP relay — RTMP fan-out is forwarded, not re-encoded.

2 · Clone and run

git clone https://github.com/muxshed/muxshed
cd muxshed/system
./dev.sh

dev.sh builds and starts the API on :8080 and the web UI on its dev port. The API serves RTMP ingest on :1935 and SRT on :9000.

3 · First-time setup

  1. Open the web UI and create your admin account.
  2. Copy the API key shown — it's only displayed once.
  3. Go to Sources, copy the OBS URL + stream key, and start pushing.
  4. Hit Go Live — you can broadcast to your watch page with zero external destinations.

Tests

# Rust API integration tests
cargo test --workspace

# Frontend type-check + build
cd web && npm run check && npm run build