Discourse (software)
Discourse (software)
Main page
622037

Discourse (software)

logo
Community Hub0 subscribers
Read side by side
from Wikipedia
Discourse
DevelopersCivilized Discourse Construction Kit, Inc.
Initial releaseAugust 26, 2014 (11 years ago) (2014-08-26)[1]
Stable release
3.5.2[2] Edit this on Wikidata / 28 October 2025
Repository
Written inRuby, JavaScript
Operating systemLinux
Available inAlbanian, Arabic, Bosnian, Chinese, Czech, Danish, Dutch, English, Estonian, Finnish, French, Galician, German, Greek, Hebrew, Indonesian, Italian, Japanese, Korean, Norwegian, Persian, Polish, Portuguese, Romanian, Russian, Slovak, Spanish, Swedish, Telugu, Turkish, Ukrainian, Urdu, Vietnamese
Type
LicenseGNU GPL version 2 (or later)
Websitewww.discourse.org Edit this at Wikidata

Discourse is an open source Internet forum system released on August 26, 2014. It was founded by Jeff Atwood, Robin Ward, and Sam Saffron.

The client side application is written in EmberJS. The server side is written in Ruby on Rails and backed by a PostgreSQL database and Redis cache. The source code is distributed under the GNU General Public License version 2.

The default homepage features a list of active topics as well as navigation buttons that help users find discussions they're interested in.
The default homepage in Discourse

Features

[edit]

Categorization

[edit]

Similar discussions can be organized under categories. Admins can create categories, add category descriptions and logos, and control access to topics in the category. Discourse provides granular control over read/write permissions.

Discourse also supports sub-categorization or nested categories. Subcategories are categories in themselves so they can be controlled in the same manner as parent categories. The only difference is the parent-child relationship.

Tagging

[edit]

Tags are a lightweight alternative to categories, but they can also be used in conjunction.

Topics

[edit]

Conversations in Discourse are organized into topics. Users are able to create new topics or reply to existing ones. Categories and tags can be assigned to topics which makes them follow the security rules for those if applicable.

A topic consists of the initial post as well as any subsequent replies to it. Replies in Discourse follow a flat chronological order as opposed to being threaded. The Discourse core developers believe that threading replies is detrimental to the health of the overall discussion.[citation needed] Users can interact with each post independently. They can take actions such as reply, like, bookmark, quote or flag for moderation.

Trust levels

[edit]

The user trust system is a "fundamental cornerstone of Discourse".[3] Discourse's trust levels sandbox new users so that they cannot accidentally hurt themselves or other users, while granting experienced users more rights over time so that they can help maintain and moderate the community.

The five trust levels are New, Basic, Member, Regular, and Leader.

As users become more experienced, their trust level is raised, granting more rights and access to more features.

Discourse narrative bot

[edit]

Discobot is a customizable bot that introduces new users to many of the platform's features like bookmarking a topic, embedded link previews ("oneboxing"), emojis, mentions, basic formatting, uploading images, flagging posts, and searching.

Personal messages

[edit]

In addition to public and private topics, users on Discourse have the ability to send personal messages to other members in the community. Users receive notifications for personal messages and can add or remove members to a message at any time. Each user has a personal inbox that contains all of their sent and received messages.

Groups

[edit]

Admins can create groups and add members to them. Groups can be used to manage access to certain categories, and for group mentions and group messages.

When Discourse is installed, it creates automatic groups for administrators, moderators, staff, and the five trust levels. Custom groups can set to either public or private. Users can add themselves to a group or request to be added by the group owners. Users can also be automatically added to a group during signup based on their email address.

Editor

[edit]
The editor in Discourse features supports HTML, Markdown and plain text. It features a preview panel as well as a formatting toolbar.
Discourse Editor (Composer)

Discourse features a rich-text editor (the "composer"). It supports plain text, markdown, and HTML. The composer features a toolbar which includes formatting, quoting, and upload buttons. The preview panel in the composer allows users to see a live preview of the post. It supports drag and drop image and file uploads. The composer supports OpenGraph and oEmbed. URLs from external websites that support those standards will automatically expand to provide a summary of the URL. One of the key features of the composer is its ability to save drafts prior to publishing them.

Certain actions in the composer are triggered based on user input. The "@" character brings up a panel for mentioning other users. The "#" character brings up a similar panel for categories and tags. The composer also features configurable JIT educational panels with the goal of promoting civilized discussion.

Admin interface

[edit]

The administration dashboard's settings section allows control of appearance and behavior of the software, including fields for information about the community.

The dashboard also provides an overview of the health of the community, via charts showing signup numbers and other health metrics.

The localization section allows admins to change any text used in the interface.

User directory

[edit]

The "Users" page in Discourse serves as a leader-board with search functionality. It includes statistics such as posts created, posts read, likes received, and days visited for a given time frame. Users can be sorted according to any of those metrics. Admins can optionally add more metrics.

Plugins

[edit]

Discourse is extendable via plugins. Plugins create the ability to modify both the server and client sides of the application. Some examples of plugins include

  • Discourse Math, which adds support for math rendering.
  • Chat integrations, which integrate Discourse with popular chat platforms.
  • BBCode, which adds support for BBtags.

The Discourse team maintains a list of both official and community contributed plugins on the official support forum.

The Discourse Air theme demonstrates the ability to customize the layout of Discourse.
Discourse Air Theme

Themes

[edit]

The Discourse theme system allows admins to customize the client side application. Themes can modify the layout of pages, add new functionality, and add additional styles to any element in the interface.

API

[edit]

Discourse has a REST API. The developers maintain a getting-started guide on the support forum as well as documentation for the API endpoints.

Security

[edit]

The developers welcome peer audits of the open source code and encourage reporting security issues. They maintain a vulnerability disclosure program at Hacker One.

DiscourseHub

[edit]

DiscourseHub is the official, open source Discourse application for Android and iOS devices. It allows users to keep track of new and unread posts and notifications across multiple Discourse sites. Real-time push notifications are native for officially hosted Discourse forums.

History

[edit]

Co-founder Jeff Atwood announced in 2013 that Civilized Discourse Construction Kit, Inc. had obtained initial venture capital funding from First Round, Greylock, and SV Angel.[4]

In May 2017, he said in an interview that the company was generating approximately $120,000 per month.[5] With the money, the company pays salaries for its full-time employees who maintain the software and develop new features. This is an example of an open source software business model where a company sells professional services to willing customers. As of March 2022, the developers shared that more than 3000 businesses or instances have chosen the official Discourse hosting which CDCK provides as software as a service.

In August 2021, Civilized Discourse Construction Kit announced it had secured US$20 million in Series A Investment by Pace Capital and First Round Capital.

