System Requirements
Server Hardware
Section titled “Server Hardware”| Component | Minimum | Recommended |
|---|---|---|
| CPU | 2 cores | 4+ cores |
| RAM | 2 GB | 4 GB |
| Disk | 10 GB | 50 GB+ (for audio recordings and uploads) |
| Network | 10 Mbps up | 100 Mbps+ (for multiple simultaneous streams) |
A single Liquidsoap station at 192 kbps MP3 output uses approximately:
- 50–150 MB RAM
- 0.1–0.3 CPU cores
- ~200 kbps upstream bandwidth per listener
For hardware sizing by station count, see Scaling.
Software Requirements
Section titled “Software Requirements”| Requirement | Version |
|---|---|
| Docker | 24.0 or later |
| Docker Compose | v2.20 or later |
| OS (host) | Linux (Ubuntu 22.04 / Debian 12 / Fedora 38 recommended) |
macOS and Windows Docker Desktop are supported for local development but not recommended for production deployments.
Supported Architectures
Section titled “Supported Architectures”| Architecture | Support |
|---|---|
linux/amd64 (x86_64) | Full support |
linux/arm64 (ARM64) | Full support (AWS Graviton, Oracle Ampere, Raspberry Pi 4+) |
Network Ports
Section titled “Network Ports”Open the following ports in your firewall:
| Port | Protocol | Service | Required |
|---|---|---|---|
8000 | TCP | br\u016bhi API + web dashboard | Yes |
8005 | TCP | Icecast streaming server | Yes (for listeners) |
8100 | TCP | Station 1 harbor (HTTP ingest) | Yes (for DJ live input) |
8101 | TCP | Station 2 harbor | If using 2+ stations |
8102+ | TCP | Additional station harbors | Per additional station |
80 / 443 | TCP | Reverse proxy (nginx/Caddy) | Recommended for production |
Browser Requirements (for DJs)
Section titled “Browser Requirements (for DJs)”DJs access the web dashboard in a browser. Requirements:
| Browser | Version |
|---|---|
| Chrome / Chromium | 100+ |
| Firefox | 100+ |
| Safari | 16+ |
| Edge | 100+ |
Required browser capabilities:
- WebRTC (
getUserMedia,RTCPeerConnection) — for live microphone ingest - Web Audio API (
AudioContext,setSinkId) — for PFL monitoring and output device selection navigator.mediaDevices.enumerateDevices()— for microphone and speaker device selection
GStreamer (Internal)
Section titled “GStreamer (Internal)”GStreamer is included in the Docker image. No separate GStreamer installation is needed on the host. The image includes the following GStreamer plugins:
gstreamer1.0-plugins-good— RTP, multipart, audio convertgstreamer1.0-plugins-bad— WebRTC, SRTgstreamer1.0-plugins-ugly— MP3, AACpython3-gst-1.0— Python GStreamer bindings
Liquidsoap (Internal)
Section titled “Liquidsoap (Internal)”Liquidsoap is included in the Docker image (version pinned in the Dockerfile). No separate Liquidsoap installation is needed.