FAQ¶
Général¶
Octavius est-il open source ?¶
Le code est privé pour l'instant. Une partie sera publiée en open source après le lancement public (cog par cog).
Quelles langues sont supportées ?¶
Français à 100% (commandes, embeds, docs, support). L'IA Gemini répond dans la langue du message utilisateur. EN/ES en préparation (Phase 3.B.12).
Combien de serveurs Octavius gère-t-il ?¶
Octavius est sharded automatiquement (Phase 1.2). Un seul process gère jusqu'à ~25 000 serveurs, et on peut déployer plusieurs process en parallèle au-delà.
Le bot peut-il fonctionner sans Postgres / Redis ?¶
Oui, mode dégradé : les fichiers JSON locaux servent de fallback. Aucune feature n'est cassée, juste pas de cache distribué ni de migration PG. Le système est conçu pour démarrer en mono-fichier puis scaler.
Tarifs¶
Pourquoi 4 plans au lieu de 2 ?¶
Pour matcher la taille de ta communauté sans payer pour ce que tu n'utilises pas. Un petit serveur perso n'a pas besoin du multi-bot music ni du voice TTS — Bronze suffit. Une grosse communauté gaming veut tout — Gold est fait pour ça.
Le Free est-il vraiment gratuit à vie ?¶
Oui. Aucune carte requise, aucune limite de temps. Tu peux utiliser Octavius gratuitement éternellement.
Quand sera dispo le paiement Stripe ?¶
Phase 4.2 du plan de dev. Pour l'instant tous les serveurs sont en Free par défaut. L'équipe peut grant manuellement un plan supérieur sur demande (early adopters, beta testers).
Lifetime Gold, c'est rentable ?¶
89,99 € one-shot = ~9 mois de Gold. Si tu prévois d'utiliser Octavius plus longtemps que ça, c'est rentable. Bonus : le badge « Founder » exclusif et garanti à vie.
Sécurité¶
Tenant isolation¶
Octavius est un bot multi-tenant par construction. Toutes les data
sont stockées per-guild_id, et 11 tests pytest régressifs valident
qu'aucune route API ne peut leak des données cross-guild. Voir
Phase 2.1 dans instructions_archive.md.
RGPD¶
Conformité totale aux articles 15 (accès), 17 (effacement) et
20 (portabilité). Tape /mydata dans Discord. Voir doc RGPD.
Mes messages IA sont-ils stockés ?¶
Oui, uniquement pour la mémoire conversationnelle (10 à 75 messages
selon le plan). Chiffrement Fernet AES-128 au repos. Reset auto
après 30 min d'inactivité. Tu peux effacer ta mémoire à tout moment via
/memory reset.
Les mots password, token, secret, bearer, api_key sont
automatiquement filtrés avant stockage (substitués par [redacted]).
Sentry et logs¶
Si SENTRY_DSN est configuré, les exceptions sont envoyées à Sentry pour
debug. send_default_pii=False (Sentry strippe les IPs/headers).
Logs structurés JSON disponibles via LOG_FORMAT=json pour ingestion
Loki/ELK/CloudWatch.
Technique¶
Pile technique¶
- Python 3.12 +
discord.py 2.7 - FastAPI pour l'API dashboard
- PostgreSQL 16 (asyncpg)
- Redis 7 (cache + IPC, en cours d'intégration)
- Gemini 2.5 Flash (Google AI Studio)
- ffmpeg +
yt-dlppour la musique - Sentry + Prometheus /metrics
Docker¶
Octavius tourne dans 4 containers Docker :
octavius-bot, octavius-api, octavius-postgres, octavius-redis.
Lavalink (5ème container) ajouté quand on active la multi-music (--profile music).
Voir CLAUDE.md pour le setup local complet.
Comment contribuer ?¶
Reach-out sur le serveur de support. On accepte les PRs sur certaines parties open source (cogs musique, i18n, presets de rôles).
Tenant Isolation¶
Tous les endpoints API qui prennent un guild_id en path vérifient :
- Que le token JWT du caller a bien
gid == guild_id, OU - Que le caller est
is_dev(l'équipe Octavius, identifiée parDEV_USER_IDenv)
Sinon → HTTP 403.
Pour les ressources avec un ID unique-global (ex: ticket_id, snapshot_id), on vérifie en plus que la ressource appartient à la guild active.
Test pytest régressif tests/test_tenant_isolation.py (11 tests) :
- Filesystem isolation (transcripts par guild_id)
- SQL queries leveling avec WHERE guild_id = $1
- Routes API avec check token gid
- Rate-limit /auth/switch-guild (anti-énumération)