Concord: тема для Discourse как альтернатива Discord

:information_source: Сводка Самостоятельно хостингуемый open-source аналог Discord: превращает Discourse в канал-ориентированное сообщество с текстовыми, голосовыми и форумными каналами.
:hammer_and_wrench: Репозиторий github.com/awesomerobot/concord
:question: Гид по установке Как установить тему или компонент темы
:open_book: Новичок в темах Discourse? Начальное руководство по использованию тем Discourse

Установить эту тему

Когда вы используете Discourse для ведения собственного независимого сайта, вы можете выбрать свои политики, разрешить публичный доступ к вашему сайту и публиковать контент, который будет индексироваться поисковыми системами и сканерами. Кроме того, вы можете расширять его и менять стиль так, как вам угодно!

Concord делает всё каналами и отображает все каналы в пользовательском боковом меню:

  • Категории — это форумные каналы
  • Чат-каналы — это текстовые каналы
  • Голосовые комнаты (из плагина voice) — это голосовые каналы
  • Теги могут также быть теговыми каналами (по желанию)

Пользовательский заголовок содержит выпадающее меню со страницами всего сайта (о нас, группы, значки, администрирование и т.д.), которое находится рядом с названием текущего канала, его описанием и действиями. Личные сообщения находятся в собственном представлении, а справа есть список участников, показывающий, кто онлайн.

:warning: Это радикально меняет макет Discourse, поэтому он не будет совместим с каждым плагином или компонентом темы. Также он зависит от некоторых очень недавних изменений в ядре, поэтому убедитесь, что вы обновили Discourse перед установкой (вам нужна сборка от 15 октября 2026 года или новее).

Настройка

Для Concord требуется внести несколько изменений в настройки сайта, поэтому вот что нужно проверить в настройках вашего сайта Discourse после установки.

В качестве администратора вы можете просмотреть все эти настройки одновременно, вставив это в конец URL вашего Discourse:

/admin/site_settings/category/all_results?filter=any:navigation_menu|default_homepage|chat_enabled|chat_allowed_groups|enable_public_channels|voice_allowed_groups|voice_create_room_allowed_groups|enable_user_status|tagging_enabled

:information_source: Обратите внимание, что для просмотра соответствующих настроек вам нужно включить voice из предстоящих изменений, /admin/config/upcoming-changes

Настройка сайта Что установить
navigation menu sidebar (обязательно, список каналов является боковым меню)
chat enabled enabled, если вы хотите текстовые каналы и личные сообщения
chat allowed groups те, кому должен быть доступен чат; включите anonymous_users для просмотра без входа
enable public channels enabled, чтобы сотрудники могли создавать текстовые каналы
live enabled enabled, если вы хотите Live-каналы (аудио/видео)
live allowed groups те, кому должно быть разрешено присоединяться к Live-каналам
live create room allowed groups те, кому должно быть разрешено создавать Live-каналы
enable user status необязательно, статусы отображаются на аватарах в панели пользователя и в заголовке
tagging enabled необязательно, требуется только если вы включаете настройку темы include tags
default homepage необязательно, но теперь вы можете установить здесь любой выбранный вами чат-канал

Создание каналов

Знак + рядом с названием вашего сайта открывает модальное окно «создать канал». Оно предлагает только типы каналов, которые вам разрешено создавать:

  • Forum создает категорию (все, кто может создавать категории)
  • Text создает чат-канал (сотрудники)
  • Voice создает голосовую комнату (настройка voice create room allowed groups)

Каждый тип можно сделать приватным для набора групп. Вы можете изменить это позже через Privacy в меню … канала в боковом меню.

В Discourse чат-каналы получают свои разрешения от категории, поэтому каждый текстовый канал, который вы создаете в этой теме, получает пустую «поддерживающую» категорию, вложенную внутри родительской категории chat-channels. Эти категории скрыты из списка каналов, поэтому вам не нужно о них думать… но не публикуйте темы в них (обычным пользователям это запрещено)! Когда вы удаляете текстовый канал из его меню … в боковом меню, его поддерживающая категория тоже удаляется.

Организация каналов в боковом меню

