리뷰 - 커뮤니티에 Discord 스타일 비디오 및 음성 룸과 통화를 추가하세요 🎙

중요: 2026년 9월 1일부터 이 플러그인은 Discourse 코어에 번들링되어 "Voice"로 이름이 변경되었습니다. 이제 관리자 페이지에서 활성화하기만 하면 됩니다.

여러분 안녕하세요! 사이드바에 직접 음성 및 비디오 채팅 룸을 추가하는 새로운 플러그인 Resenha를 공유합니다. 외부 앱이 필요 없으며, 순수하게 P2P WebRTC만 사용하면 됩니다.

직접 체험해 보기

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

작동 방식

사이드바에서 룸을 클릭하여 참가하고, 다시 클릭하여 나갑니다. 기본적으로 모든 미디어는 WebRTC를 통해 P2P로 전송되며, Discourse 서버는 시그널링만 처리하고 미디어는 처리하지 않습니다. 더 큰 규모의 통화가 필요한 사이트는 LiveKit 미디어 서버(라이브킷 클라우드 또는 셀프호스팅)를 통해 룸을 라우팅할 수 있습니다. 설치 시 커뮤니티가 즉시 대화를 시작할 수 있도록 기본 “Watercooler” 룸이 생성됩니다.

주요 기능

  • 사이드바 중심 UX — Discord 스타일처럼 사이드바에 룸과 실시간 참가자 아바타를 표시하며, 말하고 있는 사용자를 나타내는 애니메이션 인디케이터를 제공합니다
  • 비디오 및 화면 공유 — 전체 룸 페이지, 타일/프레젠테이션 레이아웃, 전체 화면 지원을 갖춘 선택적 카메라 비디오 및 화면/탭 공유
  • 영속적 통화 위젯 — 포럼을 둘러보는 동안 따라다니는 도킹형, 크기 조절 가능한 미니 통화 위젯(비디오 포함)
  • 음성 및 비디오 설정 — 기기 선택기, 실시간 마이크 테스트, 입력 감도 게이트, WebAssembly 노이즈 서프레션(DTLN), MediaPipe 배경 흐림 — 모두 브라우저에서 로컬로 처리됩니다
  • 룸 채팅 — 각 룸은 실제 Discourse 채팅 채널과 스레드를 기반으로 한 텍스트 채팅을 제공합니다
  • 스테이지 룸 — AMA 및 커뮤니티 콜을 위해 발언 요청 대기열이 있는 발표자/청중용 룸
  • 룸 권한 — 공개, 그룹 제한, 비공개 룸을 지원하며, 사이드바에 잠금 배지와 룸 해시태그를 제공하여 게시물에서 룸을 링크할 수 있습니다
  • 참가자 제어 — 사용자별 볼륨, 음소거, 귀 막기, 추방 기능을 가진 컨텍스트 메뉴; AFK 자동 음소거/연결 해제 및 자동 사용자 상태 제공
  • 룸 관리 — 그룹 기반 사용자 룸 생성 제한, 스태프 CRUD UI, 프로그래매틱 제어를 위한 완전한 REST API
  • 기본 인프라 제로 — SFU/MCU 없이 DTLS-SRTP 암호화를 사용하는 순수 브라우저 WebRTC
  • 선택적 LiveKit 통합 — 개별 룸을 옵트인하거나 대규모 통화를 위해 모든 것을 LiveKit Cloud 또는 자체 LiveKit 서버를 통해 라우팅할 수 있으며, 관리자 헬스 패널과 웹훅 기반 조정 기능을 제공합니다

상태

수 주 동안 내부 회의용으로 사용해 왔으며, 소규모 그룹에서는 매우 잘 작동합니다. 더 큰 그룹은 LiveKit와 함께 배포하는 것이 좋지만, 최대 10명까지의 일반적인 크기는 기본 메시 구성에서 매우 잘 작동합니다.

설치

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

관리자 > 설정 > 플러그인 > resenha 활성화에서 활성화하세요.

피드백 환영

이것은 새로운 플러그인입니다 — 버그, 아이디어, 질문 모두 이 주제에서 환영합니다. PR도 환영합니다!


참고: 이것은 official 플러그인이 아닙니다.

57개의 좋아요

리뷰, 멋지다! 정말 좋아해. 같은 나라 사람이라니 고마워.

12개의 좋아요

방금 설치했는데 약 30분 만에 실행까지 완료했습니다. 잘 작동하는 것 같습니다! 몇 가지 기능 변경/추가 사항이 있으면 좋겠습니다:

기능 상태
방 이름 변경 :cross_mark: 구현되지 않음
방 삭제 :cross_mark: 구현되지 않음
기본 방 이름 변경 :cross_mark: 하드코딩됨
방을 Discourse 카테고리에 연결 :cross_mark: 지원되지 않음
방별 권한 설정 :cross_mark: 지원되지 않음
자동 만료되는 방 생성 :cross_mark: 지원되지 않음
방 설명 / 주제 :cross_mark: 지원되지 않음
10개의 좋아요

정말 놀랍네요. 알파 버전이 끝나면 팀에서 정식 버전으로 출시할 계획이 있나요?

7개의 좋아요