On February 1, 2023, Jeff Atwood stepped down as CEO and assumed the role of Executive Chairman. He was succeeded by Sam Saffron and Sarah Hawk.[6]

Development and support

[edit]

The Discourse project is developed and maintained by the developers at Civilized Discourse Construction Kit, Inc. (CDCK).

See also

[edit]

References

[edit]
[edit]
Revisions and contributorsEdit on WikipediaRead on Wikipedia
from Grokipedia
Discourse is a 100% open-source discussion platform designed for building online communities through forums, mailing lists, and real-time chat, emphasizing meaningful conversations and advanced moderation tools.[1] Developed with a modern, mobile-first interface, it supports features like emoji reactions, media embedding, customizable themes, and an open API for integrations, making it suitable for support sites, team collaboration, and customer engagement.[2] The software is licensed under the GNU General Public License version 2 and is built using Ruby on Rails for the server-side, Ember.js for the client-side, PostgreSQL as the database, and Redis for caching, with deployment typically via Docker containers.[1][3] Founded in 2013 by Jeff Atwood, Robin Ward, and Sam Saffron, Discourse emerged as a response to the limitations of legacy forum software, aiming to elevate online discourse with built-in tools for civility and governance to combat spam and trolling.[4] Atwood, known for co-founding Stack Overflow, served as Executive Chairman; Ward contributed expertise in forum development; and Saffron, a longtime programmer, acted as CEO, with the team growing to over 100 members by 2025.[5] The project was publicly announced on February 5, 2013, as the "Civilized Discourse Construction Kit," with initial development focused on high-resolution displays and advanced web standards.[4] Discourse version 1.0 was released on August 26, 2014, marking the stable launch alongside official hosting services, and has since powered over 36,000 communities worldwide as of 2023 across diverse sectors like education, gaming, and open-source projects.[6] It offers free self-hosting options via a guided installation process completable in under 30 minutes, while hosted plans start at $20 per month for additional support and features like AI-powered plugins for summarization and automation.[1][7] The platform's single, unified codebase on GitHub ensures transparency and community contributions, with regular updatesโ€”such as version 3.5 in 2025โ€”enhancing member management and extensibility.[3][8]

Overview

Description and purpose

Discourse is an open-source Internet forum software designed as a modern alternative to legacy bulletin board systems such as phpBB and vBulletin.[4] It provides a platform for building online communities, emphasizing real-time interaction and structured discussions over traditional threaded forums.[1] The core purpose of Discourse is to foster meaningful discussions, support, and teamwork within various communities, including public forums, internal teams, and customer support sites.[9] By prioritizing civilized discourse, it aims to create engaging environments that encourage participation while minimizing disruptions.[1] Key principles guiding its development include a mobile-first design to ensure accessibility across devices, gamification elements like trust levels to boost user engagement, and structured interactions supported by moderation tools and AI to reduce toxicity.[1] Discourse was initially released on August 26, 2014, as a free, open-source project under the GNU General Public License version 2 (GPL v2).[10][3] It is developed and hosted by Civilized Discourse Construction Kit, Inc., which offers managed services alongside the self-hosted option.[4][5]

Technical foundation

Discourse is built primarily on Ruby on Rails for its backend, which handles the API in a RESTful manner and responds with JSON data.[3] The frontend is powered by Ember.js, enabling a single-page application architecture that facilitates dynamic user interactions without full page reloads.[3] The software relies on PostgreSQL as its primary database for storing structured data such as posts, users, and topics.[3] Redis serves as the caching layer to improve performance by storing frequently accessed data in memory, while Sidekiq manages background jobs like email notifications and scheduled tasks using Redis as its queue backend.[11][3] Discourse employs custom CSS within its Ember.js framework to achieve responsive design, ensuring compatibility across devices including modern browsers (Safari, Chrome, Edge, Firefox), tablets (iPadOS, Android), and smartphones (iOS, Android), with support targeted at iOS 16.7+ for Safari, following the drop of iOS 15 support in July 2025.[3][12] For deployment, Discourse uses a Docker-based installation process for self-hosting, bundling all components into containers for simplified setup on 64-bit Linux systems compatible with Docker.[13] Minimum requirements include a modern single-core CPU (dual-core recommended), 1 GB RAM (with swap enabled), and 10 GB disk space.[14] In 2025, Discourse proposed a new versioning strategy to enhance predictability, featuring monthly releases (e.g., v2026.0, v2026.1) and six-monthly Extended Support Releases (ESR) with overlapping support periods for stability and security updates.[15] This system aligns with semantic versioning principles by structuring versions as major.minor.patch and automating releases via GitHub actions.[15]

Core Features

Discussion structure

Discourse organizes conversations around topics as the fundamental unit of discussion. A topic begins with an original post that initiates the conversation, followed by sequential replies that build upon it, forming a threaded structure where users can quote and respond to specific posts for clarity.[16] This design promotes focused, ongoing dialogues rather than fragmented threads, allowing participants to follow the flow chronologically while linking related replies.[17] Topics are placed within a hierarchical categorization system to facilitate navigation and organization. Categories serve as broad containers for related discussions, with support for subcategories that nest under parent categories, enabling up to three levels of hierarchy via custom server setup.[18] Administrators define categories with permissions controlling visibility and participation, ensuring topics are grouped logicallyโ€”for instance, a main category for "Technology" might include subcategories like "Software" and "Hardware." This structure helps users discover relevant content quickly without overwhelming the interface.[17] Complementing categories, tagging provides flexible, user-driven labeling for enhanced filtering and discovery. Users with appropriate permissions apply tags to topics during creation or editing, selecting from a dynamic chooser that suggests existing options; tags are created on first use and can be limited to specific categories.[19] Features like tag synonyms merge similar labels (e.g., "AI" and "artificial-intelligence") into one canonical tag to maintain consistency, while category settings can enforce required tags or minimum numbers, such as mandating at least one tag from a predefined group.[20][21] Tags enable advanced searching and sorting, allowing users to view all topics under a label like "tutorial" across categories. To encourage participation, Discourse automatically awards badges based on user actions within topics, such as creating the first reply or reaching participation milestones.[22] These badges, visible in user profiles, recognize contributions like consistent posting or helpful replies, with the system granting them via predefined queries without manual intervention. Users receive notifications for earned badges, alongside alerts for topic activity: email summaries for new replies, push notifications via the mobile app for real-time updates, and in-site bells for mentions or watches.[22][23] Notification levels (watching, tracking, normal, muted) can be set per topic, category, or tag, balancing engagement with inbox management. User trust levels further influence posting capabilities, such as the ability to create topics or apply tags, ensuring structured participation.[24]

