Resenha - Adicione Salas de Vídeo e Voz estilo Discord à sua Comunidade 🎙

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

Teste ao Vivo

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

Como Funciona

Clique em uma sala na barra lateral para entrar e clique novamente para sair. Por padrão, todo o tráfego de mídia é feito peer-to-peer via WebRTC — seu servidor Discourse apenas lida com o sinalização, nunca com a mídia. Sites que precisam de chamadas maiores podem optar por rotear as salas por meio de um servidor de mídia LiveKit — seja o LiveKit Cloud ou um auto-hospedado. Uma sala padrão chamada “Watercooler” é 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 uma página completa de sala, layouts de mosaico/apresentação e suporte a tela cheia
  • Widget de chamada persistente — uma mini-chamada ancorada e redimensionável que segue você enquanto navega pelo fórum, incluindo vídeo
  • Configurações de voz e vídeo — seletores de dispositivo, teste de microfone ao vivo, gate 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 recebe um chat de texto suportado por canais e tópicos de chat reais do Discourse
  • Salas de palco — salas de palestrante/público com uma fila de solicitação de fala, para AMAs e chamadas comunitárias
  • Permissões de sala — salas públicas, restritas a grupos e privadas, com emblemas 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, surdo 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 uma 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 por meio do LiveKit Cloud ou seu próprio servidor LiveKit para chamadas grandes, com um painel de saúde do administrador e reconciliação baseada em webhook

Status

Estamos usando isso para reuniões internas há semanas, e funciona muito bem para pequenos grupos. Grupos maiores podem querer implantar isso junto com o LiveKit, mas os tamanhos habituais com até 10 participantes funcionam muito bem na configuração de malha padrão.

Instalação

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

Ative em Admin > Settings > Plugins > resenha enabled.

Feedback Bem-vindo

Este é um novo plugin — bugs, ideias e perguntas são todos bem-vindos neste tópico. PRs também!


Nota: Este não é um plugin official.

56 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