Démarrer
Démarrer
Mise en place développeur
Vue d'ensemble de l'architecture et notes d'installation locale pour les contributeurs d'ItsBagelBot.
Sur cette page
Vous configurez le bot sur votre chaîne ? Suivez plutôt le guide pour streamers. Cette page s’adresse aux contributeurs.
Bienvenue dans ItsBagelBot, un écosystème cloud natif et performant pour Twitch.
Ce guide présente les concepts et les étapes nécessaires pour lancer l’environnement local de développement.
Vue d’ensemble de l’architecture
ItsBagelBot utilise une architecture de microservices découplés :
- Services backend : propulsés par Go et Elixir (l’ingress Twitch).
- Architecture événementielle : NATS JetStream transporte les événements et le request-reply NATS transporte les RPC entre services.
- Communication temps réel : les événements Twitch arrivent par des shards WebSocket EventSub. Les webhooks d’achat Tebex sont le seul webhook entrant et arrivent sur le service transactions.
- Applications web :
- Tableau de bord et Admin : applications SvelteKit dans
web/dashboardetweb/admin, servies par le cluster. - Marketing et Docs : applications Astro dans
web/marketingetweb/docs.
- Tableau de bord et Admin : applications SvelteKit dans
- Infrastructure : fonctionne sur k3s avec Cilium, des politiques réseau de refus par défaut, Cloudflare Tunnel pour l’entrée publique et Tailscale pour l’accès des opérateurs.
Voir la vue d’ensemble du système et CONTEXT-MAP.md à la racine du dépôt pour la responsabilité de chaque service.
Prérequis
- Go 1.26.5 (
go.mod). - Bun 1.4.4 (
packageManagerdansweb/package.json). - Elixir 1.17 ou plus récent, uniquement pour l’ingress Twitch (
app/twitch/ingress/mix.exs).
Installation locale
Services Go, depuis la racine du dépôt :
go test ./...
Applications web, depuis web/ :
bun install --frozen-lockfile
bun run dev:dashboard
bun run dev:admin
bun run check
bun run test
Documentation, depuis web/docs/ :
bun run dev
Ingress Twitch, depuis app/twitch/ingress/ :
mix deps.get
mix test
Le fichier context.md de chaque application liste ses vérifications ciblées.