# Documentation

**URL:** https://meta.discourse.org/c/documentation/10.md?page=15

[Latest](https://meta.discourse.org/latest.md) · [Categories](https://meta.discourse.org/categories.md) · [Tags](https://meta.discourse.org/tags.md)

**Page:** 16

---

## [Deleting a category](https://meta.discourse.org/t/deleting-a-category/107854)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 0\
**Last updated:** [January 29, 2019, 6:36pm UTC](https://meta.discourse.org/t/deleting-a-category/107854 "2019-01-29T18:36:14Z")

</div>

:bookmark: This guide explains how to delete a category in Discourse, including the necessary steps to move or delete topics within the category and handle special cases like the “Uncategorized” category. …

---

## [Using Safe Mode to troubleshoot issues with themes and plugins](https://meta.discourse.org/t/using-safe-mode-to-troubleshoot-issues-with-themes-and-plugins/53504)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 8\
**Last updated:** [February 8, 2024, 12:14pm UTC](https://meta.discourse.org/t/using-safe-mode-to-troubleshoot-issues-with-themes-and-plugins/53504 "2024-02-08T12:14:59Z")

</div>

:bookmark: This guide explains how to use Discourse’s Safe Mode to troubleshoot issues with themes and plugins. :person\_raising\_hand: Required user level: All users Discourse offers a “JavaScript Safe Mode” that allo…

---

## [Sync DiscourseConnect user data with the sync\_sso route](https://meta.discourse.org/t/sync-discourseconnect-user-data-with-the-sync-sso-route/84398)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 1\
**Last updated:** [May 7, 2024, 6:26am UTC](https://meta.discourse.org/t/sync-discourseconnect-user-data-with-the-sync-sso-route/84398 "2024-05-07T06:26:16Z")

</div>

Single Sign On can be used to handle Discourse user authentication from a separate site. The Setup DiscourseConnect - Official Single-Sign-On for Discourse (sso) topic has details about how to implement DiscourseConnect …

---

## [Creating groups in Discourse](https://meta.discourse.org/t/creating-groups-in-discourse/197220)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 2\
**Last updated:** [May 1, 2024, 10:57am UTC](https://meta.discourse.org/t/creating-groups-in-discourse/197220 "2024-05-01T10:57:02Z")

</div>

:bookmark: This guide explains how to create groups in your Discourse community. :person\_raising\_hand: Required user level: Administrator (or Moderator when moderators\_manage\_groups is enabled) Groups in Discourse al…

---

## [Designer's Guide to getting started with themes in Discourse](https://meta.discourse.org/t/designers-guide-to-getting-started-with-themes-in-discourse/152002)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 9\
**Last updated:** [April 8, 2024, 9:32pm UTC](https://meta.discourse.org/t/designers-guide-to-getting-started-with-themes-in-discourse/152002 "2024-04-08T21:32:15Z")

</div>

So you’re interested in in designing your own theme for Discourse? You’ve arrived at the right topic :smile: This guide will be more focused on the SCSS/CSS aspects of working with themes in Discourse. If you are also k…

---

## [Contributing to the Discourse API documentation](https://meta.discourse.org/t/contributing-to-the-discourse-api-documentation/56693)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 3\
**Last updated:** [November 16, 2023, 7:43am UTC](https://meta.discourse.org/t/contributing-to-the-discourse-api-documentation/56693 "2023-11-16T07:43:57Z")

</div>

:bookmark: This is a guide for contributing to the official Discourse API documentation. :person\_raising\_hand: Required user level: Developer :gear: Console access required Do you want to contribute to the official …

---

## [Using the new user update automation](https://meta.discourse.org/t/using-the-new-user-update-automation/296389)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 8\
**Last updated:** [March 7, 2024, 9:49am UTC](https://meta.discourse.org/t/using-the-new-user-update-automation/296389 "2024-03-07T09:49:56Z")

</div>

:bookmark: This guide explains how to use the new user update trigger in the Discourse Automation plugin to create posts when users update their profiles. :person\_raising\_hand: Required user level: Administrator The …

---

## [Set up HTTPS support with Let's Encrypt](https://meta.discourse.org/t/set-up-https-support-with-lets-encrypt/40709)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 2\
**Last updated:** [February 25, 2024, 2:33am UTC](https://meta.discourse.org/t/set-up-https-support-with-lets-encrypt/40709 "2024-02-25T02:33:55Z")

</div>

:bookmark: This is a guide for enabling HTTPS on an existing Discourse installation using Let’s Encrypt. It assumes prior installation without HTTPS enabled. :person\_raising\_hand: Required user level: System Administra…

---

## [Install a Theme programatically](https://meta.discourse.org/t/install-a-theme-programatically/191843)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 3\
**Last updated:** [February 17, 2024, 10:24pm UTC](https://meta.discourse.org/t/install-a-theme-programatically/191843 "2024-02-17T22:24:42Z")

</div>

If you want to install themes via your app.yml, use the following format: run: - exec: echo "Beginning of custom commands" - file: path: /tmp/mythemes.yml contents: | discourse-gifs: u…

---

## [Migrate Discourse theme settings](https://meta.discourse.org/t/migrate-discourse-theme-settings/287783)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 0\
**Last updated:** [January 30, 2024, 10:02pm UTC](https://meta.discourse.org/t/migrate-discourse-theme-settings/287783 "2024-01-30T22:02:00Z")

</div>

Introduction As of Discourse version 3.2.0.beta3, Discourse themes/components can leverage a migrations feature to evolve and alter their settings seamlessly. This feature ensures that updates to themes do not disrupt ex…

---

## [Split up theme SCSS into multiple files](https://meta.discourse.org/t/split-up-theme-scss-into-multiple-files/115126)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 12\
**Last updated:** [January 18, 2024, 12:58am UTC](https://meta.discourse.org/t/split-up-theme-scss-into-multiple-files/115126 "2024-01-18T00:58:00Z")

</div>

Themes and theme components are becoming steadily more powerful, and developers are getting more and more ambitious. To make things easier for developers, themes can now split their SCSS into multiple files. https://git…

---

## [Migrate a bbPress WordPress plugin forum to Discourse](https://meta.discourse.org/t/migrate-a-bbpress-wordpress-plugin-forum-to-discourse/48876)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 33\
**Last updated:** [January 10, 2024, 7:49am UTC](https://meta.discourse.org/t/migrate-a-bbpress-wordpress-plugin-forum-to-discourse/48876 "2024-01-10T07:49:50Z")

</div>

I recently did a bbPress database migration successfully using Discourse’s inbuilt migration script. Now I’m going to share it as a step-by-step tutorial. Note: This tutorial is for the bbPress plugin, not the legacy st…

---

## [Structuring a plugin for Rails autoloading](https://meta.discourse.org/t/structuring-a-plugin-for-rails-autoloading/256092)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 10\
**Last updated:** [January 9, 2024, 10:13am UTC](https://meta.discourse.org/t/structuring-a-plugin-for-rails-autoloading/256092 "2024-01-09T10:13:30Z")

</div>

Many plugins include lots of class definitions inside plugin.rb, or use require\_relative to load ruby files. That works, but it comes with some disadvantages: No auto-reloading of changes in development. Any changes re…

---

## [Configure API Keys for Cloudflare Workers AI](https://meta.discourse.org/t/configure-api-keys-for-cloudflare-workers-ai/283321)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 0\
**Last updated:** [October 24, 2023, 8:40pm UTC](https://meta.discourse.org/t/configure-api-keys-for-cloudflare-workers-ai/283321 "2023-10-24T20:40:03Z")

</div>

Cloudflare Workers AI In this example, we are using Cloudflare Workers AI to generate the keys. :information\_source: Cloudflare Workers AI is used as an embeddings provider in Discourse AI (e.g., for semantic search a…

---

## [Grant a custom badge through the API](https://meta.discourse.org/t/grant-a-custom-badge-through-the-api/103270)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 9\
**Last updated:** [November 18, 2023, 12:58am UTC](https://meta.discourse.org/t/grant-a-custom-badge-through-the-api/103270 "2023-11-18T00:58:34Z")

</div>

Custom badges that you have created on your forum can be granted through the API. This is a great way to award badges without having to use custom badge SQL. To grant a badge through the API, you need to know the userna…

---

## [Migrate a FluxBB forum to Discourse](https://meta.discourse.org/t/migrate-a-fluxbb-forum-to-discourse/51322)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 9\
**Last updated:** [October 19, 2023, 10:11am UTC](https://meta.discourse.org/t/migrate-a-fluxbb-forum-to-discourse/51322 "2023-10-19T10:11:44Z")

</div>

I created a migration script to import FluxBB database into Discourse. Now I’m going to explain how to do the import process in a step-by-step tutorial. I tested this migration script with FluxBB v1.5.10 (which is curre…

---

## [Configuring group access, membership, and visibility](https://meta.discourse.org/t/configuring-group-access-membership-and-visibility/138296)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 6\
**Last updated:** [October 18, 2023, 10:43pm UTC](https://meta.discourse.org/t/configuring-group-access-membership-and-visibility/138296 "2023-10-18T22:43:03Z")

</div>

:bookmark: This guide explains how to set up and manage Discourse groups with different levels of access, membership requirements, and visibility settings. :person\_raising\_hand: Required user level: Administrator Dis…

---

## [Adding non-visible user custom fields to the API](https://meta.discourse.org/t/adding-non-visible-user-custom-fields-to-the-api/276618)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 2\
**Last updated:** [October 18, 2023, 10:06pm UTC](https://meta.discourse.org/t/adding-non-visible-user-custom-fields-to-the-api/276618 "2023-10-18T22:06:18Z")

</div>

:bookmark: This guide explains how to expose user custom field data through the API without displaying it on a user card. :person\_raising\_hand: Required user level: Administrator This guide will walk you through the …

---

## [Discourse SEO overview (sitemap / robots.txt)](https://meta.discourse.org/t/discourse-seo-overview-sitemap-robots-txt/280739)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 0\
**Last updated:** [October 18, 2023, 12:56pm UTC](https://meta.discourse.org/t/discourse-seo-overview-sitemap-robots-txt/280739 "2023-10-18T12:56:07Z")

</div>

Discourse has many SEO features that work straight out of the box. Using our sensible defaults, community managers can focus on cultivating a community and should not feel as distracted by optimizing for search engines…

---

## [Configuring anonymous posting for specific categories](https://meta.discourse.org/t/configuring-anonymous-posting-for-specific-categories/271583)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 2\
**Last updated:** [August 28, 2023, 8:01pm UTC](https://meta.discourse.org/t/configuring-anonymous-posting-for-specific-categories/271583 "2023-08-28T20:01:01Z")

</div>

:bookmark: This guide explains how to create a group for anonymous users and configure category-specific permissions for anonymous posting. :person\_raising\_hand: Required user level: Administrator Before proceeding w…

---

## [Searching for posts created within a specific timeframe](https://meta.discourse.org/t/searching-for-posts-created-within-a-specific-timeframe/41011)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 2\
**Last updated:** [August 14, 2023, 6:34am UTC](https://meta.discourse.org/t/searching-for-posts-created-within-a-specific-timeframe/41011 "2023-08-14T06:34:16Z")

</div>

:bookmark: This guide explains how to use Discourse’s search functionality to find posts created within a certain timeframe. :person\_raising\_hand: Required user level: All users Discourse’s search interface allows yo…

---

## [Set up an environment to migrate another forum to Discourse](https://meta.discourse.org/t/set-up-an-environment-to-migrate-another-forum-to-discourse/88252)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 0\
**Last updated:** [May 23, 2018, 1:53pm UTC](https://meta.discourse.org/t/set-up-an-environment-to-migrate-another-forum-to-discourse/88252 "2018-05-23T13:53:40Z")

</div>

Want to setup a Discourse import environment? Let’s get started! Setup a Discourse instance on DigitalOcean Setup a Discourse instance on DigitalOcean using our official guide. Email setup is not required for migration…

---

## [Searching for content effectively](https://meta.discourse.org/t/searching-for-content-effectively/273328)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 0\
**Last updated:** [July 31, 2023, 9:36am UTC](https://meta.discourse.org/t/searching-for-content-effectively/273328 "2023-07-31T09:36:11Z")

</div>

:bookmark: This guide provides a comprehensive overview of Discourse’s search capabilities, including filters, options, and advanced techniques. :person\_raising\_hand: Required user level: All users Discourse offers a…

---

## [Convert all existing topics in category to wikis](https://meta.discourse.org/t/convert-all-existing-topics-in-category-to-wikis/54493)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 2\
**Last updated:** [June 22, 2023, 7:17am UTC](https://meta.discourse.org/t/convert-all-existing-topics-in-category-to-wikis/54493 "2023-06-22T07:17:48Z")

</div>

:bookmark: This guide explains how to convert all existing topics in a Discourse category to wikis. :person\_raising\_hand: Required user level: Server administrator with SSH access Discourse allows categories to have …

---

## [Using Discourse instead of an email mailing list](https://meta.discourse.org/t/using-discourse-instead-of-an-email-mailing-list/54298)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 20\
**Last updated:** [June 15, 2023, 6:14am UTC](https://meta.discourse.org/t/using-discourse-instead-of-an-email-mailing-list/54298 "2023-06-15T06:14:38Z")

</div>

:bookmark: This topic explains the advantages of using Discourse over traditional email mailing lists for group conversations and community management. :person\_raising\_hand: Required user level: All users Discourse i…

---

## [Mitigate XSS Attacks with Content Security Policy](https://meta.discourse.org/t/mitigate-xss-attacks-with-content-security-policy/104243)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 30\
**Last updated:** [June 13, 2023, 10:50pm UTC](https://meta.discourse.org/t/mitigate-xss-attacks-with-content-security-policy/104243 "2023-06-13T22:50:33Z")

</div>

:bookmark: This guide explains how to use Content Security Policy (CSP) to mitigate Cross-Site Scripting (XSS) attacks in Discourse. It covers CSP basics, configuration, and best practices. :person\_raising\_hand: Requir…

---

## [Adding custom content to summary emails](https://meta.discourse.org/t/adding-custom-content-to-summary-emails/49103)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 14\
**Last updated:** [June 6, 2023, 4:38pm UTC](https://meta.discourse.org/t/adding-custom-content-to-summary-emails/49103 "2023-06-06T16:38:53Z")

</div>

Today I added a way to insert custom html and text to digest/summary emails. In the past, only the colour scheme could be customized. Now you can insert arbitrary html using the Admin \> Appearance \> Site Texts interface …

---

## [Remove extraneous content from incoming emails](https://meta.discourse.org/t/remove-extraneous-content-from-incoming-emails/266085)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 0\
**Last updated:** [May 24, 2023, 9:43pm UTC](https://meta.discourse.org/t/remove-extraneous-content-from-incoming-emails/266085 "2023-05-24T21:43:41Z")

</div>

:bookmark: This guide explains how to remove extraneous content, such as signatures, from incoming emails in Discourse. :person\_raising\_hand: Required user level: Administrator Discourse has a built-in system for han…

---

## [Adding users from groups to other groups in bulk](https://meta.discourse.org/t/adding-users-from-groups-to-other-groups-in-bulk/260670)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 2\
**Last updated:** [May 22, 2023, 10:33am UTC](https://meta.discourse.org/t/adding-users-from-groups-to-other-groups-in-bulk/260670 "2023-05-22T10:33:19Z")

</div>

:bookmark: This guide explains how to add existing users from one or more groups to other groups using a combination of Data Explorer and bulk invites. :person\_raising\_hand: Required user level: Administrator Summar…

---

## [Set up Matrix (element.io) notifications using the discourse-chat-integration plugin](https://meta.discourse.org/t/set-up-matrix-element-io-notifications-using-the-discourse-chat-integration-plugin/66944)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 15\
**Last updated:** [May 20, 2023, 5:26pm UTC](https://meta.discourse.org/t/set-up-matrix-element-io-notifications-using-the-discourse-chat-integration-plugin/66944 "2023-05-20T17:26:20Z")

</div>

This howto describes how to setup the Matrix (element.io) provider included in discourse-chat-integration. Thanks to @ara4n and members of the #matrix-dev:matrix.org room for their help with this integration …

[Previous page](https://meta.discourse.org/c/documentation/10.md?page=14)

[Next page](https://meta.discourse.org/c/documentation/10.md?page=16)