User engagement tools

Discourse provides several built-in mechanisms for users to interact with and acknowledge content, fostering greater participation in discussions. The likes feature allows users to express agreement or appreciation for a post by clicking a heart icon, which is public and visible on the user's profile; this action notifies the post author and influences post rankings in topic lists based on like counts.[25] Built-in reactions enable administrators to configure multiple emoji options beyond the default heart, permitting users to select from a customizable set of reactions to convey nuanced sentiments without adding new comments.[26] In July 2025, the Reactions feature was bundled into core. Additionally, bookmarks permit users to save specific posts or entire topics for later reference, with bookmarked items appearing in a dedicated /bookmarks page; a bookmark icon highlights saved topics in lists, and recent updates have improved performance for managing large bookmark collections.[27][28] To facilitate referencing and sharing content, Discourse supports inline quoting and media embeds. Users can quote selected text from any post by highlighting it and clicking the quote button (or pressing 'q'), which inserts a formatted excerpt with a link back to the original post, enabling contextual replies without full reproduction.[29] For embeds, the Onebox system automatically generates rich previewsโ€”known as oneboxesโ€”for pasted URLs from supported providers, such as embedded videos from YouTube or images from Imgur, reducing the need for external links and enhancing readability within topics.[30] Search functionality in Discourse is designed for efficient content discovery, offering full-text search across posts, topics, users, and tags via a global search bar. Advanced filters allow precise queries, such as "in:category-name" to limit results to specific categories, "from:username" for user-specific posts, or "hashtag:#tag" for tagged content, with options to sort by recency, relevance, or activity; this supports complex searches like combining terms with quotes for exact phrases.[31] Gamification elements encourage ongoing participation through built-in features that award points (or "karma") for actions such as posting, liking, or replying, and displays leaderboards ranking users by total score. In July 2025, the Gamification plugin was bundled into core. Administrators can customize scoring rules and contests to highlight top contributors, promoting sustained engagement without relying solely on traditional metrics like post count.[26][32]

Communication features

Discourse provides personal messaging functionality that enables private one-on-one or group conversations separate from public discussion topics. Users access their messages through the user menu by clicking the envelope icon or navigating directly to the /my/messages endpoint, where they can view options such as New Message for initiating chats, Inbox for received messages, Sent for outgoing messages, and Archive for organized storage.[33] These messages support direct communication, including the ability to send private messages to email addresses even if the recipient is not yet registered on the site, which can prompt account creation upon response.[34] While suitable for short-term private exchanges, personal messages have limitations, such as automatic closure after reaching the default limit of 500 replies to encourage transitioning to dedicated chat systems for prolonged discussions.[35] Users can directly address others in posts using the @username mention system, which notifies the mentioned individual and highlights their involvement in the conversation. To use it, a user types @ followed by the desired username in a post composer, selecting from an autocomplete list to ensure accuracy, thereby sending an immediate notification visible as a blue indicator on the recipient's profile picture.[36] This feature facilitates targeted engagement within public topics, allowing for quick replies or invitations to contribute without disrupting the broader discussion flow. Notifications from mentions can be managed through user preferences, including options to enable or disable alerts for specific topics, categories, or tags.[36] The platform supports saving drafts of unfinished posts and topics to allow users to resume work later, with enhancements in version 3.4 enabling the storage of multiple drafts accessible directly from the composer menu for seamless continuation across sessions or devices.[37] Scheduling functionality is integrated via topic timers, which permit administrators and users to set draft topics for automatic publication at a specified future date and time, ensuring content appears in the designated category without manual intervention.[38] Multilingual support in Discourse is facilitated through plugins that handle translation and language management, enabling communities to accommodate diverse linguistic needs. The official Discourse Translator plugin integrates with APIs from providers like Google, Microsoft, or Yandex to automatically translate individual posts on demand, with server-side caching to optimize performance and a configurable rate limit of up to three translations per minute.[39] Complementing this, the Multilingual plugin provides administrative tools for defining site languages, filtering content by language tags, and translating static elements such as category names and tags, while supporting guest users with a language switcher in the footer or menu.[40] It also manages interface locales, including right-to-left text direction for languages like Arabic and Hebrew, ensuring proper rendering and user experience across global audiences.[40]

User Management

Trust levels and moderation

Discourse implements a tiered trust level system to progressively grant permissions to users based on their demonstrated activity and behavior, helping to protect communities from abuse while encouraging participation. There are four primary trust levels, ranging from 0 to 3, which are automatically assigned based on user engagement metrics, with a fifth level (4) reserved for manual promotion by staff. This system sandboxes new users with restrictions to prevent accidental or malicious disruptions, gradually unlocking features as users contribute positively. Trust levels are tied to implicit groups (e.g., trust_level_0), allowing administrators to customize permissions further.[41] Trust Level 0, for new users, imposes strict limits such as no private messages, no flagging, a maximum of one image or two hyperlinks per post, and no edits after 24 hours, to mitigate spam risks during onboarding. Progression to Trust Level 1 requires entering at least five topics, reading 30 posts, and spending a total of 10 minutes reading posts. At Trust Level 1, users gain basic privileges like sending private messages, uploading attachments, editing wiki posts, and flagging content. To reach Trust Level 2 (Member), users must visit on 15 different days, give and receive one like, reply to three topics, enter at least 20 topics, read 100 posts, and spend 60 minutes reading. This level allows inviting others to topics or private messages, ignoring users, and editing own posts for up to 30 days, with 1.5 times the standard daily posting limits. Trust Level 3 (Regular) is achieved over the last 100 days by visiting on 50% of days, replying to 10 topics, viewing 25% of topics (capped at 500), reading 25% of posts (capped at 20,000), receiving 20 likes, giving 30 diverse likes, receiving fewer than five spam flags, and avoiding suspensions; demotion is possible with a two-week grace period if criteria lapse. Regulars can recategorize or rename topics, access secure categories, edit wiki posts, and benefit from 2 times the daily limits, with their flags potentially auto-hiding or silencing Trust Level 0 posts. Trust Level 4 (Leader) provides moderator-like abilities, including editing any post, pinning or closing topics, splitting or merging posts, 3 times the daily limits, and immediate flag effects, but requires manual staff promotion.[41][42] Moderation in Discourse relies on community-driven tools and staff actions to enforce standards. Users at Trust Level 1 or higher can flag posts for issues like spam, off-topic content, or inappropriate material, adding them to a review queue for staff review. Single flags allow moderators to agree, disagree, ignore, hide the post, silence the user, suspend them, or delete the content; multiple flags (e.g., three from Trust Level 1 users or two from Trust Level 2) automatically hide the post. Hidden posts prompt the author via private message to edit and unhide; unedited posts are deleted after 30 days. Moderators can also edit posts directly (unhiding if flagged), move posts to appropriate topics, or delete them outright, with topics auto-closing for four hours if five unique users flag multiple posts within it. For persistent spammers, a shadowban plugin enables invisible restrictions, blocking their posts and notifications from public view without alerting the user, facilitating quiet removal of abusive accounts.[43][44] Automated moderation supplements manual efforts through built-in safeguards. Rate limiting applies globally per IP address, capping requests at 200 per minute and 50 per 10 seconds by default, with asset requests limited to 200 per 10 seconds; users at Trust Level 1 or higher shift to per-user limits to avoid over-restricting engaged members. Spam detection integrates with external services like Akismet for machine learning-based filtering of comments and posts, though recent updates have shifted to Discourse AI for default spam flagging with high accuracy and minimal configuration. These tools collectively reduce manual intervention for low-level abuse while scaling with community size.[45][46] Administrators can enhance visual hierarchy by assigning custom user titles and roles tied to trust levels, such as renaming "New User" to "Newbie" or "Regular" to "Veteran," which appear in user profiles and posts. These customizations, configurable via site settings, create a clear progression ladder, fostering recognition of contributions without altering core permissions. Badges and group memberships can further denote roles, but trust levels provide the foundational structure for such assignments.[47]