Каналы можно группировать в сворачиваемые разделы. Администраторы могут создавать, переименовывать, переставлять и удалять разделы из меню … на заголовке раздела, а также перемещать каналы между ними из меню … каждого канала. Всё, что не входит в раздел, перечисляется сверху, в алфавитном порядке.

Разделы действуют на весь сайт, поэтому все видят одинаковую структуру. Изменения появляются у других людей при следующей загрузке страницы.

Настройки темы

Название Описание
include tags Перечислить теги пользователя в боковом меню как каналы (выключено по умолчанию)
include chat channels Перечислить чат-каналы как текстовые каналы (включено по умолчанию)
ai conversations link Показывать кнопку для разговоров с ИИ-ботом рядом с названием сайта, для тех, кто может их использовать (требуется Discourse AI с включенным Chatbot)
remember last channel Повторно открыть канал, в котором человек был в последний раз, когда он возвращается на ваш сайт
chat container category Slug категории, которая хранит поддерживающие категории для текстовых каналов, по умолчанию chat-channels
sidebar sections Разделы и каналы в каждом из них; вы можете управлять ими из бокового меню, это просто место хранения данных
member list roles Группы, отображаемые как роли вверху списка участников, в порядке (по умолчанию администраторы и модераторы)

Другие важные моменты

  • Все видят каждый канал, к которому у них есть доступ; пока нет способа для людей скрывать отдельные каналы из своего списка. Отключение уведомлений для канала работает как обычно.
  • Открытие текстового канала присоединяет к нему, как в Discord. Если кто-то покидает канал, он все равно остается в списке, поэтому отключение уведомлений — лучший вариант, чтобы сделать его тихим.
  • Подкатегории не имеют своего места в списке каналов; вместо этого они отображаются как блоки вверху форумного канала родителя. Тема в целом предполагает плоскую структуру, но вы можете выбрать родительскую категорию для форумного канала, отредактировав его после создания.
  • Удаление текстового канала из собственной страницы настроек чата скрыто для каналов с поддерживающей категорией, поэтому они всегда удаляются из меню … канала (что также очищает категорию). Если канал удаляется каким-то другим способом, например через API, поддерживающая категория остается, и вам придется удалить ее самостоятельно.
  • Чат всегда открывается на полной странице, никогда в выдвижной панели.
  • «Онлайн» в списке участников означает активность где-либо на сайте в последние несколько минут, а не только в чате. Люди, скрывающие свое присутствие, остаются скрытыми.
  • На сайтах с очень большим количеством каналов в список загружаются только первые 500 текстовых каналов. Аналогично, список участников приватного чат-канала загружает своих первых 250 участников сразу, а остальные — по мере прокрутки.
  • Делая голосовой канал приватным, вы добавляете текущих членов выбранных вами групп (до 200). Люди, которые присоединятся к этим группам позже, не получат доступа автоматически, так как голосовые комнаты не имеют групповых разрешений. Вам придется вручную приглашать дополнительных участников.
  • Если вы впоследствии перейдете с Concord, поддерживающие категории для ваших текстовых каналов останутся там (и будут видны на /categories), поэтому, возможно, вы захотите удалить их.

Тут еще столько всего можно сделать, но это надежная основа, если вы ищете аналог Discord, который можно хостить самостоятельно (или использовать на нашем платном хостинге discourse.org!).

Как всегда, отзывы и мысли приветствуются!

30 лайков

Браво, это прекрасная инициатива @awesomerobot. Это позволяет привлечь других пользователей. Но я думаю, что чату не хватает многих опций, таких как опросы или косметические бонусы. Поскольку мне не нравится Discord, меня это совсем не смущает :rofl: Зато мне нравится Discourse :smiling_face_with_three_hearts:

3 лайка

Да, это по-прежнему чат Discourse, просто в другой обёртке для навигации… Если людей интересуют функции чата, похожие на Discord, то это всегда хороший повод обратиться в Contribute > Feature (кстати, я только что заметил, что у вас уже есть такое для опросов! Sondage pour le chat)

5 лайков

Очень интересно и идеально подходит для тех, кто застрял между пользователями, желающими Discord, и админами, которые хотят использовать Discourse. Я заинтригован!

4 лайка