Skip to main content
All settings are managed via the .env file. Copy .env.example to get started:
cp .env.example .env

Station

VariableDescriptionDefault
STATION_NAMEStation name used in stream metadata and alertsMy Radio Station
STATION_LOCATIONStation location shown in Icecast server infoYour Country
STATION_ADMIN_EMAILAdmin contact emailadmin@example.com

Icecast

VariableDescriptionDefault
ICECAST_SOURCE_PASSWORDPassword for Liquidsoap to Icecast connections
ICECAST_RELAY_PASSWORDPassword for Icecast relay connections
ICECAST_ADMIN_USERIcecast admin panel usernameadmin
ICECAST_ADMIN_PASSWORDIcecast admin panel password
ICECAST_HOSTNAMEPublic hostname for the stream serverstream.example.com
ICECAST_MAX_LISTENERSMaximum concurrent listeners500

Liquidsoap harbor

VariableDescriptionDefault
HARBOR_PRIMARY_PORTPort for primary studio input8010
HARBOR_FALLBACK_PORTPort for fallback studio input8011
HARBOR_PASSWORDPassword for studio to Liquidsoap connections

SSL

VariableDescriptionDefault
LETSENCRYPT_EMAILEmail for Let’s Encrypt notificationsadmin@example.com
LETSENCRYPT_STAGINGSet to 1 for test certificates0
Use staging certificates while testing to avoid hitting Let’s Encrypt rate limits.

Alerts

VariableDescriptionDefault
PUSHOVER_USER_KEYPushover user key for notifications
PUSHOVER_APP_TOKENPushover application token
SILENCE_THRESHOLD_DBSilence detection threshold in dB-40
SILENCE_DURATIONSeconds of silence before alerting15

Appwrite authentication

The status panel uses Appwrite for team-based authentication.
VariableDescriptionDefault
APPWRITE_ENDPOINTAppwrite API endpointhttps://cloud.appwrite.io/v1
APPWRITE_PROJECT_IDAppwrite project ID
APPWRITE_TEAM_IDAppwrite team ID (only members get panel access)

Status panel

VariableDescriptionDefault
STATUS_PANEL_CORS_ORIGINDashboard URL(s) for CORS, comma-separatedhttps://status.example.com
STATUS_PANEL_WRITE_ROLESAppwrite team roles allowed to manage emergency audioowner,admin
STATUS_PANEL_ALLOW_RISKY_COMMANDSEnable remote restart and SSL renewal commands0
Only enable STATUS_PANEL_ALLOW_RISKY_COMMANDS if you understand the security implications. This allows the dashboard to restart Docker containers and trigger SSL renewal remotely.

PostHog analytics

VariableDescriptionDefault
POSTHOG_API_KEYPostHog project API key (leave empty to disable)
POSTHOG_HOSTPostHog instance URLhttps://app.posthog.com
POSTHOG_POLL_INTERVALStats polling interval in seconds30
Leave POSTHOG_API_KEY empty to disable analytics entirely.