Groups and personal messages

In Discourse, administrators create groups through the admin interface to organize users into collectives with tailored access controls. These groups allow for defining custom permissions, such as read, reply, or create access within specific categories, enabling fine-grained management of site features. Visibility settings determine whether a group is public, logged-in only, or private, with private groups hidden from non-members unless explicitly mentioned via @groupname in posts. Auto-membership rules can be configured based on criteria like email domains or trust levels, automatically adding qualifying users to streamline onboarding for teams or departments.[48][49][50] Groups support private topics by integrating with category permissions, where discussions can be restricted to group members only, displaying a padlock icon to indicate limited access. These private topics function as standard threads but remain invisible to outsiders, fostering secure collaboration for internal teams or support staff without exposing content to the broader community. For instance, a "staff" group might have exclusive read and write access to a dedicated category for sensitive matters.[48][49] Personal messages in Discourse are organized as threaded conversations, mimicking the structure of public topics for coherent exchanges between individuals or groups. Users initiate PMs via the messaging interface, accessible from the user menu, and can address entire groups by using @groupname, ensuring all members receive notifications and participate in the thread. Features include an inbox for received messages, a sent folder, and archiving options to manage conversations efficiently; while read receipts are available in associated chat functionalities, standard PMs rely on notification indicators for tracking engagement.[33][51][52] Email integration enhances group functionality through group inboxes, where incoming emails to a designated address (e.g., [email protected]) are automatically converted into private group messages, complete with threaded replies. This setup supports invite workflows, allowing admins to send group invitations via email that prompt users to join and receive tailored notifications. Group-specific notifications ensure members are alerted to new messages or mentions, with options for email digests to maintain engagement outside the platform.[53][54][55]

User directory

The user directory in Discourse provides a centralized way for community members to discover and explore individual profiles, fostering connections within the forum. Accessible via the "/u" endpoint, it displays a paginated list of registered users, emphasizing active participants through sortable columns such as username, join date, post count, and trust level indicators.[56][57] Profile pages serve as customizable personal hubs, allowing users to showcase their identity and contributions. Standard elements include an avatar for visual representation, a bio section (often labeled "About Me") for a short personal description, and fields for location and website links, which can connect to external social accounts or portfolios. Administrators can enable custom user fieldsโ€”such as interests, expertise, or pronounsโ€”that appear on these pages if configured for public visibility, enabling users to tailor their profiles beyond defaults during signup or via preferences.[58][59] The directory supports targeted discovery through a search bar that filters users by username or searchable custom fields, such as location or specific attributes like skills. Users can further refine results by sorting columns (e.g., by join date or activity metrics) or applying basic filters, including by trust level to highlight engaged members. Columns are configurable by site administrators to include or exclude details like custom fields for a tailored view.[60][56][57] Privacy controls empower users to manage their visibility, with an option in preferences to "Hide my public profile and presence features," which conceals the full profile from anonymous viewers and other users while still allowing participation in discussions. Site-wide settings can disable public access to all profiles, restricting them to logged-in members only, though basic stats may remain in the directory unless deactivated. These features balance community transparency with individual autonomy.[61][62][63] Activity streams on profile pages offer detailed views of a user's engagement, organized under tabs like "Activity" with subsections for posts, replies, likes given or received, and topics created. These streams provide chronological summaries of contributions, helping visitors assess a user's involvement without navigating the full forum archive. Custom fields or plugins can extend these views, but core functionality focuses on post-based metrics for straightforward evaluation.[64][65]

Customization and Extensibility

Composer and interface

The Composer in Discourse is a Markdown-based text editor designed for creating and editing posts, replies, and other content within the platform. It supports standard Markdown syntax for formatting elements such as bold text (bold), italics (italics), headings, lists, links, and code blocks, allowing users to write in a lightweight, familiar markup language. A key feature is the real-time preview, which provides a WYSIWYG (What You See Is What You Get) rendering of the content as it is typed, enabling immediate visualization of changes without needing to save or switch tabs. This dual-mode approachโ€”combining Markdown input with live HTML outputโ€”enhances usability for both technical users accustomed to raw markup and those preferring visual editing, and it is built on the ProseMirror framework with custom enhancements for Discourse-specific needs.[66] The Composer's toolbar streamlines content creation by offering intuitive icons and buttons for common actions, including text formatting (e.g., bold, italic, underline), inserting links with options to edit, copy, add titles, or remove them, and embedding images with resizing, captioning, and deletion capabilities. Users can upload files, images, and videos directly into posts, with automatic handling for drag-and-drop operations and inline previews. Additionally, the toolbar includes tools for creating polls, where administrators can configure options like multiple choices and display settings, though editing existing polls remains an area of ongoing refinement. Keyboard shortcuts further accelerate these processes, such as Command + B (or Ctrl + B on Windows/Linux) for bold text, Command + I for italics, and Command + K for links, with a full list accessible by pressing Shift + ? to open the shortcuts menu.[66][67] Discourse's overall user interface incorporates elements like infinite scrolling on topic lists, where additional discussions load automatically as users reach the bottom of the page, reducing the need for manual pagination and improving navigation on long feeds. This is particularly useful for browsing categories or search results, though it can be customized through plugins or theme components to implement alternatives like pagination or load more buttons. The platform also supports dark mode, which can be enabled automatically based on the user's device preferences (e.g., via the prefers-color-scheme media query), providing a low-light theme to reduce eye strain during extended use; users can toggle between light and dark schemes manually through the user menu. Accessibility is prioritized with screen reader compatibility, including proper ARIA labels for interactive elements like avatars and buttons to ensure navigation via tools such as NVDA or VoiceOver, and high-contrast color scheme options that meet WCAG guidelines for better visibility.[68][69][70][71] As a legacy feature that has evolved into broader modern onboarding experiences, the Narrative Bot (also known as Discobot) automates welcome messages for new users by sending a private message upon registration, introducing platform basics and offering an optional guided tour. This interactive tutorial prompts users to perform simple actions like posting a reply or liking content, rewarding completion with badges to encourage engagement, though it can be disabled or customized via site settings to align with community-specific introductions.[72][73]

