# Wiki

**URL:** https://meta.discourse.org/c/wiki/177.md

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

---

## [Move from standalone container to separate web and data containers](https://meta.discourse.org/t/move-from-standalone-container-to-separate-web-and-data-containers/29413)

<div class="topic-metadata">

**Author:** [@5minpause](https://meta.discourse.org/u/5minpause)\
**Replies:** 138\
**Last updated:** [September 21, 2026, 4:23pm UTC](https://meta.discourse.org/t/move-from-standalone-container-to-separate-web-and-data-containers/29413 "2026-09-21T16:23:04Z")

</div>

:warning: This is an advanced setup. Don’t follow this unless you are experienced with Linux server administration and Docker. You also need to pay close attention to commits to discourse\_docker to make sure you notice …

---

## [Mutisite and Cloudflare R2 Objects](https://meta.discourse.org/t/mutisite-and-cloudflare-r2-objects/412414)

<div class="topic-metadata">

**Author:** [@kcahtoor](https://meta.discourse.org/u/kcahtoor)\
**Replies:** 0\
**Last updated:** [September 15, 2026, 2:26am UTC](https://meta.discourse.org/t/mutisite-and-cloudflare-r2-objects/412414 "2026-09-15T02:26:41Z")

</div>

Using Cloudflare R2 on just one site in a Discourse multisite install If you run a multisite Discourse install and only want one of your sites on Cloudflare R2 (uploads, backups, and optionally static assets), the standa…

---

## [How to clear the Windows Task Bar badge for the PWA](https://meta.discourse.org/t/how-to-clear-the-windows-task-bar-badge-for-the-pwa/411981)

<div class="topic-metadata">

**Author:** [@merefield](https://meta.discourse.org/u/merefield)\
**Replies:** 2\
**Last updated:** [September 9, 2026, 10:02am UTC](https://meta.discourse.org/t/how-to-clear-the-windows-task-bar-badge-for-the-pwa/411981 "2026-09-09T10:02:27Z")

</div>

Sometimes the PWA badge gets out of sync with your notifications. This can get annoying: You can manually clear it through the PWA’s developer console in Chrome or Edge: Open the Discourse PWA. PressCtrl + Shif…

---

## [Copy backups to another server with rsync and cron](https://meta.discourse.org/t/copy-backups-to-another-server-with-rsync-and-cron/124346)

<div class="topic-metadata">

**Author:** [@johncs](https://meta.discourse.org/u/johncs)\
**Replies:** 8\
**Last updated:** [September 9, 2026, 7:35am UTC](https://meta.discourse.org/t/copy-backups-to-another-server-with-rsync-and-cron/124346 "2026-09-09T07:35:44Z")

</div>

I have a backup server that coordinates backups across many servers. I want my backup server to grab Discourse backups from my forum’s server. I gave some thought to how I’d allow the backup server to access the backup …

---

## [Common list of imports for Theme Components/plugins (JS)](https://meta.discourse.org/t/common-list-of-imports-for-theme-components-plugins-js/382493)

<div class="topic-metadata">

**Author:** [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)\
**Replies:** 1\
**Last updated:** [December 26, 2025, 12:19pm UTC](https://meta.discourse.org/t/common-list-of-imports-for-theme-components-plugins-js/382493 "2025-12-26T12:19:50Z")

</div>

I usually find myself digging around to get imports for different things when I make a Theme Component, so I decided to compile a bunch of them and put them here. Ember-related Name Import Usage Component import…

---

## [Configuring AWS SES for outgoing, bounce, and incoming email](https://meta.discourse.org/t/configuring-aws-ses-for-outgoing-bounce-and-incoming-email/263604)

<div class="topic-metadata">

**Author:** [@dlambert](https://meta.discourse.org/u/dlambert)\
**Replies:** 13\
**Last updated:** [September 4, 2026, 3:30pm UTC](https://meta.discourse.org/t/configuring-aws-ses-for-outgoing-bounce-and-incoming-email/263604 "2026-09-04T15:30:14Z")

</div>

I thought I’d share the configuration I came up with to use AWS SES for outgoing, bounce, and incoming email. There’s definitely some nuance to the SES service, and it took a good deal of trial and error to understand ex…

---

## [Setup Multisite Configuration with Let's Encrypt and no Reverse Proxy](https://meta.discourse.org/t/setup-multisite-configuration-with-lets-encrypt-and-no-reverse-proxy/175285)

<div class="topic-metadata">

**Author:** [@pfaffman](https://meta.discourse.org/u/pfaffman)\
**Replies:** 24\
**Last updated:** [August 27, 2026, 11:12am UTC](https://meta.discourse.org/t/setup-multisite-configuration-with-lets-encrypt-and-no-reverse-proxy/175285 "2026-08-27T11:12:24Z")

</div>

These instructions should be considered beta and for those familiar with a standard setup But right now (2023.02.11) these instructions do not work!! (See Set up Let’s Encrypt with multiple domains / redirects for how to…

---

## [Migrate a XenForo forum to Discourse](https://meta.discourse.org/t/migrate-a-xenforo-forum-to-discourse/45232)

<div class="topic-metadata">

**Author:** [@Cyb3r](https://meta.discourse.org/u/Cyb3r)\
**Replies:** 93\
**Last updated:** [August 16, 2026, 1:55pm UTC](https://meta.discourse.org/t/migrate-a-xenforo-forum-to-discourse/45232 "2026-08-16T13:55:56Z")

</div>

Hey guys so after trying for a week or so I decided to import the database on docker app which I hoped it will succeed without any issues. TBH I got some issues at first but it turned to be all easy to solve. Now I woul…

---

## [MKJ's Opinionated Discourse Deployment Configuration](https://meta.discourse.org/t/mkjs-opinionated-discourse-deployment-configuration/193355)

<div class="topic-metadata">

**Author:** [@mcdanlj](https://meta.discourse.org/u/mcdanlj)\
**Replies:** 46\
**Last updated:** [August 7, 2026, 3:56pm UTC](https://meta.discourse.org/t/mkjs-opinionated-discourse-deployment-configuration/193355 "2026-08-07T15:56:28Z")

</div>

I have been running a Discourse forum with a substantial amount of content and plenty of images over the past few years. Maker Forums has over 100GB of images and over 400,000 posts, of which a substantial amount was imp…

---

## [Customizing themes without an Edit code button](https://meta.discourse.org/t/customizing-themes-without-an-edit-code-button/329601)

<div class="topic-metadata">

**Author:** [@Moin](https://meta.discourse.org/u/Moin)\
**Replies:** 1\
**Last updated:** [February 25, 2026, 10:48am UTC](https://meta.discourse.org/t/customizing-themes-without-an-edit-code-button/329601 "2026-02-25T10:48:12Z")

</div>

Sometimes, you may want to customize a Discourse theme but find that there’s no “Custom code” section with an “Edit code” button available. This often happens with remote themes (themes installed from an external source)…

---

## [Configuring the default sidebar for your users](https://meta.discourse.org/t/configuring-the-default-sidebar-for-your-users/347764)

<div class="topic-metadata">

**Author:** [@Moin](https://meta.discourse.org/u/Moin)\
**Replies:** 1\
**Last updated:** [January 18, 2025, 1:59am UTC](https://meta.discourse.org/t/configuring-the-default-sidebar-for-your-users/347764 "2025-01-18T01:59:06Z")

</div>

The sidebar provides quick access to important sections of your Discourse site. While users can customize their own sidebar to suit their preferences, providing a thoughtful default setup helps especially new users and v…

---

## [Configuring automatic post review triggers](https://meta.discourse.org/t/configuring-automatic-post-review-triggers/328584)

<div class="topic-metadata">

**Author:** [@Moin](https://meta.discourse.org/u/Moin)\
**Replies:** 0\
**Last updated:** [September 29, 2024, 9:32pm UTC](https://meta.discourse.org/t/configuring-automatic-post-review-triggers/328584 "2024-09-29T21:32:44Z")

</div>

This guide explains the various settings and options for requiring post approval in Discourse. You’ll learn how these settings interact and best practices for implementation. You can find the full guide here: Configurin…

---

## [Install Discourse on a residential internet with Cloudflare Tunnel](https://meta.discourse.org/t/install-discourse-on-a-residential-internet-with-cloudflare-tunnel/211297)

<div class="topic-metadata">

**Author:** [@Falco](https://meta.discourse.org/u/Falco)\
**Replies:** 69\
**Last updated:** [July 27, 2026, 4:10pm UTC](https://meta.discourse.org/t/install-discourse-on-a-residential-internet-with-cloudflare-tunnel/211297 "2026-07-27T16:10:47Z")

</div>

Since Discourse now has support for running on a Raspberry Pi, running a small instance in your home lab will become a common use case. However, many residential ISPs block incoming traffic to the ports 80/443 that Disco…

---

## [Resolve the issue where all user IPs in Discourse deployed with 1Panel show as coming from Cloudflare instead of the user's real browser IP](https://meta.discourse.org/t/1panel-discourse-ip-cloudflare-ip/402038)

<div class="topic-metadata">

**Author:** [@sniper756](https://meta.discourse.org/u/sniper756)\
**Replies:** 1\
**Last updated:** [July 3, 2026, 2:33pm UTC](https://meta.discourse.org/t/1panel-discourse-ip-cloudflare-ip/402038 "2026-07-03T14:33:02Z")

</div>

I installed 1Panel on my VPS, deployed Discourse (via container), and set up a reverse proxy using OpenResty (via container). The domain is hosted on Cloudflare with CDN (orange cloud) enabled. Below is the solution to the issue where user IPs appear as coming from Cloudflare instead of the user's actual browser IP. 1. Create a scheduled task in 1Panel to download the latest Cloudflare IP list weekly and save it to the OpenResty configuration directory. Click “Scheduled Tasks” in the left menu bar of 1Panel. …

---

## [Explanation of dark mode, how to select it, and how to enable switching](https://meta.discourse.org/t/explanation-of-dark-mode-how-to-select-it-and-how-to-enable-switching/327397)

<div class="topic-metadata">

**Author:** [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)\
**Replies:** 4\
**Last updated:** [May 11, 2025, 8:20am UTC](https://meta.discourse.org/t/explanation-of-dark-mode-how-to-select-it-and-how-to-enable-switching/327397 "2025-05-11T08:20:11Z")

</div>

Introduction This guide covers dark mode, how to select it, and how to enable it. What is dark mode? As Forbes explains, The idea behind dark mode is that it reduces the light emitted by device screens while maintaini…

---

## [@ Top-level domain redirects to www](https://meta.discourse.org/t/www/400583)

<div class="topic-metadata">

**Author:** [@Lxk520](https://meta.discourse.org/u/Lxk520)\
**Replies:** 6\
**Last updated:** [April 16, 2026, 6:04pm UTC](https://meta.discourse.org/t/www/400583 "2026-04-16T18:04:50Z")

</div>

Use sudo to temporarily elevate privileges and edit app.yml cd /var/discourse sudo nano /containers/app.yml Edit the Discourse configuration file app.yml You only need to configure the Discourse configuration file app.yml to define the primary domain and alias relationships: DISCOURSE\_HOSTNAME: 'www.discourse.cc' # Your primary domain (final access address) DISCO…

---

## [Any random subdomain redirects to www](https://meta.discourse.org/t/www/400584)

<div class="topic-metadata">

**Author:** [@Lxk520](https://meta.discourse.org/u/Lxk520)\
**Replies:** 2\
**Last updated:** [April 14, 2026, 3:23pm UTC](https://meta.discourse.org/t/www/400584 "2026-04-14T15:23:07Z")

</div>

Redirect Random Subdomains to www Obtain an Alibaba Cloud AccessKey (using Alibaba Cloud as an example; apply for your own key). AccessKey ID: LTAI5tQCfDcVcghn5 AccessKey Secret: J8ZayXB44MIWa1Mfnj Install acme.sh cd ~ curl https://get.acme.sh | sh Switch the default CA to Let's Encrypt, then reapply for the certificate: # Switch the default CA to Let's ...

---

## [Administrators Index](https://meta.discourse.org/t/administrators-index/322712)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 0\
**Last updated:** [August 21, 2024, 1:33pm UTC](https://meta.discourse.org/t/administrators-index/322712 "2024-08-21T13:33:48Z")

</div>

General guides Re-creating the Lounge: Re-creating the automatic Lounge category Customizing Terms of Service: Some notes on customizing the default Terms of Service Custom email notification footer: Customize email not…

---

## [Re-creating the automatic Lounge category](https://meta.discourse.org/t/re-creating-the-automatic-lounge-category/397689)

<div class="topic-metadata">

**Author:** [@ToddZ](https://meta.discourse.org/u/ToddZ)\
**Replies:** 2\
**Last updated:** [March 5, 2026, 5:57am UTC](https://meta.discourse.org/t/re-creating-the-automatic-lounge-category/397689 "2026-03-05T05:57:33Z")

</div>

:bookmark: This guide provides two methods for re-creating the Lounge category functionality formerly offered by default and still seen in some Discourse installations. :person\_raising\_hand: Required user level: Admini…

---

## [Customizing subcategory boxes in Discourse](https://meta.discourse.org/t/customizing-subcategory-boxes-in-discourse/239691)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 2\
**Last updated:** [April 2, 2026, 9:45pm UTC](https://meta.discourse.org/t/customizing-subcategory-boxes-in-discourse/239691 "2026-04-02T21:45:10Z")

</div>

:bookmark: This guide explains how to customize the appearance of subcategory boxes in Discourse, including adjusting styles for featured topics, modifying the “Boxes” style, and managing category description truncation…

---

## [Create a Network chart of your forum - data visualization](https://meta.discourse.org/t/create-a-network-chart-of-your-forum-data-visualization/37426)

<div class="topic-metadata">

**Author:** [@DavidGNavas](https://meta.discourse.org/u/DavidGNavas)\
**Replies:** 4\
**Last updated:** [March 26, 2026, 7:49pm UTC](https://meta.discourse.org/t/create-a-network-chart-of-your-forum-data-visualization/37426 "2026-03-26T19:49:25Z")

</div>

Thanks to the Data Explorer Plugin and the query that @riking created, we have a great visualization of the interaction in our :discourse: instance. You can also play with it. It’s easy to do it: 1 - Install Data Ex…

---

## [Discourse MCP Setup in OpenCode CLI](https://meta.discourse.org/t/discourse-mcp-setup-in-opencode-cli/398378)

<div class="topic-metadata">

**Author:** [@pacharanero](https://meta.discourse.org/u/pacharanero)\
**Replies:** 0\
**Last updated:** [March 13, 2026, 2:33pm UTC](https://meta.discourse.org/t/discourse-mcp-setup-in-opencode-cli/398378 "2026-03-13T14:33:29Z")

</div>

This guide provides tested instructions for installing the Discourse MCP into OpenCode CLI. If you’re using a different MCP client, I have also written guides for Codex CLI. USE YOUR LLM! LLMs are very good at followin…

---

## [Migrate a NodeBB forum with MongoDB to Discourse](https://meta.discourse.org/t/migrate-a-nodebb-forum-with-mongodb-to-discourse/126553)

<div class="topic-metadata">

**Author:** [@enigmaty](https://meta.discourse.org/u/enigmaty)\
**Replies:** 18\
**Last updated:** [March 8, 2026, 2:39pm UTC](https://meta.discourse.org/t/migrate-a-nodebb-forum-with-mongodb-to-discourse/126553 "2026-03-08T14:39:08Z")

</div>

As you properly know, NodeBB supports two DB backends, Redis and MongoDB. Discourse importer script supports them both. In this tutorial, we will learn how to migrate NodeBB with MongoDB as DB backend. We will be using N…

---

## [Discourse MCP Setup in OpenAI Codex CLI](https://meta.discourse.org/t/discourse-mcp-setup-in-openai-codex-cli/397662)

<div class="topic-metadata">

**Author:** [@pacharanero](https://meta.discourse.org/u/pacharanero)\
**Replies:** 0\
**Last updated:** [March 4, 2026, 9:49pm UTC](https://meta.discourse.org/t/discourse-mcp-setup-in-openai-codex-cli/397662 "2026-03-04T21:49:40Z")

</div>

I have been experimenting with Discourse MCP but found that the existing documentation in Meta for using it didn’t include anything for Codex CLI, and it was a little confusing working out which parts of the documentatio…

---

## [Recommended Hosting Providers for Self Hosters](https://meta.discourse.org/t/recommended-hosting-providers-for-self-hosters/79562)

<div class="topic-metadata">

**Author:** [@pfaffman](https://meta.discourse.org/u/pfaffman)\
**Replies:** 118\
**Last updated:** [February 24, 2026, 12:43pm UTC](https://meta.discourse.org/t/recommended-hosting-providers-for-self-hosters/79562 "2026-02-24T12:43:22Z")

</div>

This guide is intended for people who are not system administrators who just want to make Discourse work. This is a list of cloud hosting services that are believed to be reliable and easy enough for a novice to get up a…

---

## [Customize direct-delivery Postfix configuration](https://meta.discourse.org/t/customize-direct-delivery-postfix-configuration/118759)

<div class="topic-metadata">

**Author:** [@mpalmer](https://meta.discourse.org/u/mpalmer)\
**Replies:** 19\
**Last updated:** [February 14, 2026, 11:28pm UTC](https://meta.discourse.org/t/customize-direct-delivery-postfix-configuration/118759 "2026-02-14T23:28:15Z")

</div>

If you have a mail receiver container which requires customised Postfix configuration, this is the topic for you. Herein are described the steps required to set Postfix main.cf configuration variables to whatever your h…

---

## [Add an offline page to display when Discourse is rebuilding or starting up](https://meta.discourse.org/t/add-an-offline-page-to-display-when-discourse-is-rebuilding-or-starting-up/45238)

<div class="topic-metadata">

**Author:** [@fefrei](https://meta.discourse.org/u/fefrei)\
**Replies:** 140\
**Last updated:** [February 3, 2026, 11:01am UTC](https://meta.discourse.org/t/add-an-offline-page-to-display-when-discourse-is-rebuilding-or-starting-up/45238 "2026-02-03T11:01:35Z")

</div>

:warning: This guide is intended for advanced users, who are already using nginx outside the docker container. By following this guide you make your setup more complicated and will lose some speed benefits like HTTP2 if…

---

## [Configuring AWS's Amazon S3 for storage and Cloudfront for CDNs](https://meta.discourse.org/t/configuring-awss-amazon-s3-for-storage-and-cloudfront-for-cdns/392369)

<div class="topic-metadata">

**Author:** [@philh](https://meta.discourse.org/u/philh)\
**Replies:** 2\
**Last updated:** [January 13, 2026, 5:22pm UTC](https://meta.discourse.org/t/configuring-awss-amazon-s3-for-storage-and-cloudfront-for-cdns/392369 "2026-01-13T17:22:50Z")

</div>

Getting Started You will need: A Discourse instance with app.yml access AWS account Naming Strategy There are many places to make mistakes. Using a naming convention strategy that makes sense to you and perhaps others…

---

## [Setup a ToolTip in your Forum](https://meta.discourse.org/t/setup-a-tooltip-in-your-forum/45792)

<div class="topic-metadata">

**Author:** [@marcospreviato](https://meta.discourse.org/u/marcospreviato)\
**Replies:** 4\
**Last updated:** [January 12, 2026, 4:59pm UTC](https://meta.discourse.org/t/setup-a-tooltip-in-your-forum/45792 "2026-01-12T16:59:30Z")

</div>

Hi, this is my first post sharing a resource to help this wonderful community. I want to help them create simple forms a tooltip for your forum making it modern and clean, ok lets do it! First what is tooltip? A toolti…

---

## [Deploy Discourse without Docker](https://meta.discourse.org/t/deploy-discourse-without-docker/351194)

<div class="topic-metadata">

**Author:** [@fokx](https://meta.discourse.org/u/fokx)\
**Replies:** 33\
**Last updated:** [January 8, 2026, 5:05pm UTC](https://meta.discourse.org/t/deploy-discourse-without-docker/351194 "2026-01-08T17:05:01Z")

</div>

Though it is more convenient and safer to deploy Discourse following the official install guide, I want to dive deeper into the container and see how it can be deployed in Linux without Docker. I want to share the step…

[Next page](https://meta.discourse.org/c/wiki/177.md?page=1)
