Documentation
Nobex Streaming Agent
The streaming agent is a desktop application (macOS, Windows, Linux) that runs your station from your own computer: it plays your media library 24/7, accepts live input from DJ software, and stays connected to your Nobex dashboard.
1. Overview
The agent uses Liquidsoap as its audio engine. Liquidsoap accepts a live stream from your DJ software, falls back to automated playlists when no live source is connected, and pushes the resulting stream to your station’s mount — with no gaps during the switch.
DJ software (Mixxx / Virtual DJ / BUTT)
│ connects to localhost:8001/live
▼
Nobex Streaming Agent ── Liquidsoap engine
• live input (priority)
• auto playlist (fallback)
│ streams to your station mount
▼
Your listenersWhen to use the agent: you want 24/7 automation from your own machine, use a hardware mixer or external soundcard, or need advanced audio processing. If you just want to get on air with zero installs, use Broadcast from Browser on your station’s Connection page instead.
2. Download & install
Windows
- Download NobexStreamer for Windows and unzip it into a folder of your choice, e.g.
C:\NobexStreamer. - Double-click
NobexStreamer.exe. If SmartScreen warns you, click More info → Run anyway, and allow the app through the firewall when Windows asks.
macOS
- Download NobexStreamer for macOS (Intel & Apple Silicon), unzip, and drag
NobexStreamer.appto Applications. - First launch: right-click the app → Open.
Linux
Build from source (Go 1.21+): go build ./cmd/nobex-streamer — or contact support for a prebuilt binary for your distribution.
The agent also needs Liquidsoap on the same machine (next section). Without it the agent still starts, but it can’t stream.
3. Installing Liquidsoap
Windows — no terminal needed
- Download Liquidsoap 2.2.5 for Windows and FFmpeg (FFmpeg is only needed for microphone broadcasting from the agent).
- Unzip both into the same folder as
NobexStreamer.exe— the agent finds them automatically.
macOS
Paste this into Terminal (one time only):
brew install liquidsoap
Linux
# Debian / Ubuntu sudo apt install liquidsoap # Fedora / RHEL sudo dnf install liquidsoap
Any Liquidsoap 2.1+ works — the agent’s generated configuration is validated against 2.1, 2.2, and 2.3. (Advanced: the Docker image savonet/liquidsoap works too — set liquidsoap_binary in the config.)
4. First-time setup
- In your dashboard, open your station’s Connection → From Your Computer tab and generate an API key and secret from the credentials panel. The secret is shown once — keep the window open.
- Open the NobexStreamer app. The setup window appears on first launch (later: gear icon → Settings). The API endpoint is already filled in (
https://streaming-api.nobexpartners.com). - Paste in your Station ID (shown on the Connection page) and the API key and secret from step 1, then save.
- Press Start. Your station’s dashboard shows the agent as online within about 30 seconds and your library starts playing 24/7.
5. Configuration reference
Settings are stored in ~/.nobex-streamer/config.json. The wizard writes this for you; edit it only if you need to change ports or paths. Connection credentials live in named profiles, so one install can switch between stations:
{
"active_profile": "Default",
"profiles": [
{
"name": "Default",
"api_endpoint": "https://streaming-api.nobexpartners.com",
"station_id": "your-station-id",
"api_key": "nbx_...",
"api_secret": "..."
}
],
"media_cache_dir": "~/.nobex-streamer/media",
"log_dir": "~/.nobex-streamer/logs",
"liquidsoap_binary": "liquidsoap",
"liquidsoap_port": 8001,
"heartbeat_interval": 30
}liquidsoap_port— the local port DJ software connects to (default8001). Change it if something else uses that port.liquidsoap_binary— path or command for Liquidsoap; set todockerwhen using the Docker image.media_cache_dir— where synced media from your library is stored.heartbeat_interval— seconds between status reports to the dashboard.
Restart the agent (or use Reload Engine from the dashboard) after editing the file.
6. Going live from DJ software
While the agent is running, Liquidsoap listens for a live source on your machine. Point any Icecast-compatible DJ software at it — when you connect, the live feed takes over; when you disconnect, playback falls back to your automated playlist with no dead air.
localhost8001 (your liquidsoap_port)/liveWhere to enter these
- Mixxx — Preferences → Live Broadcasting
- Virtual DJ — Config → Broadcasting
- BUTT — Settings → Main → Server settings (server type: Icecast)
7. Running 24/7 as a service
macOS — no terminal needed
System Settings → General → Login Items → add NobexStreamer.app. The agent starts with your Mac, lives in the menu bar, and reconnects automatically.
Linux (systemd)
Create /etc/systemd/system/nobex-streamer.service:
[Unit] Description=NobexStreamer Agent After=network.target [Service] Type=simple User=streamer ExecStart=/usr/local/bin/nobex-streamer Restart=always [Install] WantedBy=multi-user.target
sudo systemctl enable --now nobex-streamer
Windows (NSSM)
nssm install NobexStreamer "C:\NobexStreamer\NobexStreamer.exe" nssm start NobexStreamer
Simpler alternative on any desktop machine: add the app to your login items / startup apps — it runs in the tray and reconnects automatically.
8. Command line reference
The app opens its GUI by default — you never need the command line for normal use. Flags for advanced setups:
NobexStreamer [flags] --config <path> Configuration file (default: ~/.nobex-streamer/config.json) --setup Re-run the setup wizard --version Show version information
9. Troubleshooting
“liquidsoap binary not found”
Liquidsoap isn’t installed or isn’t on your PATH. Install it (section 3) or set liquidsoap_binary in the config to its full path.
Agent can’t connect to the backend
- Check the API endpoint in your config matches the one shown above.
- Verify your API key and secret are still valid — regenerating credentials in the dashboard invalidates old ones.
- Check your firewall allows outbound HTTPS and WebSocket connections.
DJ software can’t connect
- Make sure the agent is running and Liquidsoap started (check the logs below).
- The password must be your API secret, not the API key.
- Confirm the port isn’t blocked:
nc -zv localhost 8001 - If port 8001 is taken by another app, change
liquidsoap_portand update your DJ software to match.
Logs
Agent and engine logs live in ~/.nobex-streamer/logs/. To follow the engine log in real time:
tail -f ~/.nobex-streamer/logs/liquidsoap.log
GUI won’t start
- macOS — make sure you’re on a local session (not SSH); check Console.app for errors.
- Windows — run from PowerShell or Command Prompt, not WSL.
- Linux — the GUI needs a desktop session (X11/Wayland); it won’t start over plain SSH.
~/.nobex-streamer/logs/liquidsoap.log.