Plugins and themes

Discourse provides a robust plugin system that allows administrators to extend the platform's core functionality with additional features, primarily through Ruby on Rails-based extensions integrated with JavaScript for client-side enhancements. Plugins can introduce capabilities such as calendar integrations for event scheduling or single sign-on (SSO) mechanisms to streamline user authentication. Official plugins, like those supporting OAuth providers, are developed and maintained by the Discourse team to ensure compatibility and security with the latest releases.[74] Community-contributed plugins, hosted on GitHub, enable further customization, such as advanced notification systems or content embedding tools, and are reviewed for inclusion in the official repository when they meet quality standards. Development of plugins involves creating a gem structure with initializer files in Ruby to hook into Discourse's Rails application, allowing modifications to models, controllers, and views without altering the core codebase.[75] Themes and theme components offer a way to stylize and enhance the user interface using CSS, JavaScript, and HTML templates, uploaded directly through the admin panel for seamless integration. Theme components are modular elements, such as custom headers or font switchers, that can be reused across multiple themes, while full themes apply broader visual overhauls like color schemes or layout adjustments. These customizations support dynamic elements through seed data in YAML format, which populates settings like theme variables for responsive design or user preferences. In 2024 and 2025, Discourse migrated several UI components to Glimmer-based implementations, improving extensibility but necessitating updates to existing themes and plugins for ongoing compatibility.[76][77][78][79] Installation of plugins on self-hosted instances requires editing the app.yml configuration file to include Git repository URLs under the hooks:after_code section, followed by rebuilding the Docker container with ./launcher rebuild app to apply changes. Themes, in contrast, are installed via the admin interface at /admin/customize/themes, where administrators can upload a theme archive from their device or import directly from a GitHub repository URL, with automatic updates available for linked repos. This process ensures themes remain synchronized without manual intervention.[80][81] Core plugins are actively maintained by the Discourse team to align with platform updates, while community contributions on GitHub undergo compatibility checks to prevent conflicts with Discourse's Ember.js frontend or Rails backend. Administrators must verify plugin and theme versions against the current Discourse release to maintain stability, as mismatches can lead to deprecated features or errors.

API and integrations

Discourse provides a comprehensive RESTful API that enables developers to interact programmatically with core elements of the platform, including topics, users, and posts. The API returns data in JSON format and supports standard HTTP methods such as GET, POST, PUT, and DELETE, with endpoints accessible by appending .json to URLs or specifying the Accept: application/json header in requests. Authentication is handled via API keys, which are generated in the admin panel and passed in HTTP headers as Api-Key and Api-Username (often set to "system" for administrative actions), ensuring secure access without embedding credentials in URLs.[82] Key endpoints include those for managing topics, such as POST /topics to create a new topic, GET /t/:id.json to retrieve topic details, and PUT /t/:id to update topic attributes; for users, POST /users creates accounts, GET /u/:username.json fetches user profiles, and PUT /u/:username modifies user information; and for posts, POST /posts adds new posts, GET /posts/:id.json retrieves post content, and PUT /posts/:id edits existing posts. These endpoints mirror the platform's web interface functionality, allowing external applications to read, create, and modify content while respecting permissions and rate limits.[82] Webhooks in Discourse facilitate event-driven integrations by sending HTTP POST requests to external URLs upon specific platform events, such as user registrations, post creations, or topic updates, providing real-time notifications without constant polling. Configured through the admin interface under Settings > API > Webhooks, they include a payload in JSON format detailing the event data and are secured with HMAC-SHA256 signatures for verification. This mechanism supports seamless connections to services like Slack for notifications or Zapier for workflow automation, reducing the need for custom polling scripts.[83] Official integrations include single sign-on (SSO) capabilities via DiscourseConnect, which outsources user authentication to external providers, and supports OAuth2 with Google for streamlined login using Google accounts. Additionally, Discourse offers built-in email importers to migrate content from legacy forum software, such as PHPBB, vBulletin, or Vanilla, by processing email archives or database exports to recreate topics, posts, and user data during site setup. These importers are accessible via Ruby scripts in the platform's codebase and are often used in conjunction with professional migration services for larger transitions.[84][85][86] Data export features allow administrators and users to generate backups and extracts in JSON or CSV formats for archival, analytical, or migration purposes. Site-wide backups, initiated via the /admin/backups endpoint or admin dashboard, produce downloadable JSON files containing full database snapshots, while users can request personal data exports in CSV through their preferences page, including posts, topics, and profile information. The Data Explorer plugin further enables custom SQL queries with exports limited to 10,000 rows in JSON or CSV, supporting programmatic data retrieval for external analysis.[82][87]

Administration

Admin interface

