Flint est une plateforme SaaS permettant de gérer et orchestrer plusieurs bots Discord depuis une seule infrastructure scalable.
Elle repose sur une architecture multi-tenant, sécurisée et conçue pour supporter une montée en charge horizontale.
Au lieu de :
❌ 1 bot = 1 container
Flint utilise :
✅ 1 bot manager = N bots dynamiques
/apps
web → Dashboard Next.js (UI SaaS)
api → Backend (OAuth2 Discord + JWT + API multi-tenant)
bot → Bot manager (runtime multi-bots Discord)
/packages
shared → Types, crypto, Redis helpers
/database
migrations → Schéma PostgreSQL versionné- Frontend : Next.js (App Router) + TailwindCSS
- Backend : Node.js + Express
- Bot runtime : Discord.js multi-instances
- DB : PostgreSQL 16
- Queue : Redis + BullMQ
- Infra : Docker Compose
-
OAuth2 Discord login
-
JWT httpOnly session
-
API multi-tenant complète
-
Gestion des bots :
- create / start / stop / restart
-
Chiffrement AES-256-GCM des tokens Discord
-
Rate limiting par tenant
-
Queue de contrôle via BullMQ
- Un seul service pour tous les bots
- Gestion dynamique :
Map<botId, DiscordClient>-
Worker Redis (BullMQ) :
- start bot
- stop bot
- restart bot
-
Reconnexion automatique
-
Logs runtime en base
Dashboard SaaS :
- Login Discord OAuth
- Liste des bots du tenant
- Création de bot via token
- Contrôle runtime (start / stop / restart)
- Interface multi-langue (i18n)
Tables principales :
tenantsusersbotsbot_runtime_events
- Isolation totale via
tenant_id - Tokens Discord chiffrés (AES-256-GCM)
- Logs séparés par tenant
- 🔒 Tokens bot jamais stockés en clair
- 🍪 JWT en cookie httpOnly
- 🧱 Isolation complète multi-tenant
- ⚡ Rate limiting par tenant
- 🧩 Redis namespaced
- 🚫 Aucun bot exposé individuellement
Services :
webapibotpostgresredis
👉 Important : Aucun container par bot → tout est centralisé
git clone https://github.com/ArthurP-fr/Flint.git
cd Flintcp .env.example .envopenssl rand -base64 32npm installdocker compose up -d --build- 🌐 Web : http://localhost:3000
- ⚙️ API : http://localhost:4000/health
GET /auth/discord/loginGET /auth/discord/callbackPOST /auth/logoutGET /api/me
GET /api/botsPOST /api/botsPOST /api/bots/:botId/startPOST /api/bots/:botId/stopPOST /api/bots/:botId/restart
Flint est conçu pour être scalable horizontalement :
- API → scalable horizontal
- Bot manager → scalable avec Redis coordination
- PostgreSQL → recommandé managé
- Redis → central queue system
👉 Un seul bot service peut gérer des centaines de bots Discord
Flint vise à devenir une plateforme type :
“Discord Bot as a Service”
avec une architecture proche d’un SaaS moderne (Vercel / Stripe style backend design).
- Multi-tenant natif
- Runtime dynamique de bots
- Sécurité forte (chiffrement + isolation)
- Queue distribuée (BullMQ + Redis)
- Architecture scalable dès le départ


