🇺🇸 English • 🇪🇸 Español • 🇨🇳 中文 • 🇮🇹 Italiano • 🇩🇪 Deutsch • 🇷🇺 Русский • 🇫🇷 Français • 🇵🇹 Português • 🇯🇵 日本語 • 🇵🇱 Polski • 🇰🇷 한국어 • 🇹🇷 Türkçe • 🇳🇱 Nederlands • 🇨🇿 Čeština • 🇹🇼 繁體中文 • 🇧🇷 Português (BR) • 🇮🇩 Bahasa Indonesia • 🇷🇴 Română • 🇸🇪 Svenska • 🇩🇰 Dansk • 🇳🇴 Norsk • 🇫🇮 Suomi • 🇬🇷 Ελληνικά • 🇭🇺 Magyar • 🇺🇦 Українська • 🇻🇳 Tiếng Việt • 🇵🇭 Tagalog • 🇹🇭 ไทย • 🇮🇳 हिन्दी • 🇧🇩 বাংলা
A web UI for MediaMTX. Watch streams, browse recordings, and edit config from your browser.
Images are published for both linux/amd64 and linux/arm64 (Raspberry Pi, Apple Silicon, etc.) — Docker pulls the right one automatically.
Already running MediaMTX? Add Connect alongside it:
docker run -d \
-p 3000:3000 \
-e BACKEND_SERVER_MEDIAMTX_URL=http://<your-mediamtx-host> \
-v /path/to/recordings:/recordings \
-v mediamtx-connect-data:/data \
bcanfield/mediamtx-connect:latestBACKEND_SERVER_MEDIAMTX_URL is where Connect reaches MediaMTX's API from inside its container. It defaults to http://mediamtx, which only resolves on the bundled compose network — for a standalone docker run set it to your MediaMTX host (you can also change it later under Config).
No MediaMTX yet? The bundled compose starts both:
git clone https://github.com/bcanfield/mediamtx-connect.git
cd mediamtx-connect
docker compose up -dOpen http://localhost:3000, head to Config, and point it at your MediaMTX.
Connect needs
api: yesin yourmediamtx.yml. See the included one for a working reference.
Everything is configurable at runtime under Config. These env vars only seed the first boot:
| Variable | Default | Purpose |
|---|---|---|
BACKEND_SERVER_MEDIAMTX_URL |
http://mediamtx |
MediaMTX API host, reachable from Connect's container |
MEDIAMTX_API_PORT |
9997 |
MediaMTX API port |
MEDIAMTX_RECORDINGS_DIR |
./recordings |
Host path mounted for recordings (compose only; optional — defaults if unset) |
MEDIAMTX_SCREENSHOTS_DIR |
/screenshots |
Where generated screenshots are stored |
Architecture · Features · Contributing
MIT
