# Self-Hosting

**URL:** https://meta.discourse.org/c/documentation/self-hosting/55.md?page=2

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

**Page:** 3

---

## [Set Environmental Variables](https://meta.discourse.org/t/set-environmental-variables/270832)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 13\
**Last updated:** [May 14, 2024, 2:04am UTC](https://meta.discourse.org/t/set-environmental-variables/270832 "2024-05-14T02:04:53Z")

</div>

:notebook\_with\_decorative\_cover: This is a how-to guide for setting up environmental variables in a self-hosted Discourse installation. :person\_raising\_hand: Required user level: Administrator Environmental variables…

---

## [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…

---

## [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 …

---

## [Change Discourse install storage location](https://meta.discourse.org/t/change-discourse-install-storage-location/88256)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 0\
**Last updated:** [May 23, 2018, 2:27pm UTC](https://meta.discourse.org/t/change-discourse-install-storage-location/88256 "2018-05-23T14:27:48Z")

</div>

Need to move your Discourse install to another (local) directory? Let’s get started! Configure new directory Ensure the new directory is properly mounted/connected as needed. Then create the folder where Discourse will…

---

## [Configure a Cloudfront reverse proxy for a subfolder install](https://meta.discourse.org/t/configure-a-cloudfront-reverse-proxy-for-a-subfolder-install/204859)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 0\
**Last updated:** [September 30, 2021, 11:50am UTC](https://meta.discourse.org/t/configure-a-cloudfront-reverse-proxy-for-a-subfolder-install/204859 "2021-09-30T11:50:52Z")

</div>

This topic is a companion to another, which focuses on the Discourse configuration. Here we will set up a Cloudfront distribution as the reverse proxy before Discourse. :warning: The only time you need this combination…

---

## [Disable 2FA via console](https://meta.discourse.org/t/disable-2fa-via-console/148309)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 0\
**Last updated:** [April 17, 2020, 3:27am UTC](https://meta.discourse.org/t/disable-2fa-via-console/148309 "2020-04-17T03:27:28Z")

</div>

:bookmark: This guide provides instructions for administrators on how to disable two-factor authentication (2FA) via the console. :person\_raising\_hand: Required user level: System Admin :wrench: Console access requir…

---

## [Export password hashes in the PHC format](https://meta.discourse.org/t/export-password-hashes-in-the-phc-format/133805)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 8\
**Last updated:** [January 7, 2021, 8:33am UTC](https://meta.discourse.org/t/export-password-hashes-in-the-phc-format/133805 "2021-01-07T08:33:26Z")

</div>

Current details about Discourse’s password storage system can be found in discourse/docs/SECURITY.md at main · discourse/discourse · GitHub. At the time of writing, we use PBKDF2-SHA256, with 600,000 iterations. In some…

---

## [Bitnami installations are unsupported](https://meta.discourse.org/t/bitnami-installations-are-unsupported/142538)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 0\
**Last updated:** [February 25, 2020, 12:55am UTC](https://meta.discourse.org/t/bitnami-installations-are-unsupported/142538 "2020-02-25T00:55:27Z")

</div>

Community support is only provided for installs that use the official instructions: discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub If you have installed with Bitnami and are having trouble, then …

---

## [Recover from a very slow database](https://meta.discourse.org/t/recover-from-a-very-slow-database/68793)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 2\
**Last updated:** [August 25, 2017, 7:41pm UTC](https://meta.discourse.org/t/recover-from-a-very-slow-database/68793 "2017-08-25T19:41:37Z")

</div>

Rarely, the database can get into a state where it is so slow it appears broken (I have seen 3 instances of this issue in the last 4 years) How can you tell you are impacted? It is quite easy to tell the difference bet…

---

## [Troubleshoot reply by email](https://meta.discourse.org/t/troubleshoot-reply-by-email/42026)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 0\
**Last updated:** [April 4, 2016, 8:49pm UTC](https://meta.discourse.org/t/troubleshoot-reply-by-email/42026 "2016-04-04T20:49:19Z")

</div>

If your Discourse does not have incoming email set up, see these topics: Set up reply by email with POP3 polling Configure direct-delivery incoming email for self-hosted sites with Mail-Receiver …

---

## [What to do if your Discourse is compromised](https://meta.discourse.org/t/what-to-do-if-your-discourse-is-compromised/40129)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 0\
**Last updated:** [February 24, 2016, 11:39pm UTC](https://meta.discourse.org/t/what-to-do-if-your-discourse-is-compromised/40129 "2016-02-24T23:39:47Z")

</div>

We’ve recently had two reports of Discourse sites that were compromised, likely due to weak admin account passwords. So we’d like to document: what to do when compromise happens what we can do to better prevent this in…

---

## [Restore a Discourse backup manually for development](https://meta.discourse.org/t/restore-a-discourse-backup-manually-for-development/33551)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 0\
**Last updated:** [September 21, 2015, 10:21pm UTC](https://meta.discourse.org/t/restore-a-discourse-backup-manually-for-development/33551 "2015-09-21T22:21:06Z")

</div>

You’ve got yourself a Discourse backup file and want to load it into your development database, without using the web UI, or potentially with a different database name. Cool! This will assume you already have a Postgres…

---

## [Use a subfolder (path prefix) to serve Discourse with multiple servers sharing a domain](https://meta.discourse.org/t/use-a-subfolder-path-prefix-to-serve-discourse-with-multiple-servers-sharing-a-domain/30514)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 0\
**Last updated:** [June 26, 2015, 8:57pm UTC](https://meta.discourse.org/t/use-a-subfolder-path-prefix-to-serve-discourse-with-multiple-servers-sharing-a-domain/30514 "2015-06-26T20:57:34Z")

</div>

Let’s say you have a WordPress blog on http://=DOMAIN=, and you want to serve your Discourse forums (which run on a different server) from http://=DOMAIN==PATH=. How do you do that? Note: This won’t work for serving mu…

---

## [Change the maximum attachment/upload size](https://meta.discourse.org/t/change-the-maximum-attachment-upload-size/26435)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 0\
**Last updated:** [March 17, 2015, 2:00pm UTC](https://meta.discourse.org/t/change-the-maximum-attachment-upload-size/26435 "2015-03-17T14:00:41Z")

</div>

:bookmark: This guide explains how to change the maximum attachment upload size for self-hosted Discourse instances. :person\_raising\_hand: Required user level: System Admin The default attachment upload size limit is…

---

## [Configure mailbox in Google Apps for user-friendly incoming email addresses for discourse categories (with screenshots)](https://meta.discourse.org/t/configure-mailbox-in-google-apps-for-user-friendly-incoming-email-addresses-for-discourse-categories-with-screenshots/15374)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 0\
**Last updated:** [May 7, 2014, 12:43am UTC](https://meta.discourse.org/t/configure-mailbox-in-google-apps-for-user-friendly-incoming-email-addresses-for-discourse-categories-with-screenshots/15374 "2014-05-07T00:43:45Z")

</div>

I had a bit of trouble figuring out how to set up the mailbox in google apps to work with Discourse so that there is a user-friendly incoming email address for each category. Here are some screenshots that show how I did…

---

## [Troubleshoot docker installation issues](https://meta.discourse.org/t/troubleshoot-docker-installation-issues/13657)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 0\
**Last updated:** [March 12, 2014, 3:49am UTC](https://meta.discourse.org/t/troubleshoot-docker-installation-issues/13657 "2014-03-12T03:49:02Z")

</div>

I just ran: cd /var/discourse git pull ./launcher rebuild app And am getting: Your Docker installation is not working correctly See: https://meta.discourse.org/t/docker-error-on-bootstrap/13657/18?u=sam W…

---

## [Migrate an old Discourse install to Docker](https://meta.discourse.org/t/migrate-an-old-discourse-install-to-docker/12439)

<div class="topic-metadata">

**Author:** [@Discourse](https://meta.discourse.org/u/Discourse)\
**Replies:** 0\
**Last updated:** [February 5, 2014, 1:24am UTC](https://meta.discourse.org/t/migrate-an-old-discourse-install-to-docker/12439 "2014-02-05T01:24:41Z")

</div>

:information\_source: 2022.10.21 @pfaffman adds: If you are somehow using a non-docker installation in 2022 then this guide might help you. There is not much way to test it, but it should work. Kept for historical pu…

[Previous page](https://meta.discourse.org/c/documentation/self-hosting/55.md?page=1)
