| Summary | Prototype plugin for using one Discourse server as a home for multiple teams (slack- or mattermost-like). | |
| Repository Link | GitHub - akhmerov/discourse-workspace-groups · GitHub | |
| Install Guide | How to install plugins in Discourse |
This is a prototype plugin, mostly AI-generated, use it at your own risk. Any feedback welcome!
Features
I built this because I want to host a single Discourse instance for several research groups, while making each top-level category feel more like a team space. The plugin turns top-level categories into workspaces and subcategories into channels. Each channel keeps its normal Discourse topics and also gets a paired chat channel.
The plugin also adds a team overview page, team-focused sidebar navigation, public and private channels, join and leave flows, guest access to individual channels, and archive or unarchive support for channels that should become read-only.
Here is how it looks:
Configuration
Install the plugin, rebuild Discourse, and enable discourse_workspace_groups_enabled in the admin settings. If you want the paired chat behavior, also enable Discourse Chat and configure it so category chat channels can be created and used.
To use the plugin, create a top-level category for a research group and convert it into a workspace. Its subcategories then become channels. The team overview page is the main place to create and manage channels.
If you want ordinary team members to create channels, enable discourse_workspace_groups_members_can_create_channels. If some top-level categories should never become workspaces, add their IDs to discourse_workspace_groups_excluded_top_level_category_ids.
Settings
| Name | Description |
|---|---|
discourse_workspace_groups_enabled |
Enables the plugin and its workspace or channel behavior. |
discourse_workspace_groups_members_can_create_channels |
Allows non-admin members of a workspace to create channels. |
discourse_workspace_groups_excluded_top_level_category_ids |
A list of top-level category IDs that should never be treated as workspace candidates. |