SETUP · 02
The easy way in.
Two hands-off paths to a running stack. The wizard asks a few questions and does the rest. The agent skill does the same from one sentence in your AI coding tool. Either way, the radio ends up on the air.
PATH A · STANDALONE CLI
One curl, two Enters, on the air.
Drops a subwave binary on your host (no Node required), then chains straight into init and start. By the time the installer finishes, Docker is up and the controller reports on-air. That leaves setup, which handles configuration rather than lifecycle.
TWO COMMANDS
curl -fsSL https://cli.getsubwave.com | shsubwave setupThe installer prompts Run subwave init now? Say yes and init asks where to install (default ~/subwave), deployment shape (prod / prod-byo), and admin credentials. It ends with Bring the stack up now? Say yes again and subwave start runs silently against the env init just picked. After that, setup asks for your Navidrome, LLM, and DJ persona settings and renders jingles. From then on, subwave start / stop / logs / doctor run the station from anywhere on your shell.
DEV
docker-compose.dev.yml- state in
./state - optionally launches
next devon:7700
PRODUCTION
docker-compose.ymlwith--build- Caddy on
:7700 - state in
./state(orSTATE_DIR); re-run with sudo if it isn't writable
Existing env values stay put unless you ask to reconfigure, so the wizard also works for bringing an existing stack back up.
PATH B · AI CODING AGENT
One sentence in your coding agent.
The repo ships an agent skill that handles setup, deploy, and update. It pings Navidrome and Ollama, boots the stack, generates jingles, and checks that the stream is on-air. It works with Claude Code, Codex, Cursor, or anything else that reads AGENTS.md.
Clone the repo and open your agent in it:
git clone https://github.com/perminder-klair/subwave.git
cd subwaveThen ask your agent one of: “set up subwave”, “deploy subwave”, or “pull and restart”.
On updates the same skill works out which services actually changed and rebuilds only those. Liquidsoap and the Controller COPY their source at build time, so a plain docker compose restart quietly runs stale code. The skill won't make that mistake.
ONCE IT'S ON THE AIR
Run the station from the CLI.
The setup wizard is one screen of the operator console. Run npm start from the repo any time to open it. From the menu you can check the stack, run diagnostics, tail logs, restart a service, or open the web player and admin.
npm start