The admin interface of Discourse is accessible via the /admin URL path and is exclusively available to users with administrator privileges, providing a centralized dashboard for managing site operations, configurations, and monitoring. Introduced with a redesigned sidebar navigation in December 2023, the interface replaces the previous top navigation bar and organizes tools into contextual sections such as Dashboard, Customize, Users, and Logs, allowing administrators to toggle visibility and access features efficiently. This layout emphasizes usability for site owners, enabling quick navigation to essential administrative tasks without requiring command-line access for most operations.[88][89] The dashboard offers an overview of key site metrics, including statistics on user signups, active users, new topics created, topics without responses, total visits, mobile visits, and pageviews differentiated by logged-in users, anonymous visitors, and crawlers. Administrators can view reports on daily active users (DAU), monthly active users (MAU), trust level progression, and email delivery metrics such as sent, skipped, or bounced messages. These reports are generated from underlying SQL queries accessible via the Data Explorer plugin and can be extended by plugins using the add_report method, with customizable time ranges and filters to focus on trends like user growth or engagement. While not featuring fully draggable widgets, the dashboard supports prioritization of reports through site settings, allowing admins to highlight critical metrics for ongoing monitoring.[90][89] Site settings form a core component of the admin interface, accessible under the Customize section, where administrators configure global parameters such as email server details (SMTP settings for outgoing mail), login methods (including single sign-on, OAuth providers like Google or GitHub, and local authentication), and rate limiting to prevent abuse (e.g., limits on posts per minute or daily signups). These settings are grouped into categories like Basic, Email, Login, and Security, with search functionality to locate specific options quickly; changes take effect immediately upon saving, and a JSON export/import feature allows for backups or migrations. As of Discourse 3.5 (August 2025), bulk saving enables editing and saving multiple settings in a single action, with a banner indicating the number of modifications. Hidden site settings, for advanced tweaks not visible in the standard interface, require Rails console access but are documented for self-hosted instances.[89][91][92] Additionally, Discourse 3.5 introduced a comprehensive admin search, allowing unified querying across pages, settings, themes, components, and reports from the sidebar's 'Search' link or via keyboard shortcuts (Ctrl+/ or Cmd+/).[92][93] User management tools within the admin interface enable administrators to oversee individual or groups of users through the Users section, supporting bulk actions such as selecting multiple accounts for suspension, deletion, or notification level adjustments directly from the users list view. Features include searching users by name, email, or activity, viewing profiles with notes and activity histories, and assigning roles like moderator or admin with confirmation prompts to prevent errors. Category management, found under the Categories tab, allows creation, editing, and ordering of discussion categories, with bulk operations for permissions (e.g., setting read-only access) and embedding configurations such as enabling external embeds from YouTube or Twitter via site-wide toggles in the embedding settings. These tools facilitate scalable oversight, with options to export user lists as CSV for further analysis.[94][95][96] Logging and reports provide audit trails and performance insights across dedicated tabs in the Logs section, tracking staff actions like user promotions, post edits, or flag resolutions with timestamps, actors, and subjects for accountability. Email logs detail delivery status, including rejects and bounces, while search logs record query patterns to optimize indexing and detect overuse. Performance metrics, such as response times and error rates, are available via the dashboard reports, with full Rails logs accessible for self-hosted sites through server-side tools. These features ensure comprehensive monitoring, helping administrators identify issues like spam patterns or engagement drops without external analytics integrations.[97][98][90]

Security features

Discourse provides robust authentication mechanisms to protect user accounts from unauthorized access. It supports two-factor authentication (2FA) using time-based one-time passwords (TOTP) generated by authenticator apps such as Google Authenticator, which users can enable directly in their preferences without requiring administrative intervention.[2] Administrators can enforce 2FA for staff members via site settings to enhance overall security.[99] For brute-force attack prevention, Discourse integrates rate limiting and IP-based blocking through its underlying Ruby on Rails framework and recommended reverse proxies like HAProxy or nginx, which mitigate distributed denial-of-service (DDoS) attempts and repeated failed login attempts.[100] Secure login audits are facilitated by the admin dashboard, where administrators can review user login history, including IP addresses and timestamps, to detect suspicious activity.[101] Content security in Discourse emphasizes protection against common web vulnerabilities. Cross-site request forgery (CSRF) attacks are prevented through Rails' built-in token validation, which requires unique tokens for all non-GET requests to ensure authenticity.[100] Cross-site scripting (XSS) is mitigated via server-side sanitization using the Sanitize gem for all user-generated content and client-side filtering with xss.js during previews, complemented by Content Security Policy (CSP) enabled by default since version 2.2 to restrict script execution from untrusted sources.[100] For external media, Discourse employs an image proxy that rewrites URLs to route images through its own server, preventing direct tracking by third-party hosts, blocking malicious payloads, and enforcing secure loading without exposing user data.[102] Privacy compliance features in Discourse align with regulations like the General Data Protection Regulation (GDPR) by providing tools for data subject rights. Users can request a personal data export through the admin interface, generating an archive that includes posts, private messages, and profile information in a downloadable format.[103] Administrators handle deletion requests by anonymizing or fully removing user accounts, including associated content, while site settings allow configuration for consent management and data retention policies to support compliance.[104] These built-in capabilities, such as the user archive feature extended for legal purposes, enable operators to fulfill right-to-be-forgotten obligations without external plugins in many cases.[105] Vulnerability handling in Discourse follows open-source best practices with proactive patching and community involvement. The development team issues regular security updates, including urgent releases for critical issues, and encourages reporting through their HackerOne bug bounty program, where vulnerabilities are assessed and rewarded based on impact.[106] Known vulnerabilities are tracked as Common Vulnerabilities and Exposures (CVEs), with fixes committed to the GitHub repository under prefixed "SECURITY" labels for transparency and easy identification.[100] For instance, critical remote code execution flaws, such as CVE-2021-41163, receive immediate patches distributed via official upgrade channels.[107] This process ensures that instances remain secure when maintained up to date, often integrating with trust level restrictions to limit exposure from low-trust users.[101]

Backup and maintenance

Discourse provides robust tools for automated backups to ensure data preservation, primarily focusing on daily database dumps. Administrators can configure automatic backups through the admin dashboard under Settings > Backups, where the frequency is set to daily by default. These backups are generated using Rake tasks, such as rake backups:create, which exports the PostgreSQL database into a tarred archive including schema and data.[108] The resulting files can be stored locally within the Docker container's /shared/backups directory or automatically uploaded to Amazon S3-compatible storage for redundancy and off-site accessibility, reducing the risk of data loss from hardware failures.[108] Restoration from these backups is supported via the admin interface or command-line Rake tasks like rake backups:restore, allowing selective recovery to any compatible Discourse instance.[109] The update process for Discourse emphasizes a streamlined workflow using Git for code pulls and automated migrations for database changes. To upgrade to a new version, administrators navigate to the /var/discourse directory and execute git pull origin main to fetch the latest code from the official repository, followed by ./launcher rebuild app to rebuild the Docker container and apply any pending Rails migrations via rake db:migrate.[110] This process ensures schema compatibility without manual intervention, though it requires a brief downtime during the rebuild phase, typically lasting 1-5 minutes depending on server resources.[110] For major releases, Discourse recommends testing updates on a staging environment first to verify plugin compatibility and migration success. Performance tuning in Discourse involves optimizing caching layers and database configurations to handle high traffic efficiently. The platform leverages Redis as a primary cache for transient data, sessions, and job queues, with built-in strategies like fragment caching for topic views and full-page caching for guest users to minimize database hits.[111] Database optimization guides recommend tuning PostgreSQL parameters in the app.yml configuration, such as setting db_shared_buffers to 25% of available RAM (e.g., 1GB on a 4GB server) and enabling db_work_mem at 4-40MB per operation to accelerate query sorting and joins.[111] Additionally, Unicorn worker processes are auto-scaled based on RAM, with 1-2GB allocated per worker to balance concurrency and memory usage, preventing out-of-memory errors on scaled deployments. Troubleshooting common issues in Discourse relies on built-in diagnostics accessible via the admin dashboard and command-line tools. For slow queries, administrators can enable the Database Log in the admin interface to monitor execution times and identify bottlenecks, such as unindexed joins or large table scans, often resolved by running ANALYZE or VACUUM on affected tables.[112] The ./discourse-doctor script provides automated checks for configuration errors, resource limits, and connectivity issues, outputting actionable recommendations like adjusting swap space or verifying Docker health.[113] These tools facilitate rapid resolution of performance degradation without external dependencies, with logs rotatable via logrotate for sustained monitoring.

