Concord: ein Discord-ähnliches Theme für Discourse

:information_source: Zusammenfassung Eine selbst gehostete, Open-Source-Alternative zu Discord: Wandle Discourse in eine kanalbasierte Community mit Text-, Sprach- und Forenkanälen um.
:hammer_and_wrench: Repository github.com/awesomerobot/concord
:question: Installationsanleitung So installierst du ein Theme oder einen Theme-Baustein
:open_book: Neu bei Discourse-Themes? Einsteigerleitfaden für die Verwendung von Discourse-Themes

Dieses Theme installieren

Wenn du Discourse nutzt, um eine eigene unabhängige Website zu betreiben, kannst du deine Richtlinien festlegen, erlauben, dass deine Website öffentlich einsehbar ist, und Inhalte veröffentlichen, die von Suchmaschinen und Crawlern indexiert werden. Außerdem kannst du es nach Belieben erweitern und neu gestalten!

Concord macht alles zu einem Kanal und zeigt alle Kanäle in einer benutzerdefinierten Seitenleiste an:

  • Kategorien sind Forenkanäle
  • Chat-Kanäle sind Textkanäle
  • Sprachräume (aus dem Voice-Plugin) sind Sprachkanäle
  • Tags können optional auch Tag-Kanäle sein

Der Header wird zu einem Kanal-Header mit dem Namen, der Beschreibung und den Aktionen des aktuellen Kanals. DMs haben ihre eigene Ansicht, es gibt eine rechte Seitenleiste mit einer Mitgliederliste, die zeigt, wer online ist, und die seitenweiten Seiten (Über uns, Gruppen, Abzeichen, Admin usw.) werden in ein separates Menü verschoben.

:warning: Dies ändert das Layout von Discourse erheblich, daher ist es nicht mit jedem Plugin oder Theme-Baustein kompatibel. Es hängt auch von einigen sehr neuen Änderungen im Kern ab, also stelle sicher, dass du Discourse aktualisiert hast, bevor du es installierst (du brauchst einen Build vom 15. Oktober 2026 oder neuer).

Einrichtung

Concord erfordert einige Änderungen an den Seiteneinstellungen. Hier findest du, was du in deinen Discourse-Seiteneinstellungen nach der Installation überprüfen solltest.

Als Administrator kannst du alle diese Einstellungen gleichzeitig anzeigen, indem du dies ans Ende deiner Discourse-URL fügst:

/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: Beachte, dass du Voice aus den kommenden Änderungen aktivieren musst, um die relevanten Einstellungen zu sehen, /admin/config/upcoming-changes

Seiteneinstellung Was du einstellen solltest
navigation menu sidebar (erforderlich, die Kanalliste ist die Seitenleiste)
chat enabled enabled, wenn du Textkanäle und DMs möchtest
chat allowed groups Wer chatten darf, inkl. anonymous_users für die Ansicht ohne Anmeldung
enable public channels enabled, damit Mitarbeiter öffentliche Textkanäle erstellen können
voice enabled enabled, wenn du Sprachkanäle möchtest
voice allowed groups Wer Sprachkanäle beitreten darf
voice create room allowed groups Wer Sprachkanäle erstellen darf
enable user status Optional, Statusanzeigen erscheinen auf den Avataren im Benutzerpanel und im Header
tagging enabled Optional, nur nötig, wenn du die Theme-Einstellung include tags aktivierst
default homepage Optional, aber du kannst dies nun auf einen beliebigen Chat-Kanal setzen

Kanäle erstellen

Das + neben deinem Seitennamen öffnet ein „Kanal erstellen“-Fenster. Es bietet nur die Kanaltypen an, deren Erstellung dir erlaubt ist:

  • Forum erstellt eine Kategorie (jeder, der Kategorien erstellen kann)
  • Text erstellt einen Chat-Kanal (Mitarbeiter)
  • Voice erstellt einen Sprachraum (Einstellung voice create room allowed groups)

Jeder Typ kann für eine Gruppe von Benutzern privat gemacht werden. Du kannst dies später unter Privatsphäre im …-Menü des Kanals in der Seitenleiste ändern.

In Discourse erhalten Chat-Kanäle ihre Berechtigungen von einer Kategorie. Daher erhält jeder Textkanal, den du in diesem Theme erstellst, eine leere „Stütz“-Kategorie, die innerhalb einer übergeordneten chat-channels-Kategorie verschachtelt ist. Diese Kategorien sind in der Kanalliste ausgeblendet, sodass du sie dir nicht merken musst… aber poste keine Themen darin (normale Benutzer dürfen dort nicht posten)! Wenn du einen Textkanal aus seinem …-Seitenleistenmenü löschst, wird auch seine Stütz-Kategorie gelöscht.

