ScreamRouter is a whole home audio routing system
4.1K

ScreamRouter is a versatile audio routing and management system with a Python frontend/configuration layer and C++ backend, designed for network audio streaming. It enables flexible audio distribution across your network, supporting Scream and RTP audio sources, Scream receivers, and web-based MP3 streamers.
# Run with host networking (required for Multicast, Linux only)
docker run -d --network host \
-v ./config:/app/config \
-v ./logs:/app/logs \
-v ./cert:/app/cert \
--name screamrouter \
netham45/screamrouter:latest
# Access the web interface over https
# Run with port forwards (Multicast features won't work, compatible with Windows)
docker run -d \
-p 443:443 \
-p 16401:16401/udp \
-p 40001:40001/udp \
-p 4011-4020:4011-4020/udp \
-v ./config:/app/config \
-v ./logs:/app/logs \
-v ./cert:/app/cert \
--name screamrouter \
netham45/screamrouter:latest
/app/config: Configuration files (persistent)/app/logs: Application logs (persistent)/app/cert: SSL certificates (persistent, auto-generated on first run)On Linux and macOS, this container should use host networking mode for optimal audio streaming performance. This is required for proper functioning of multicast-based protocols like Scream.
On Windows, Docker's host networking has limitations. The port mapping approach works for basic functionality, but multicast-based features (like automatic Scream source discovery) won't work. For best results on Windows, use Docker with WSL2 backend.
Self-signed SSL certificates are automatically generated on first run if not found in the mounted certificate volume. To use your own certificates, place them in the cert volume as cert.pem and privkey.pem.
TZ: Set the timezone (default: UTC)API_PORT: HTTPS port for the web interface (default: 443)HTTP_PORT: HTTP port for the web interface (default: 80)API_HOST: Host the web interface binds to (default: 0.0.0.0)SCREAM_RECEIVER_PORT: Port to receive Scream audio data (default: 16401)RTP_RECEIVER_PORT: Port to receive RTP audio data (default: 40000)SINK_PORT: Base port for Scream Sink (default: 4010)LOGS_DIR: Directory where logs are stored (default: ./logs/)CERTIFICATE: Path to SSL certificate file (default: /root/screamrouter/cert/cert.pem)CERTIFICATE_KEY: Path to SSL private key file (default: /root/screamrouter/cert/privkey.pem)CONFIG_PATH: Path to the configuration file (default: config.yaml)EQUALIZER_CONFIG_PATH: Path to the equalizer configurations file (default: equalizers.yaml)CONSOLE_LOG_LEVEL: Log level for stdout (DEBUG, INFO, WARNING, ERROR) (default: DEBUG)LOG_TO_FILE: Whether logs are written to files (default: True)LOG_ENTRIES_TO_RETAIN: Number of previous runs to retain logs for (default: 2)SHOW_FFMPEG_OUTPUT: Show ffmpeg output in logs (default: False)DEBUG_MULTIPROCESSING: Enable multiprocessing debug output (default: False)TIMESHIFT_DURATION: Audio time-shifting buffer duration in seconds (default: 300)CONFIGURATION_RELOAD_TIMEOUT: Configuration reload timeout in seconds (default: 3)For more persistent setups, use Docker Compose as described in the GitHub repository.
Content type
Image
Digest
sha256:62c02cbbb…
Size
439.3 MB
Last updated
6 months ago
docker pull netham45/screamrouter:sha-4d3dc1f