Advanced Features

Chat integration

Discourse provides built-in real-time chat functionality embedded within its forum platform, enabling users to engage in informal, immediate conversations alongside structured discussions.[114] This integration allows communities to maintain a single platform for both long-form topics and short-form exchanges, fostering relationships without needing external tools.[2] Chat channels in Discourse support threaded rooms that can be tied directly to specific forum topics for contextual follow-up or created as standalone spaces for general interaction; these include public channels, private group chats, and direct messages (DMs).[114] Users can mention others using @handles to notify participants and add reactions via emoji to express quick feedback, enhancing expressiveness in conversations.[114] Threads within channels organize replies for better clarity, allowing users to follow or participate in sub-discussions.[115] Moderation in chat overlaps with forum controls, where user trust levels determine permissions such as posting, editing, or accessing channels; higher trust levels (e.g., TL3 and above) enable advanced actions like editing others' messages.[42] Moderators and trusted users can delete individual messages or bulk-delete multiple ones, while flagging options allow reporting inappropriate content for review, similar to topic posts.[116] These tools help maintain community standards by reducing spam and off-topic noise.[114] Notifications are seamlessly integrated, delivering push alerts for direct messages in chat to keep users informed across devices.[114] Personal messages, handled as DMs within the chat system, support these alerts and can reference group interactions briefly.[117] Version 3.2, released in January 2024, introduced key enhancements to chat usability, including easier access to threads via improved navigation, a grace period for editing messages post-send, and warnings for global mentions like @all or @here to prevent overuse.[118] It also enabled adding groups to DMs for broader participation.[117] In November 2025, Discourse further improved chat with dedicated search functionality, allowing users to query past conversations within channels, group chats, and DMs for better retrieval.[119] These updates, building on core syncing mechanisms, enhance overall efficiency without relying on external AI for basic operations.[120]

AI capabilities

Discourse AI was launched in April 2023 as a suite of artificial intelligence tools designed to automate and enhance community management and user interactions within the platform.[121] Key initial features include summarization of long topics and chat channels, enabling users to quickly grasp overviews of extended discussions without reading every post.[121] The AI Helper module provides reply suggestions by assisting with post composition, such as generating drafts, proofreading, and optimizing content for clarity and engagement.[122] Additionally, spam detection capabilities use machine learning to identify and flag unwanted posts with high accuracy, often exceeding 99% in controlled tests, reducing manual moderation efforts.[123] In version 3.2, released and completed by early 2024 with ongoing refinements through 2025, Discourse expanded its AI functionalities to include powered search refinements via semantic analysis, which understands query intent to surface relevant topics and answers more effectively than traditional keyword matching.[120] Content moderation assists were enhanced with tools like the AI Post Classifier for automated tagging of posts based on sentiment and toxicity, along with periodic AI-generated summary reports to track community trends and flag potential issues proactively.[120] These updates integrate with broader AI modules, such as sentiment analysis for monitoring emotional tones in discussions.[123] In version 3.5, released in August 2025, Discourse introduced AI-powered automatic translations, enabling multilingual content localization with user-selectable languages and admin review options to improve global community engagement.[8] Access to Discourse AI is available as a premium add-on for self-hosted instances, requiring integration with external large language models (LLMs) like those from OpenAI or Anthropic, while hosted enterprise plans include it by default upon request.[124] Administrators can select open-weight LLMs to support customization and reduce dependency on proprietary providers.[123] Ethical considerations in Discourse AI emphasize privacy and fairness, with policies ensuring user data is not used to train external models, thereby mitigating risks of data leakage or unintended bias amplification from training datasets.[123] Bias mitigation is addressed through configurable model choices and prompt engineering, allowing admins to tailor AI behaviors to minimize discriminatory outputs in features like content moderation.[125] Users and site owners have opt-out options, including disabling specific AI modules site-wide or per-user via admin settings, to respect individual preferences for AI-assisted interactions.[124]

Mobile and DiscourseHub

Discourse employs a responsive web design that adapts seamlessly to different screen sizes, delivering full functionality on mobile browsers without requiring dedicated native applications. This mobile-first approach ensures that users can browse topics, post replies, and engage in discussions on smartphones and tablets using standard web browsers like Chrome or Safari, maintaining the same core experience as on desktop. The design prioritizes touch-friendly interfaces and optimized loading times to support on-the-go access.[126] For enhanced mobile experiences, Discourse offers DiscourseHub, the official open-source native application available for both iOS and Android devices. Initially released in 2016 and significantly updated post-2018, DiscourseHub provides features such as real-time push notifications for new messages, replies, and mentions on officially hosted forums, as well as offline reading capabilities to allow users to access saved discussions without an internet connection. The app supports multiple forum management, instant posting, and integration with device-specific features like home screen widgets for quick glances at unread content.[127][128][129] Android users benefit from DiscourseHub's native support alongside the platform's progressive web app (PWA) functionality, which enables installation directly from compatible browsers like Chrome, offering app-like behavior including push notifications and offline access without downloading from the Play Store. Third-party wrappers can further customize the experience for specific forums, though the official PWA and app cover most needs.[130][131] In 2025, with version 3.4 released in February, DiscourseHub saw improvements including a Discover tab featuring over 700 communities for exploration, quick access to hot topics and chat on the home screen, enhanced mobile navigation and menus, and more reliable push notifications for chat.[37] Mobile chat integration is accessible via the app, complementing the platform's broader communication tools.[127]

History

Founding and early development

