subwave-deploy

Deploy and update the SUB/WAVE radio stack with Docker rebuilds and audio validation.

1.2k|104|Updated May 11, 2026
One-click install
npx skills add https://github.com/perminder-klair/subwave --skill subwave-deploy
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: subwave-deploy
Source: https://github.com/perminder-klair/subwave/tree/main/.claude/skills/subwave-deploy
Command: npx skills add https://github.com/perminder-klair/subwave --skill subwave-deploy

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires bash, docker, git, curl, jq, ffmpeg, and includes scripts (resource) components.

What problem does it solve?

Automates setting up, deploying, and safely updating the SUB/WAVE internet radio stack while verifying it is truly broadcasting audio rather than silently failing.

Core Features & Use Cases

  • Fresh bootstrap with credentials seeding: runs the project setup flow, seeds operator-facing config, and boots the stack for first-time installs.
  • Change-aware updates: pulls the latest code and rebuilds/recreates only the Docker services affected by changed paths, avoiding common “restart without rebuild” mistakes.
  • Audio-level verification: confirms /api/health and /api/now-playing and also measures stream audio level from /stream.mp3 to detect the “on-air but silent” Liquidsoap wedge; includes log scanning for recent errors.

Use case: after pulling a commit that changes liquidsoap/radio.liq or controller/web code, run the deploy workflow to rebuild the correct services, bring the station back up, and ensure the stream actually carries sound.

Quick Start

Run the subwave-deploy skill to pull and redeploy the SUB/WAVE stack in your current repo and confirm it is live by checking container health, API endpoints, and non-silent audio from the stream.

Frequently Asked Questions about subwave-deploy

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I deploy a Docker Compose internet radio stack and verify it is actually broadcasting audio?

To deploy an internet radio stack with Docker Compose and verify audio, you need a workflow that rebuilds changed services and probes the stream endpoint for actual audio levels. This detects silent failures where APIs report healthy but no sound is broadcasting.

Why does my Liquidsoap Icecast stream show healthy but play no sound after a Docker rebuild?

A Liquidsoap Icecast stream can show healthy but play no sound when Docker services are restarted without rebuilding changed code. Audio-level verification using an ffmpeg mean_volume probe on the stream detects this silent failure that standard health checks miss.

How do I update Docker Compose services without rebuilding the entire stack?

To update Docker Compose services without full rebuilds, map changed file paths to specific services and recreate only those containers. This minimizes churn during routine updates by targeting rebuilds to affected components rather than restarting everything.

Do I need ffmpeg and jq installed to automate internet radio deployment and health checks?

Yes, ffmpeg and jq are required dependencies for radio deployment and health checks. ffmpeg probes stream audio levels to detect silent broadcasts, while jq parses JSON API responses from health and now-playing endpoints during validation.

What's the best way to bootstrap a fresh internet radio install with Docker and Bash?

The best way to bootstrap a fresh internet radio install is using an idempotent Bash setup script that seeds configuration, pulls code, and starts Docker services. This ensures consistent first-boot deployments across fresh installs and routine updates.

How does ffmpeg audio probe detection work for verifying a live radio stream?

An ffmpeg audio probe measures the mean_volume of a live radio stream URL to verify audio is actually playing. This catches the Liquidsoap wedge where the stream connects and APIs report healthy but no audio is being broadcast to listeners.