1.2 KiB
1.2 KiB
Owncast–IRC Bridge: Brainstorm & Design Session
Date: 2026-03-10
Task
Design a bidirectional chat bridge between Owncast (https://owncast.bowlafterbowl.com) and IRC (irc.zeronode.net / #BowlAfterBowl).
Decisions Made
- Language: Rust
- Architecture: Tokio async runtime with concurrent tasks (IRC, Webhook, WebSocket, Health Poller, Router, Control Socket) communicating via mpsc channels
- Owncast ingest: Webhooks (primary) + WebSocket (fallback)
- Identity: Prefixed messages —
[IRC] <nick>/[OC] <user> - Extras: Stream start/stop announcements in IRC, auto-reconnect with exponential backoff
- Owncast lifecycle: Three-state model (Online, OfflineChatOpen, Unavailable) with health polling
- Runtime control: Unix domain socket +
bridge-ctlCLI tool - Deployment: Binary + Dockerfile (multi-stage)
Files Created
docs/plans/2026-03-10-owncast-irc-bridge-design.md— Full design documentdocs/plans/2026-03-10-owncast-irc-bridge-impl.md— 15-task implementation plan
Follow-up
- Open a new session and execute the implementation plan using
superpowers:executing-plansskill - Plan file:
docs/plans/2026-03-10-owncast-irc-bridge-impl.md