Discourse was founded by software developers Jeff Atwood, Robin Ward, and Sam Saffron, who began collaborating in 2012 to address the stagnation in online forum software. Atwood, known for co-creating Stack Overflow, grew frustrated with the outdated interfaces and poor user experiences of existing platforms like phpBB and vBulletin, which had seen little innovation despite the rise of modern web technologies. Ward, a creator of the satirical game Forumwarz, and Saffron, a former Stack Exchange engineer, joined Atwood after connecting through online communities such as Something Awful, sharing a vision to build a responsive, mobile-first discussion platform that encouraged civilized interaction.[132][133] Early development focused on prototyping a next-generation forum using Ruby on Rails and Ember.js, with an initial proof-of-concept demo unveiled in November 2012. The team secured seed funding from investors including First Round Capital, Greylock Partners, and SV Angel by late 2012, enabling full-time work on the project. Additional developers like Neil Lalonde joined in December 2012, followed by intern Nick Sahler in January 2013, as the group iterated on core features such as real-time updates and infinite scrolling to replace traditional threaded discussions.[134][132] The beta version, 0.8.0.0, launched publicly on February 5, 2013, marking the project's transition from alpha testing among peers to broader availability. This release emphasized mobile responsiveness and user-friendly moderation tools, aiming to serve as a modern alternative to legacy forum software. Concurrently, the founders incorporated Civilized Discourse Construction Kit, Inc. in 2013 to handle hosted instances and sustain development through enterprise services.[4][135][136]

Major version releases

Discourse's major version releases have maintained a cadence of roughly annual updates since its stable debut, with each cycle incorporating beta testing to refine features and ensure reliability.[137] Version 1.0 marked the stable public release on August 26, 2014, delivering core forum features such as topic-based discussions, infinite scrolling, user likes and badges, and category organization, transitioning the platform from beta to production-ready status.[138] In May 2018, version 2.0 launched with a completely redesigned admin dashboard for streamlined site management and an expanded plugin ecosystem that facilitated greater customization through third-party integrations.[139] Version 2.8, released on January 27, 2022, adopted codenames inspired by historical computing figuresโ€”such as ENIAC for this releaseโ€”and introduced improvements to the flagging system, including faster handling of moderator actions like keyboard shortcuts for flag acceptance and more frequent reminders for pending user reviews.[140] Version 3.0 was released on January 11, 2023, introducing enhancements to user profiles, improved search functionality, and better support for multilingual communities. Version 3.2 entered beta testing in September 2023, with its full release on January 30, 2024; this update emphasized chat integrations for real-time communication, AI capabilities like sentiment analysis and automated post classification, and refinements to the internal versioning system for better update management.[141][120] Version 3.3, released on July 30, 2024, focused on improving community discoverability with enhanced search and recommendation tools, alongside updates to signup processes, bookmarks, reminders, chat features, and mobile interface.[28] Version 3.4, released on February 4, 2025, brought a more consistent admin experience, simplified signup and login flows, mobile app improvements, and AI-powered tools for spam detection and content moderation.[37] Version 3.5, released on August 19, 2025, introduced a new visual composer for easier content creation, a refreshed core theme with improved color management, and automatic content translation features.[8]

Development and Support

Open-source community

Discourse's open-source community thrives through collaborative efforts on its primary GitHub repository at github.com/discourse/discourse, which has received contributions from nearly 1,000 individuals since its inception, with ongoing oversight by a dedicated core team of original developers and maintainers.[3] This team, listed in the project's AUTHORS.md file, guides the repository's evolution, ensuring alignment with the platform's mission of fostering high-quality, user-centric discussion software.[142] The repository operates under the GNU General Public License v2.0, promoting transparency and encouraging public participation in its development.[3] Contributions follow structured guidelines detailed in CONTRIBUTING.md, where potential collaborators are required to sign an Electronic Contributor License Agreement (CLA) before submitting pull requests for bug fixes, feature enhancements, or documentation improvements.[143] The process emphasizes code preparation, testing, and peer review to maintain codebase integrity, with bugs reported via dedicated issue templates and feature requests discussed in advance to gauge interest and feasibility.[144] Community discussions, vital for governance and idea-sharing, primarily occur on the official Meta forum at meta.discourse.org, serving as a hub for feedback, proposals, and collaborative decision-making on project priorities.[145] Beyond core development, the ecosystem supports extensibility through community pluginsโ€”unofficial extensions that add custom functionalityโ€”tracked in a dedicated meta repository at github.com/discourse/all-the-plugins.[146] This repository compiles links to hundreds of third-party plugins, facilitating discovery, maintenance, and migration during core updates, with contributions accepted via pull requests to update the plugin inventory.[146] In 2025, several popular plugins were integrated into the core codebase to simplify installation and ensure ongoing compatibility.[26] These activities, coordinated through Meta, reinforce the project's volunteer-driven nature and innovation.[145]

Hosting and enterprise options

Discourse offers users the flexibility to deploy the software through self-hosting or managed hosting services provided by the official team. Self-hosting is a free option that requires technical expertise, utilizing Docker containers on a virtual private server (VPS) such as those from DigitalOcean or Linode. The official installation guide recommends a 64-bit Linux server with 1 GB of RAM minimum (with swap; 2 GB or more recommended), SSH access, and Docker installed, followed by cloning the Discourse repository and configuring environment variables via a YAML file for email and domain setup. Community-maintained guides on the Discourse Meta forum provide step-by-step instructions for common VPS providers, emphasizing automated updates through Docker pulls to maintain security and features.[147] For those preferring managed solutions, Discourse provides official hosting plans starting with the Starter tier at $20 per month, which includes basic site hosting, daily backups, and up to 500,000 monthly page views.[148] The Pro plan, priced at $100 per month, supports up to 500,000 monthly page views with enhanced scaling, automated backups retained for 30 days, and access to premium themes and plugins.[148] Higher tiers like Business at $500 per month offer 500,000 monthly page views, priority support, and advanced monitoring, while all plans include automatic updates and SSL certificates.[148] Enterprise plans feature custom pricing with 1,000,000+ monthly page views, custom service level agreements (SLAs) guaranteeing 99.9% uptime, dedicated account managers, and tailored infrastructure scaling for high-traffic sites.[148][149] Enterprise customers have access to advanced integrations, such as custom plugin development and bespoke API extensions, alongside comprehensive support for compliance standards like GDPR.[149] Discourse AI capabilities, including automated moderation, spam detection, and content translation, are available across all plans with tiered limits (e.g., number of translations).[148] Migration to Discourse is facilitated by built-in importer scripts supporting various legacy platforms, including around a dozen such as phpBB, vBulletin, and Discourse-to-Discourse upgrades, which preserve users, posts, and attachments during transfer. For hosted plans, the official team provides assisted migrations, involving data export from source systems and import validation, often requiring one year of prepaid hosting.[86] These tools ensure minimal downtime, with community scripts available for custom scenarios like bulk CSV imports.[150]

References

User Avatar
No comments yet.