현재 공식 출시 계획은 없습니다. 이 기능은 주로 해당 기술의 가능성과 Discourse와의 통합 방식을 탐구하기 위한 것입니다.

다만, 다른 모든 기능과 마찬가지로 고객의 요구에 따라 결정될 것입니다.

9개의 좋아요

정말 멋진 기능입니다, Falco! 언급하신 것 외에도 이 기능의 활용도가 꽤 많아 보입니다. 이런 기능 플러그인은 확실히 Discourse Meta를 필수 플랫폼으로 만들어 줍니다!

4개의 좋아요

새 방을 생성하는 옵션은 어디에 있나요?

이것은 완성된 프로덕션 사이트용 솔루션이 아니라 기술 실험 프로젝트이기 때문에, 해당 기능에 대한 UI가 제공되지 않습니다.

2개의 좋아요

지금은 #experimental이 존재해야 하지 않나요?

멋진 플러그인입니다

3개의 좋아요

몇 날 며칠 동안 이것을 직접 써 보았는데, 정말 훌륭합니다!!!

포럼이나 채팅 토론을 음성 대화로 손쉽게 전환해야 하는 문제를 아름답게 해결해 줍니다. 그동안 다른 플랫폼으로 전환해야 하는 불편함이나, 리소스를 많이 사용하는 통합 영상 회의(시도) 사이에서 고생해 왔거든요.

더 발전시켜 나가실 계획이라면, 채팅과 통합되도록 설계해 주셨으면 좋겠습니다. 채팅 멤버들을 위해 채팅에서 바로 개인 음성 방을 열 수 있다면 정말 완벽할 것 같습니다. (사용 후 깔끔하게 정리되는 기능도 포함된다면 더욱 좋습니다.) 그리고 채팅은 여전히 추가적인 댓글, 파일, 링크 등을 공유하는 최적의 장소로 남아 있을 것입니다.

물론, 그 위에 더 걸작이 될 수 있는 기능은 다음과 같습니다:

  1. 영상 옵션 (이렇게 가벼운 기술로는 기술적으로 가능하지 않을 가능성이 높습니다)

  2. 관련 주제와 채팅을 지능적으로 통합할 수 있는 AI 전사 기능. 이는 회의 기록원으로서 정말 놀라운 기능이 될 것입니다.

11개의 좋아요

피드백 주셔서 감사합니다! 바로 이것이 제가 이 기능을 만들 때의 목표였습니다!

물론이죠, 그건 논리적인 다음 단계일 것입니다. 일시적인(에페메럴) 방을 백업으로 활용하는 방식이죠.

상당히 실현 가능합니다. 업로드 속도가 충분히 빠른 사용자들은 SFU/MCU 없이도 사용할 수 있고, 선택적으로 SFU/MCU 지원을 추가할 수도 있습니다.

7개의 좋아요

완벽했습니다. 저는 오랫동안 업데이트를 하지 않을 계획이지만, 2월에 ESR이 출시될 때 이 플러그인을 포함하기 위해 마지막으로 한 번 더 업데이트할 것입니다.

정말 기대가 크고, 그렇게 되길 바랍니다.

2개의 좋아요

더 물통(워터쿨러) 스타일의 아이콘을 사용하시겠습니까?

image

이것을 TC에 넣으세요:

// 이 코드를 JS 탭 또는 /javascripts/discourse/api-initializers/... 에 넣으세요
import { apiInitializer } from "discourse/lib/api";

export default apiInitializer(api => {
  api.replaceIcon("microphone-lines", "bottle-water");
});
/* Resenha 사이드바에서 bottle-water 아이콘을 upside down으로 뒤집기 - Common에 넣으세요 */
.sidebar-section.sidebar-section-wrapper [class*="d-icon-microphone-lines"] {
  transform: rotate(180deg);
  /* 필요 시 세로 정렬을 조정하세요 */
  display: inline-block;
}
3개의 좋아요

이제 방을 관리할 수 있는 UI가 제공됩니다.

10개의 좋아요

Falco님, 이 플러그인 감사합니다 :heart:

정말 훌륭한 작업입니다 :+1:

1개의 좋아요

프로덕션에서 테스트 중입니다! 피드백을 가지고 돌아올게요! Vamos Resenhar :brazil:

1개의 좋아요

이 경우 링(ring)이 더 나을 수도 있나요? 방 안에서 제 프로필이나 다른 사람의 프로필을 클릭하면 DOM이 새로고침되어 홈페이지로 되돌아갑니다.

이제 Discourse Chat의 세로점(케밥) 메뉴 패턴을 사용한 방 세부 정보 화면이 있습니다.

2개의 좋아요

기본 테마에서는 겹치지 않습니다. 패딩에 사용할 공간이 적은 경우를 처리하도록 테마를 조정해 보시는 건 어떨까요?

image

이 문제는 이제 수정되었습니다.

3개의 좋아요

최근 뉴스에 따라 플러그인에 새로운 기능을 추가했습니다. 바로 AI 기반 노이즈 필터입니다.

관리자는 사이트 설정을 통해 이 기능을 활성화할 수 있으며(기본값: 꺼짐), 사용자는 음성 채팅방에서 자신의 사용자 프로필을 클릭하여 이 기능을 선택적으로 사용할 수 있습니다.

6개의 좋아요