Avis - Ajoutez des Salons Vocaux style Discord à votre Communauté 🎙

Salut tout le monde ! Je partage Resenha, un plugin expérimental qui ajoute des salons de chat vocal et vidéo directement dans Discourse — aucune application externe n’est nécessaire, juste du WebRTC pair-à-pair dans votre barre latérale.

output

Essayez-le en direct

:point_right: https://discourse-on-a-pi5.falco.dev/

(Oui, cela fonctionne sur un Raspberry Pi 5 — c’est ainsi que léger est ce plugin.)

Comment ça marche

Cliquez sur un salon dans la barre latérale pour y rejoindre, cliquez à nouveau pour le quitter. Par défaut, tous les médias transitent pair-à-pair via WebRTC — votre serveur Discourse ne gère que le signalisation, jamais les médias. Les sites ayant besoin d’appels plus importants peuvent éventuellement acheminer les salons via un serveur média LiveKit — soit LiveKit Cloud, soit un auto-hébergé. Un salon « Watercooler » par défaut est créé lors de l’installation afin que votre communauté puisse commencer à discuter immédiatement.

Fonctionnalités

  • UX centrée sur la barre latérale — salons et avatars des participants en direct directement dans la barre latérale, style Discord, avec indicateurs animés de parole
  • Vidéo et partage d’écran — vidéo de caméra optionnelle et partage d’écran/onglet avec une page de salon complète, mises en page tuiles/présentation, et support plein écran
  • Widget d’appel persistant — un mini-appel ancré et redimensionnable qui vous suit lorsque vous naviguez sur le forum, vidéo incluse
  • Paramètres vocaux et vidéo — sélecteurs de périphériques, test micro en direct, seuil de sensibilité d’entrée, suppression de bruit WebAssembly (DTLN), et flou d’arrière-plan MediaPipe — tout traité localement dans le navigateur
  • Chat de salon — chaque salon dispose d’un chat texte soutenu par de vrais canaux et fils de chat Discourse
  • Salons scène — salons orateur/audience avec une file d’attente de demande de parole, pour les AMAs et appels communautaires
  • Permissions de salon — salons publics, restreints par groupe, et privés, avec badges de verrouillage dans la barre latérale et hashtags de salon pour lier les salons dans les posts
  • Contrôles des participants — menu contextuel avec volume par utilisateur, sourdine, assourdissement, et expulsion ; plus sourdine/déconnexion automatique AFK et statut utilisateur automatique
  • Gestion des salons — création de salon par utilisateur limitée par groupes, interface CRUD pour le staff, et une API REST complète pour contrôle programmatique
  • Zéro infrastructure par défaut — WebRTC pur navigateur avec chiffrement DTLS-SRTP, aucun SFU/MCU nécessaire
  • Intégration LiveKit optionnelle — activez individuellement les salons ou acheminez tout via LiveKit Cloud ou votre propre serveur LiveKit pour les grands appels, avec un panneau de santé admin et réconciliation basée sur les webhooks

Statut

:warning: Bêta — Le mode pair-à-pair par défaut est testé et fonctionne bien avec de petits groupes (2–10 participants). Pour les grands salons, pointez le plugin vers LiveKit (Cloud ou auto-hébergé) — tout le reste continue de fonctionner identiquement.

Installation

hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/xfalcox/resenha.git

Activez dans Admin > Paramètres > Plugins > resenha enabled.

Feedback bienvenu

Ceci est expérimental — bugs, idées, et questions sont tous bienvenus dans ce sujet. PRs aussi !


Note : Ceci n’est pas un plugin official.

54 « J'aime »

Critique, génial j’adore ça merci mon compatriote

12 « J'aime »

Je viens de l’installer et il est opérationnel en une demi-heure environ. Semble bien fonctionner ! J’aimerais voir quelques changements/ajouts de fonctionnalités :

Fonctionnalité Statut
Renommer une salle :cross_mark: Non implémenté
Supprimer une salle :cross_mark: Non implémenté
Changer le nom par défaut de la salle :cross_mark: Codé en dur
Lier les salles aux catégories Discourse :cross_mark: Non pris en charge
Définir des autorisations par salle :cross_mark: Non pris en charge
Créer des salles à expiration automatique :cross_mark: Non pris en charge
Descriptions/sujets de salle :cross_mark: Non pris en charge
10 « J'aime »

