For the operator running the station. The admin console is where you shape the DJ, choose the AI providers, schedule shows, and watch how the station is behaving, all without a redeploy.
SIGNING IN
The admin console.
The console lives at /admin. It's gated by a single sign-in: the ADMIN_USER and ADMIN_PASS set when the station was installed. In production those credentials are mandatory: the station won't start without them, because the admin surface reveals too much to leave open. Signing in lands you on the Dash.
THE LAYOUT
Three groups of views.
The console's pages are grouped by what they're for:
Monitor — Dash. The command centre: what's on air right now, with a way to step into the autonomous DJ and steer it directly.
Programming — Library, Shows, Personas, Skills, Imaging, Moods. Everything that shapes what the station plays and who it sounds like.
System — Stats, Connect, Settings, Debug. How the station is behaving under the hood, the ways to plug other tools into it, the engine-room settings, and a live diagnostic view.
PROGRAMMING
Shaping the station.
Everything in this group is saved durably and applies live. No redeploy, and most changes land on the next thing the DJ does.
Library — search the music library and check how well it's been mood-tagged. The tagger labels tracks with a mood so the DJ can pick by feel; this is where you watch its progress. Two doorways open from here: the Playlist Builder, where you generate a set from a vibe prompt and tuning, then save it for the DJ and shows to draw on, and the Library Observatory, a visual map of everything the station has heard.
Shows — a show is a reusable definition: a name, a topic, a persona, a mood. Paint shows onto a weekly grid hour by hour; an empty hour means the station runs autonomously for that hour.
Personas — the roster of DJ identities, one to ten. Each has a name and character, a voice, a script length and a talk frequency, plus the skills it's allowed to use. One persona is active at a time (though a scheduled show can override which), and a single prompt template is shared by all of them.
Skills — the real-world segments the autonomous DJ can run: weather, news, now-playing digs, facts, web search. Toggle each on or off station-wide.
Imaging — the sounds the DJ drops between and over the music. Three tabs: Jingles (the short station idents rotated between tracks, plus how often one plays), SFX (stingers mixed under the DJ's voice mid-break), and Beds (instrumentals the DJ talks over when a link runs long). Render each through the configured voice or a text-to-sound prompt, or import your own audio; new files are picked up automatically.
Moods — the station's mood vocabulary and how the autonomous DJ reaches for it. Four tabs: Vocabulary (the moods every track is tagged with, each with an optional sound description for audio tagging), Moments (which mood each part of the day and each weather condition leans into), Festivals (the calendar that nudges the mood on the day), and Speech (pronunciation fixes applied to every spoken line). Edit the vocabulary and every show, festival, and auto-DJ pick draws from it.
SETTINGS
The engine room.
The Settings page collects the lower-level controls as a stack of panels down the left rail. The ones you'll reach for most:
Station — the name, locale, timezone, and the weather location the DJ reads from.
LLM provider — which model writes the DJ's words and picks tracks, plus the toggles that tune the station to that model. See Models & Tokens.
TTS voice — which text-to-speech engine and voice the DJ speaks with, optionally a different one per kind of segment. The engines (local and cloud) are covered in How the DJ Works.
Library tagger — the embedding provider and mood-propagation settings behind the mood tags, plus where you kick off a tagging run.
Web search — the live-facts backend the skills draw on (DuckDuckGo, Tavily, or a self-hosted SearXNG).
Skin & themes — the player's default face (skin) and the station-wide colour palette. Covered in Skins & Themes.
Likes — the listener heart button: whether it shows, whether a like stars the track in Navidrome, and whether recent likes nudge what the DJ plays.
Scrobbling, Archives & Backup — scrobble plays to Last.fm / ListenBrainz, record the broadcast to hourly files, and export or restore the whole station's config.
Danger zone — the broadcast controls that bite: crossfade length, max track length, loudness levelling, the optional Opus / FLAC / AAC stream mounts, and the buttons that stop the stream or restart the mixer.
MIX CHANGES NEED A MIXER RESTART
Crossfade and jingle-ratio changes are read by the audio mixer only at startup. The Danger zone can trigger that restart for you: the stream drops for a few seconds and comes back with the new values applied.
WHEN SOMETHING'S OFF
Stats & debug.
Stats reports how the station is performing: AI usage and latency, and how often it's had to fall back to a backup engine. Debug is a live snapshot for diagnosing trouble: recent AI calls, the mixer's status, and the most recent log lines. It's the first place to look if the stream stalls or the DJ goes quiet.
Installing or updating the station rather than tuning it? That's covered in the setup guide.