Comic-book karaoke queue manager. Guests join by QR code, the crowd votes, the host runs the night.
1.9K
?label=Discord&logo=discord&logoColor=white&color=5865F2)](https://discord.gg/M3wzFpGbzp)
Comic-book karaoke queue manager. Hosts spin up a room, guests scan a QR code and search for tracks, the crowd votes songs up the queue, and the host runs the night from a dedicated control booth.
/host/:code, drives the TV display at /display/:codeCreate a .env file at the project root:
SUPABASE_URL=
SUPABASE_PUBLISHABLE_KEY=
SUPABASE_DB_PASSWORD=
YOUTUBE_API_KEY=
npm install
npm run dev # starts on http://localhost:3000
Migrations live in supabase/migrations/ and are the source of truth. supabase/schema.sql is kept as a reference snapshot only.
Requires Docker and the Supabase CLI.
npm run db:start # boot local Supabase stack
npm run db:reset # apply migrations from scratch
npm run db:lint # lint schema for issues
npm run db:test # reset + lint in one step
npm run db:stop # tear down
npx supabase link --project-ref <your-project-ref> -p "$SUPABASE_DB_PASSWORD"
npm run db:push:remote
.github/workflows/supabase-db.yml — boots a local Supabase stack on every PR and main push, runs db reset + db lint.github/workflows/supabase-db-deploy.yml — pushes migrations to hosted Supabase on merge; requires repository secrets SUPABASE_ACCESS_TOKEN, SUPABASE_PROJECT_REF, SUPABASE_DB_PASSWORDnpm run build
npm run preview
The published image is getcoral/kapow:
docker run -p 3000:3000 \
-e SUPABASE_URL=https://your-project.supabase.co \
-e SUPABASE_PUBLISHABLE_KEY=your-key \
-e YOUTUBE_API_KEY=your-key \
getcoral/kapow:latest
Or build it yourself:
docker build -t kapow .
Published automatically to getcoral/kapow on Docker Hub on every release via GitHub Actions.
npm run lint # Biome lint
npm run format # Biome format
npm run check # Biome lint + format together
npm test # Vitest
| Route | Description |
|---|---|
/ | Landing — create or join a room |
/room/:code | Guest view — search songs, add to queue, vote |
/host/:code?token= | Host control booth — manage queue, advance songs |
/display/:code | TV display — now playing, full-screen comic mode |
Content type
Image
Digest
sha256:3ac09b1f0…
Size
125.9 MB
Last updated
16 days ago
docker pull getcoral/kapow