C’est incroyable. Y a-t-il un plan pour que l’équipe le rende officiel une fois qu’il sera sorti de l’alpha ?

7 « J'aime »

Aucun plan actuellement, car il s’agit principalement d’une exploration des possibilités de la technologie et de la manière dont elle peut s’intégrer à Discourse.

Néanmoins, comme pour tout le reste, cela dépend de ce que veulent nos clients.

9 « J'aime »

C’est vraiment génial, Falco ! Je peux voir pas mal d’applications pour cela, compte tenu de ce que vous avez listé. Les plugins de fonctionnalités comme celui-ci aident vraiment à faire de Discourse Meta la plateforme de référence !

4 « J'aime »

Où se trouve l’option pour créer une nouvelle salle ?

Il n’y a pas d’interface utilisateur pour cela car il s’agit d’un projet expérimental sur la technologie plutôt que d’une solution prête pour les sites de production.

2 « J'aime »

Ne devrait-il pas y avoir de #experimental pour l’instant ?

Plugin sympa

3 « J'aime »

Je joue avec ça depuis quelques jours - et c’est brillant !!!

Il résout magnifiquement le problème de la « mise à niveau » facile d’un forum/discussion de chat vers une conversation verbale. J’ai passé des années à lutter entre le besoin de passer à d’autres plateformes, ou d’avoir des tentatives gourmandes en ressources de visioconférence intégrée.

Si vous décidez d’aller plus loin, j’aimerais que ce soit conçu pour s’intégrer au chat. Ce serait tout simplement sublime de pouvoir lancer une salle vocale privée pour les membres d’un chat directement depuis le chat (avec un nettoyage par la suite pour garder les choses propres). Et le chat resterait l’endroit parfait pour déposer des commentaires supplémentaires, des fichiers, des liens, etc.

La cerise sur le gâteau serait bien sûr :

  1. Une option pour la vidéo (probablement pas possible techniquement avec une technologie aussi légère)

  2. Transcription par IA, suffisamment intelligente pour intégrer les sujets et le chat connexes. Ce serait absolument incroyable en tant que secrétaire de réunion.

11 « J'aime »

Merci pour le retour ! C’était exactement mon objectif avec ceci !

Certainement, ce serait une prochaine étape logique, avec des salles éphémères pour la sauvegarder.

C’est tout à fait réalisable, à la fois sans SFU/MCU pour les personnes ayant un débit montant suffisamment bon, ou avec un support optionnel pour cela.

7 « J'aime »

C’était parfait, je ne ferai pas de mise à jour avant longtemps, mais en février, je ferai une dernière mise à jour lorsque l’ESR sera lancé pour inclure ce plugin.

J’en suis très enthousiaste et j’espère que cela arrivera.

2 « J'aime »

Y a-t-il une chance que nous puissions changer l’icône en bottle-water pour la salle de discussion ‘Watercooler’ ?

3 « J'aime »

Il y a maintenant une interface utilisateur pour gérer les salles.

10 « J'aime »

Merci Falco pour ce plugin :heart:

C’est du super boulot :+1:

1 « J'aime »

Je teste en production, je reviens avec des retours ! Passons en revue :brazil:

1 « J'aime »

Peut-être qu’un anneau serait mieux dans ce cas ? lorsque je suis dans une pièce et que je clique sur mon propre profil ou sur le profil d’un autre, le DOM se rafraîchit et je reviens à la page d’accueil.

Il existe désormais un écran de détails de salon utilisant le modèle de menu kebab de Discourse Chat

2 « J'aime »

Il ne chevauche pas le thème par défaut, peut-être ajuster votre thème pour gérer le rythme moins soutenu pour le rembourrage ?

image

Ceci est maintenant corrigé.

3 « J'aime »

À la lumière des nouvelles récentes, j’ai ajouté une nouvelle fonctionnalité au plugin : un filtre de bruit alimenté par l’IA.

Les administrateurs peuvent le rendre disponible via un paramètre du site (par défaut : désactivé), puis les utilisateurs peuvent l’activer en cliquant sur leur propre utilisateur dans une salle de discussion vocale.

6 « J'aime »