Aller au contenu

Dashboard web

Le dashboard Octavius est une application web FastAPI + HTML/JS qui te permet de gérer ton serveur Discord sans avoir à taper les commandes manuellement.

Connexion

L'authentification se fait uniquement via OAuth Discord (Phase 4.1) :

  1. Ouvre dashboard.octaviusfr.com (ou http://127.0.0.1:8000/ en local pour les dev)
  2. Clique sur « Se connecter avec Discord »
  3. Autorise Octavius à lire ta liste de serveurs
  4. Sélectionne le serveur que tu veux gérer (tu dois avoir la permission Manage Server)

Fin du login par mot de passe

Depuis Phase 4.1, la connexion par mot de passe a été supprimée. Les commandes !setdashpass / !cleardashpass retournent un message de dépréciation. Plus simple et plus sûr.

Sections

🏠 Tableau de bord

Stats live du serveur :

  • Membres totaux, actifs 24h/7j
  • Messages, XP, tickets, custom commands
  • Reaction-roles, snapshots, level-roles configurés
  • Alertes de config manquante (type de serveur, salons, rôles)

💬 Communication

Sous-onglets :

  • Chat IA — historique des conversations avec Octavius
  • Annonces — envoyer des annonces dans DISCORD_ANNOUNCE_CHANNEL_ID
  • Tickets — vue de tous les tickets (dev) ou les tiens (client)
  • Messagerie support — chat avec l'équipe Octavius

🛡️ Modération

Sous-onglets :

  • Sanctions — historique audit log + filtres
  • Salons — config des salons (LOG, SECURITY_LOG, etc.)
  • Commande salon — déclencher une action depuis un salon (ban, kick, clear)
  • Anti-spam — config PROTECT_* (limites, window)

🎭 Membres & Rôles

  • Liste membres avec rôles + activité
  • Mapping rôles (Fondateur/Admin/Staff/Membre)
  • Auto-rôles au join
  • Boutons & menus rôles (visuel)
  • Presets thématiques (langages, frameworks, platforms, gaming, fivem, etc.)

⚙️ Configuration

Sous-onglets :

  • Identité — nom, type, description, ton
  • Salons — mapper tous les salons utiles
  • Welcome — image de bienvenue, titre, message
  • Règlement — éditer le règlement custom
  • Setup tickets — choisir le salon panel
  • Type serveur — dev / gaming / fivem_rp / etc.

📊 Logs & Audit

  • Logs bot (modération, sécurité)
  • Stats par jour
  • Graphs analytics (Silver+)

API publique

Toutes les actions du dashboard passent par l'API FastAPI (api_central.py). Les routes principales :

Route Méthode Description
/auth/discord/start GET Initie OAuth Discord
/auth/discord/callback GET Callback OAuth
/auth/me GET Token actuel + is_dev
/auth/me/guilds GET Mes serveurs avec MANAGE_GUILD
/auth/switch-guild POST Re-émet un token sur une autre guild
/discord/guilds/{id}/snapshot GET Snapshot live channels+roles
/discord/guilds/{id}/config GET / PATCH Config per-guild
/messages/tickets GET Liste tickets
/messages/tickets/{id} GET Détail ticket
/messages/tickets/{id}/reply POST Répondre
/messages/tickets/{id}/transcript GET Download HTML
/ai/chat POST Chat IA
/ai/image POST Génération image
/translate POST Traduction
/announce POST Annonce serveur
/discord/action POST Action distante (kick, ban, etc.)
/metrics GET Métriques Prometheus

Tenant isolation auditée (Phase 2.1), tous les endpoints {guild_id} vérifient token["gid"] == guild_id ou is_dev.

Multi-serveurs

Le dashboard permet de switcher entre tes serveurs depuis le sélecteur en haut. Chaque switch ré-émet un token JWT scopé sur la nouvelle guild, sans avoir à re-OAuth.

Sécurité

  • Toutes les routes derrière Bearer token JWT (HMAC-SHA256)
  • Rate-limits par endpoint (login, switch-guild, IA, etc.)
  • CORS strict (whitelisted dans ALLOWED_ORIGINS)
  • Headers de sécurité (SecurityMiddleware)
  • 11 tests cross-tenant régressifs en CI