Quickstart
Zero to live channel in about 30 minutes.
Make sure you've finished Prerequisites first. You need a Cloudflare account, GetStream API key + secret, Twitch dev app credentials, and Bun installed.
This is the speed run. Each section links to the long-form guide for context.
Clone + install
git clone https://github.com/MrDemonWolf/howlcast.git
cd howlcast
bun installProvision Cloudflare resources
bun run deployThis runs Alchemy (packages/infra/alchemy.run.ts) which creates the D1 database, two R2 buckets, the KV namespace, and both Workers in your Cloudflare account in one shot. Re-running is idempotent.
See Cloudflare setup for details.
Set secrets
cp apps/server/.env.example apps/server/.env
# fill in: STREAM_API_KEY, STREAM_API_SECRET, BETTER_AUTH_SECRET,
# TWITCH_CLIENT_ID, TWITCH_CLIENT_SECRET, RESEND_API_KEY, MAIL_FROM
bun run deploySee Secrets for the full list.
Run the setup wizard
Open https://tv.<your-domain> (or the *.workers.dev fallback URL printed by deploy). The first-run wizard is locked to whoever hits it first — that becomes the broadcaster. Enter your Twitch user ID, pick a display name, set a password.
See First-run wizard.
Configure GetStream webhook
In the GetStream dashboard, set the Video webhook URL to:
https://tv-api.<your-account>.workers.dev/api/webhooks/getstreamSubscribe to: call.live_started, call.session_started, call.session_ended, call.ended, call.session_participant_joined, call.session_participant_left. Same URL for the Chat webhook subscribed to message.new.
See GetStream.
Go live
In your dashboard at /dashboard:
- Click Set up your stream (one time)
- Copy the RTMPS URL + stream key into OBS → Settings → Stream → Service "Custom"
- Click Start Streaming in OBS
- Click Go live in the dashboard
The channel page flips to LIVE. Discord webhooks fire. Stats record the session.
See Going live.
That's it. You now have a live HowlCast.