Seitenleistenkanäle organisieren

Kanäle können in einklappbare Abschnitte gruppiert werden. Administratoren können Abschnitte über das …-Menü einer Abschnittsüberschrift erstellen, umbenennen, neu anordnen und löschen und Kanäle zwischen ihnen über das …-Menü jedes Kanals verschieben. Alles, was nicht in einem Abschnitt ist, wird oben alphabetisch aufgelistet.

Abschnitte gelten seitenweit, sodass jeder dasselbe Layout sieht. Änderungen erscheinen für andere Personen beim nächsten Laden der Seite.

Theme-Einstellungen

Name Beschreibung
include tags Die Tags des Benutzers in der Seitenleiste als Kanäle auflisten (standardmäßig deaktiviert)
include chat channels Chat-Kanäle als Textkanäle auflisten (standardmäßig aktiviert)
ai conversations link Zeigt einen Button für KI-Bot-Gespräche neben dem Seitennamen an, für Personen, die diese nutzen können (erfordert Discourse AI mit aktiviertem Chatbot)
remember last channel Öffnet erneut den Kanal, in dem jemand zuletzt war, wenn er zur Seite zurückkehrt
chat container category Slug der Kategorie, die die Stütz-Kategorien für Textkanäle enthält, standardmäßig chat-channels
sidebar sections Die Abschnitte und die Kanäle in jedem Abschnitt, du kannst diese aus der Seitenleiste verwalten, hier werden die Daten lediglich gespeichert
member list roles Gruppen, die als Rollen oben in der Mitgliederliste angezeigt werden, in Reihenfolge (standardmäßig Administratoren und Moderatoren)

Weitere Hinweise

  • Jeder sieht jeden Kanal, auf den er Zugriff hat. Es gibt noch keinen Weg, einzelne Kanäle aus der eigenen Liste auszublenden. Das Stummschalten eines Kanals funktioniert weiterhin wie gewohnt für Benachrichtigungen.
  • Das Öffnen eines Textkanals tritt ihm bei, genau wie in Discord. Wenn jemand einen Kanal verlässt, wird er weiterhin aufgelistet, daher ist das Stummschalten die bessere Option, um ihn ruhig zu stellen.
  • Unterkategorien erhalten keinen eigenen Platz in der Kanalliste, stattdessen werden sie als Boxen oben in ihrem übergeordneten Forenkanal angezeigt. Das Theme empfiehlt im Allgemeinen eine flache Struktur, aber du kannst eine übergeordnete Kategorie für einen Forenkanal auswählen, indem du ihn nach der Erstellung bearbeitest.
  • Das Löschen eines Textkanals über die eigene Einstellungsseite von Chat ist für Kanäle mit einer Stütz-Kategorie ausgeblendet, daher werden sie immer über das …-Menü des Kanals gelöscht (was auch die Kategorie aufräumt). Falls ein Kanal auf andere Weise gelöscht wird, z. B. über die API, bleibt die Stütz-Kategorie zurück und du musst sie selbst entfernen.
  • Chat öffnet sich immer auf der ganzen Seite, nie im Drawer.
  • „Online“ in der Mitgliederliste bedeutet aktiv irgendwo auf der Seite in den letzten paar Minuten, nicht nur im Chat. Personen, die ihre Präsenz verstecken, bleiben versteckt.
  • Auf Seiten mit einer sehr großen Anzahl von Kanälen werden nur die ersten 500 Textkanäle in die Liste geladen. Ähnlich lädt die Mitgliederliste eines privaten Chat-Kanals ihre ersten 250 Mitglieder vorab und den Rest beim Scrollen.
  • Das Privatmachen eines Sprachkanals fügt die aktuellen Mitglieder der Gruppen hinzu, die du auswählst (bis zu 200). Personen, die diesen Gruppen später beitreten, erhalten keinen automatischen Zugriff, da Sprachräume keine Gruppenberechtigungen haben. Du musst zusätzliche Mitglieder manuell einladen.
  • Wenn du später von Concord wegswitchst, sind die Stütz-Kategorien für deine Textkanäle immer noch vorhanden (und unter /categories sichtbar), daher möchtest du sie möglicherweise löschen.

Es gibt hier noch so viel, was wir tun können, aber dies ist eine solide Grundlage, wenn du nach einer Discord-Alternative suchst, die du selbst hosten kannst (oder auf unserem kostenpflichtigen discourse.org-Hosting verwenden kannst!).

Wie immer sind Feedback und Gedanken willkommen!

15 „Gefällt mir“