
Version 2.1 : admin-freedom
Un outil puissant que vous contrôlez, une philosophie que nous défendons.
Chez Nodyx, nous croyons que la liberté technique va de pair avec la responsabilité. Héberger sa propre communauté, c’est merveilleux, mais cela soulève aussi des questions légitimes : comment modérer sans censurer ? Comment automatiser sans imposer ? Comment se protéger sans enfermer ses membres ?
Aujourd’hui, nous levons le voile sur OctoGuard, notre nouveau système natif de modération automatique. Baptisé ainsi en hommage à la pieuvre, créature intelligente, flexible et dotée d’un bouclier ,OctoGuard est votre allié, pas votre gardien.
🧭 Une boussole, pas une loi
La particularité d’OctoGuard ? Il n’impose aucune politique de contenu par défaut.
Par défaut, OctoGuard est désactivé. Votre instance continue de fonctionner comme avant.
C’est vous, admin, qui décidez quelles règles activer, quels comportements sanctionner, et à quel degré.
OctoGuard est une surcouche à l’infrastructure de modération existante de Nodyx (bans, logs, rate-limits). Il ne réinvente pas la roue : il l’équipe de pneus neige, de GPS et d’un klaxon optionnel.
Nous appelons cela l’architecture éthique à deux niveaux :
Niveau instance : liberté totale. Vous êtes maître à bord, avec les responsabilités légales que cela implique (LCEN, DSA…).
Niveau annuaire : le réseau Nodyx se réserve le droit de ne pas référencer les instances qui hébergent des contenus inhumains. Cette décision appartient à l’annuaire, pas au code d’OctoGuard.
Le projet Nodyx (AGPL-3.0) fournit des outils. Leur usage relève de votre seule responsabilité. Nous plaidons pour un web humain et sain , mais nous refusons de l’imposer par le code.

