Resenha - Adicione Salas de Voz estilo Discord à sua Comunidade 🎙

Olá a todos! Compartilhando o Resenha, um plugin experimental que adiciona salas de chat por voz e vídeo diretamente ao Discourse — sem necessidade de aplicativos externos, apenas WebRTC peer-to-peer na sua barra lateral.

output

Teste ao Vivo

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

(Sim, roda em um Raspberry Pi 5 — é assim de leve que é.)

Como Funciona

Clique em uma sala na barra lateral para entrar, clique novamente para sair. Por padrão, todo o tráfego de mídia é peer-to-peer via WebRTC — seu servidor Discourse apenas gerencia o sinalização, nunca a mídia. Sites que precisam de chamadas maiores podem rotear opcionalmente as salas através de um servidor de mídia LiveKit — seja LiveKit Cloud ou auto-hospedado. Uma sala padrão “Bate-papo” é criada na instalação para que sua comunidade possa começar a conversar imediatamente.

Recursos

  • UX focado na barra lateral — salas e avatares de participantes ao vivo diretamente na barra lateral, estilo Discord, com indicadores animados de fala
  • Vídeo e compartilhamento de tela — vídeo de câmera opcional e compartilhamento de tela/aba com página completa de sala, layouts em grade/apresentação e suporte a tela cheia
  • Widget de chamada persistente — uma mini-chamada ancorada e redimensionável que acompanha você enquanto navega pelo fórum, incluindo vídeo
  • Configurações de voz e vídeo — seletores de dispositivo, teste de microfone ao vivo, porta de sensibilidade de entrada, supressão de ruído WebAssembly (DTLN) e desfoque de fundo MediaPipe — tudo processado localmente no navegador
  • Chat da sala — cada sala tem um chat de texto apoiado por canais e tópicos de chat reais do Discourse
  • Salas de palco — salas de palestrante/audiência com fila de solicitação para falar, para AMAs e chamadas comunitárias
  • Permissões de sala — salas públicas, restritas a grupos e privadas, com badges de bloqueio na barra lateral e hashtags de sala para vincular salas em posts
  • Controles de participante — menu de contexto com volume por usuário, mudo, surdez e expulsão; além de mudo/desconexão automática AFK e status de usuário automático
  • Gerenciamento de sala — criação de sala por usuário restrita a grupos, interface CRUD para staff e API REST completa para controle programático
  • Zero infraestrutura por padrão — WebRTC puro no navegador com criptografia DTLS-SRTP, sem necessidade de SFU/MCU
  • Integração opcional com LiveKit — opte por salas individualmente ou roteie tudo através do LiveKit Cloud ou seu próprio servidor LiveKit para chamadas grandes, com painel de saúde do administrador e reconciliação baseada em webhooks

Status

:warning: Beta — O modo peer-to-peer padrão é testado e funciona bem com pequenos grupos (2–10 participantes). Para salas maiores, aponte o plugin para o LiveKit (Cloud ou auto-hospedado) — tudo o mais continua funcionando da mesma forma.

Instalação

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

Ative em Admin > Configurações > Plugins > resenha enabled.

Feedback Bem-Vindo

Isso é experimental — bugs, ideias e perguntas são todos bem-vindos neste tópico. PRs também!


Nota: Isso não é um plugin official.

54 curtidas

Resenha, awesome I love it thank you my conterrâneo

12 curtidas

Acabei de instalar e está funcionando em cerca de meia hora. Parece funcionar bem! Gostaria de ver algumas mudanças/adições de recursos:

Recurso Status
Renomear uma sala :cross_mark: Não implementado
Excluir uma sala :cross_mark: Não implementado
Alterar o nome padrão da sala :cross_mark: Codificado como fixo
Vincular salas a categorias do Discourse :cross_mark: Não suportado
Definir permissões por sala :cross_mark: Não suportado
Criar salas com expiração automática :cross_mark: Não suportado
Descrições/tópicos da sala :cross_mark: Não suportado
10 curtidas

Isto é incrível. Existe algum plano para a equipe torná-lo oficial assim que sair da versão alfa?

7 curtidas

Atualmente, não há planos, pois esta é principalmente uma exploração das possibilidades da tecnologia e de como ela pode se integrar ao Discourse.

Ainda assim, como tudo mais, depende do que nossos clientes desejam.

9 curtidas

Isto é muito impressionante, Falco! Posso ver várias aplicações para isso sendo o que você listou. Plugins de recursos como este definitivamente ajudam a tornar o Discourse Meta a plataforma de referência!

4 curtidas

Onde fica a opção para criar uma nova sala?

Não há interface de usuário para isso, pois este é um projeto experimental sobre a tecnologia, em vez de uma solução pronta para sites de produção.

2 curtidas

Não deveria o #experimental estar presente por enquanto?

Plugin legal

3 curtidas

Estive brincando com isso por alguns dias - e é brilhante!!!

Ele resolve lindamente o problema de “atualizar” facilmente um fórum/discussão de bate-papo para uma conversa verbal. Tive anos de luta entre a necessidade de mudar para outras plataformas ou ter tentativas (que consomem muitos recursos) de videoconferência integrada.

Se você decidir levá-lo adiante, eu adoraria que fosse projetado para integrar-se ao chat. Seria simplesmente sublime poder iniciar uma sala de Voz privada para os membros de um bate-papo diretamente do bate-papo (com uma limpeza depois para manter as coisas organizadas). E o bate-papo permaneceria como o lugar perfeito para inserir comentários adicionais, arquivos, links, etc.

A cereja do bolo seria, é claro:

  1. Uma opção para vídeo (provavelmente não é tecnicamente possível com uma tecnologia tão leve)

  2. Transcrição por IA, inteligente o suficiente para integrar tópicos e bate-papo relacionados. Isso seria absolutamente incrível como um secretário de reuniões.

11 curtidas

Obrigado pelo feedback! Esse era exatamente o meu objetivo com isso!

Com certeza, esse seria um próximo passo lógico, com salas efêmeras para dar suporte.

É totalmente viável, tanto sem um SFU/MCU para pessoas com upload bom o suficiente, quanto com suporte opcional para isso.

7 curtidas

Isto foi perfeito, não farei atualizações por um longo período, mas em fevereiro farei a última atualização quando o ESR for lançado para incluir este plugin.

Estou muito animado com isso e espero que aconteça.

2 curtidas

Há alguma chance de mudarmos o ícone para bottle-water para a sala de bate-papo ‘Watercooler’?

3 curtidas

Agora existe uma interface de usuário para gerenciar salas.

10 curtidas

Obrigado Falco por este plugin :heart:

É um ótimo trabalho :+1:

1 curtida

I’m testing in production I’ll be back with feedbacks! Vamos Resenhar :brazil:

1 curtida

Talvez um anel pudesse ser melhor neste caso? quando estou em uma sala e clico no meu próprio perfil ou no perfil de outra pessoa, a atualização do DOM retorna à página inicial.

Agora existe uma tela de detalhes da sala usando o padrão de menu kebab do Discourse Chat

2 curtidas

Não se sobrepõe no tema padrão, talvez ajuste seu tema para lidar com o menor ritmo para preenchimento (padding)?

image

Isso agora está corrigido.

3 curtidas

À luz das notícias recentes, adicionei um novo recurso ao plugin: um filtro de ruído com inteligência artificial (IA).

Os administradores podem disponibilizá-lo através de uma configuração do site (padrão: desativado) e, em seguida, os usuários podem optar por ativá-lo clicando em seu próprio usuário em uma sala de bate-papo por voz.

6 curtidas