Bastien LUBEN

Voir le projet

NuageBleu

Un bot discord permettant d'écouter de la musique, simplement

Technologies

TypescriptJavascriptSQLSvelteTailwind CSSMariaDBPostgreSQLMongoDBNode.jsDockerGitLinux

Méthodes

OOP, Self-learning

De février 2023 à janvier 2026

NuageBleu est un bot Discord permettant d'écouter de la musique en communauté, simplement.
J'ai développé ce projet de février 2023 à janvier 2026, en tant que co-fondateur, gérant également une grande partie de l'infrastructure derrière le bot.

Le bot a connu 3 versions successives :

  • NuageBotV1 : JavaScript, DisTube (YouTube, Spotify, Deezer, SoundCloud), MongoDB & MariaDB
  • NuageBotV2 : réécrite après la V1, devenue difficile à maintenir (pas de typage forcé, erreurs aléatoires imprévisibles). TypeScript, Lavalink (magmastream), Prisma/MySQL, génération de playlists par IA (Mistral)
  • NuageBleuNext : réécrite à son tour car certaines fonctionnalités devenaient trop compliquées à implémenter sur l'architecture de la V2. Architecture orientée objet, sharding discord.js, PostgreSQL, vraies playlists utilisateur, monétisation Discord native, API HTTP + WebSocket temps réel

Le site web (SvelteKit + Tailwind/DaisyUI) servait de vitrine et de tableau de bord :

  • Connexion OAuth2 Discord, gestion de session par token en base, et un dashboard ouvrant une connexion WebSocket directe vers le bot pour afficher la musique en cours et la file d'attente en temps réel, tout en relayant les actions de contrôle (play/pause/skip/volume...) vers l'API interne du bot
  • Une page profil avec les statistiques d'écoute personnelles, une offre premium adossée à la monétisation Discord, et un panel d'administration (liste des serveurs, statistiques agrégées avec Chart.js, gestion des accès premium, kill switch)

Le reste de l'écosystème :

  • Toute l'infrastructure hébergée chez WinHeberg, d'abord via une offre mutualisée (bot sur Pterodactyl + serveur web basique), puis migrée vers un VPS avec Docker et un reverse proxy Traefik (en partie calqué sur mon homelab), avec une stack Prometheus/Grafana pour la supervision
  • Un prototype d'architecture de cluster distribué basé sur MQTT (NuageBleuManager), pensé pour coordonner plusieurs instances du bot sur différentes machines au-delà du sharding mono-machine

Ce projet m'a permis d'apprendre énormément sur le développement Discord, les architectures orientées objet, la persistance de données et l'administration de l'infrastructure en production. Après près de 3 ans, j'ai quitté le projet suite à un désaccord avec mon co-fondateur, et pour me consacrer à d'autres projets.