🔧 Ce qu’OctoGuard va vous permettre de faire (quand vous l’activerez)
OctoGuard est découpé en modules indépendants, déployables en moins de deux semaines. Voici un aperçu de ce qui vous attend dès la Phase 1.
1. Auto-modération paramétrable
Créez vos propres règles à base de :
Regex (expressions régulières)
Caps lock excessif
Triages de domaines (liste blanche ou noire)
Spam de mentions ou de liens
Pour chaque règle, choisissez l’action :
delete: supprime le message silencieusementwarn: avertit l’utilisateur + enregistre un « avertissement »mute: l’empêche d’écrire pendant une durée que vous définissez (ex:1h,3d)ban_temp: bannissement temporaire (réutilise le système decommunity_bans)notify_only: vous alerte (log + webhook) sans toucher à l’utilisateurreport_only: mode « dry-run » pour tester une règle sans action réelle
Escalade automatique : après 3 warns en 7 jours → mute 1h, etc. Vous fixez les seuils.
2. Welcome personnalisé
À l’arrivée d’un nouveau membre :
Message public dans un salon de votre choix
Message privé système (avec badge
[Système]) optionnelAttribution automatique d’un grade
Variables disponibles : {user}, {userMention}, {communityName}, {rulesUrl}.
3. Commandes custom
Créez vos propres commandes !regles, !bienvenue, !carte, etc.
Réponse en markdown (pas d’embed, pour rester léger)
Cooldown paramétrable
Canal ou rôle autorisé
4. Mute / timeout (enfin !)
Jusqu’ici, Nodyx ne permettait pas de restreindre la parole d’un membre sans le bannir. OctoGuard ajoute une table chat_mutes :
Mute global (tous les salons) ou par canal
Durée libre (
15m,2h,1w, permanent)Purge automatique des expirations
5. Système de reports (signalements)
Un membre peut signaler un message ou un utilisateur.
Formulaire rapide (catégorie + raison)
Page inbox admin : traitez les reports, mutez, supprimez, ou classez sans suite
Anti-abuse paramétrable : limite de reports par heure, cooldown par cible
6. Logs unifiés & UNDO
Toutes les actions d’OctoGuard sont inscrites dans la table admin_audit_log existante. Chaque événement porte un event_id unique.
Undo possible : vous pouvez annuler une suppression ou un mute depuis l’interface.
Filtrage par type d’action, utilisateur, date.
7. Webhook sortant (optionnel)
Recevez chaque action de modération en temps réel sur votre outil préféré (Slack, Discord, serveur HTTP perso). Signature HMAC-SHA256 pour sécuriser la liaison.
⚡ Performances et fiabilité
Nous avons construit OctoGuard avec deux exigences non-négociables :
Ne jamais bloquer le chat. Le pipeline de modération est limité à 50 ms. Au-delà, le système est court-circuité (fail‑open) : le message passe, seul un avertissement est loggé.
ReDoS protection renforcée. Les expressions régulières sont exécutées via
re2(moteur à temps linéaire, sans risque d’attaque par déni de service). Sur les architectures exotiques, un fallback avecsafe-regexfiltre les patterns catastrophiques.
Benchmark cible : p95 < 5ms par message sur une machine standard. Nous fournirons un script de benchmark pour que vous puissiez tester votre propre instance.
🧩 Un système éthique, même dans les détails
Le filtre de symboles haineux
Nodyx intègre depuis toujours un filtre bloquant les symboles nazis (swastika, runes SS). Ce filtre est activé par défaut mais vous pouvez le désactiver en admin. Une modale explicite vous rappellera les risques légaux (en France, apologie de crime contre l’humanité est punie par la loi). Un clic, et c’est votre responsabilité. Pas de blocage, pas de jugement. Juste de l’information.
L’anti-flood
Il existe déjà dans Nodyx sous la forme d’un rate‑limiter Socket.IO (5 messages / 3s, 15 / 15s). OctoGuard n’en recrée pas un : il se contente d’ajouter une couche contenu par‑dessus. Pas de doublon, pas de confusion.
Durées libres
Pas de menus déroulants imposant 15m, 1h, 1j. Vous tapez 45m, 3d, 2w , c’est accepté. Parce que la modération n’a pas à être rigide.
🛡️ Âge et contenus sensibles : une autre voie est possible
L’Europe commence à durcir le ton sur les contenus réservés aux adultes. Certaines plateformes vous demanderont bientôt une carte d’identité, une reconnaissance faciale, ou la transmission de données sensibles à des tiers. Chez Nodyx, nous refusons cette logique.
Nous ne voulons pas de base de données biométriques, pas de selfie à l’appui, pas de document d’identité scanné. Parce que la vie privée n’est pas négociable, et parce que l’auto-hébergement doit rester un sanctuaire.
Mais comment protéger les mineurs sans violer leurs droits ? La réponse ne viendra pas d’une injonction légale aveugle, mais d’outils techniques choisis par l’admin.
🧠 L’approche OctoGuard pour le NSFW
Nous allons intégrer un module complémentaire (désactivable par défaut) permettant de :
Détecter automatiquement les médias sensibles (images, vidéos, fichiers) à l’aide de modèles locaux légers (ex :
nsfw-detectorou CLIP exécutés en local, sans appel externe).Flouter / masquer le contenu avec un clic pour révélation (« click to reveal »).
Laisser l’utilisateur s’auto-déclarer majeur (une simple case à cocher, aucune preuve stockée). L’admin peut choisir de faire confiance ou d’ajouter une validation manuelle pour les cas douteux.
Proposer un filtrage par communauté : un canal
#nsfwpeut être restreint aux membres ayant coché « +18 » dans leurs préférences.
Aucune donnée biométrique. Aucune transmission à l’État ou à un prestataire externe. Juste des algorithmes locaux, libres, et une responsabilité assumée par l’admin.
🔁 Et la loi ?
Nous ne contournons pas la loi, nous l’interprétons avec bon sens. Le Digital Services Act (DSA) exige des « mesures appropriées » pour protéger les mineurs, pas des solutions précises. Un admin qui active le floutage automatique + auto-déclaration se conforme déjà raisonnablement à l’esprit du texte, sans tomber dans la surveillance de masse.
Si la régulation évolue vers une obligation de vérification d’âge infaillible, alors le problème deviendra politique, pas technique. Nodyx s’opposera toujours à l’imposition d’une identité numérique centralisée. Mais en attendant, nous donnons des alternatives concrètes : filtrage local, auto-attestation, et modération humaine.
En clair : vous pourrez, si vous le souhaitez, rendre votre instance « friendly » pour les mineurs sans avoir à exiger leur pièce d’identité. Et si vous gérez une communauté réservée aux adultes, vous n’aurez pas non plus à collecter des fichiers sensibles.
Comme tout OctoGuard, ce module sera désactivé par défaut et configurable à volonté. Parce que c’est votre instance, votre responsabilité… et votre liberté.
Une musique qui fait comprendre ce que je ressens et je peux vous dire que c'est un film d'horreur.
🗺️ Roadmap (premières étapes)
Phase | Contenu | Délai estimé |
|---|---|---|
Phase 1 (cet article) | Auto-mod, Welcome, Commandes, Mute, Reports, Webhook, Logs unifiés | ≤ 2 semaines |
Phase 2 | XP / niveaux / leaderboard (SQLite isolée) | +2 semaines |
Phase 3 | Modération forums, messages programmés, réactions automatiques, métadonnées vocales (sans audio) | +3 semaines |
Phase 4 | Bot API externe (REST + Socket.IO + SDK Python) | non daté |
🚀 Comment préparer votre instance ?
En attendant la sortie effective (≤ 2 semaines) :
Mettez à jour Nodyx vers la dernière version
dev.Passez en revue votre politique de modération : quelles règles souhaitez‑vous automatiser ?
Réfléchissez à vos durées de mute, de ban temporaire, et à vos seuils d’escalade.
Identifiez vos commandes utiles (un
!guideou!faqpeut remplacer des dizaines de réponses manuelles).
Aucune action bloquante n’est demandée. OctoGuard arrivera désactivé . Vous ne serez pas surpris.
🙏 Un mot sur la responsabilité
Nodyx est un outil. OctoGuard est un outil. Le code est fourni sous licence AGPL-3.0. Vous, administrateur, êtes seul responsable de l’usage que vous faites de votre instance. Nous vous encourageons à consulter le droit applicable à votre pays.
Le projet Nodyx s’engage à :
Ne jamais cacher une option de modération derrière une « politique interne ».
Rendre l’interface d’administration claire et documentée.
Protéger le réseau via l’annuaire (refus de référencer les instances clairement inhumaines).
Le reste vous appartient. Et c’est très bien ainsi.
🐙 OctoGuard arrive bientôt sur votre instance.
Liberté, responsabilité, et un bouclier.
L’équipe Nodyx
Des questions ? Des suggestions ? Le fil de discussion est ouvert ci-dessous (et bientôt, vous pourrez signaler les messages indésirables en un clic 😉).