Self-Hosting Discourse Just Got a Whole Lot Easier

We’re excited to announce a major update to how you can self-host Discourse. Whether you’ve been curious about running your own Discourse instance or found the setup process daunting in the past, today’s changes are for you.

Install Discourse with a Single Command

Setting up Discourse on your own server is now as simple as running one command:

wget -qO- https://raw.githubusercontent.com/discourse/discourse_docker/main/install-discourse | sudo bash

That’s it. Run this on a fresh server, and you’ll have a working Discourse installation. No more juggling configuration files or following lengthy setup guides.

SMTP is now optional

As @codinghorror once put it:

To alleviate this, we’ve made SMTP optional. The new installer allows you to skip SMTP setup entirely by relying on Discourse ID for login.

SMTP setup was always the number one issue people setting up Discourse for the first time struggled with, so we are excited to finally remove this hurdle in our install.

Free Subdomain with Discourse ID

With SMTP solved, we aimed for the next hurdle: getting a domain. You’d need to purchase a domain, configure DNS records, and wait… all before even seeing Discourse run.

We’ve solved this. When you run the installer and don’t have a domain ready, we’ll guide you to claim a free discourse.diy subdomain through your Discourse ID account. This means you can have your community up and running in minutes, not hours.

Already have your own domain? Great, the installer supports that too! But if you just want to try things out or get started quickly, we’ve got you covered.

A Friendlier Setup Experience

The new installer also features a new interactive wizard, with fewer steps and built with newer tech that will allow us to keep iterating on it.

What You Need

To self-host Discourse, you’ll need:

  • A cloud server (from providers like DigitalOcean, AWS, Vultr, or similar)
  • About 10 minutes of your time

That’s the new bar for entry. We’ve worked hard to remove the friction so you can focus on building your community.

Get Started

Ready to try it out? Head over to our updated installation guide for step-by-step instructions.

To see what the entire process looks like, you can check out the screenshots available here.

If you run into any issues or have feedback, let us know in this topic. We’d love to hear about your experience with the new installer.


This update is part of our ongoing effort to make Discourse more accessible to everyone, whether you’re running a community on our hosted platform or on your own infrastructure.

51 Likes

Amazing! :exploding_head: I love this and look forward to trying it.

Time to amend the original Install Discourse in Under 30 Minutes blog post. I guess this is like juggling without a chainsaw!

12 Likes

This is great, congratulations! :sparkles::folded_hands:

3 Likes

This has got to be the greatest improvement in discourse since its inception. Godspeed discourse :rocket:

6 Likes

Absolutely great that SMTP is no longer required, that’s forever been my biggest issue with Discourse setup.

3 Likes

Excellent!! This is a huge step! Love discourse and i love that this will hopefully make it more accessible to everyone!

3 Likes

This is terrific!

Chefs Kiss French Chef

Just to be clear, we still need to configure SMTP to send emails, right? The SMTP skip is solely for the installation part? As a non-tech-savvy user, how the post is written casts some doubts :smile:

7 Likes

Yes, you still need SMTP to send emails, but with the availability of web push notifications, Discourse can be fully enjoyed without emails. I’ve been doing that for years, and we have many customers who opted out of emails completely too.

SMTP will be fully supported but won’t be a blocker anymore.

9 Likes

Wow. Talk about a streamlined install! This makes it much less daunting for new self-hosters now.

Is there a timeout to until when this domain is usable? Or can it be used “forever”?

3 Likes

About the diy subdomain, what if we want to migrate to our own domain later? Is a redirection possible?

3 Likes

We discussed this on our call today, general thinking is.

  1. To use the domain … domain MUST be available on the Internet.
  2. A Discourse site must be reachable on that IP. (check regularly, if not available for a week, disable)

Then if for any reason a high value name like cars.discourse.diy no longer hosts a Discourse site, we reserve the rights to pull it back and deactivate from DNS.

Any site that was once active (eg 20 topics) will no not be reused, so becoming inactive for a long period of time will simply disable it. And allow original Discourse ID owner to re-enable manually.

We are sorting out nits with these rules, but the intent is that these domains are for active Discourse sites available on the Internet. Do not use these on an Intranet.

11 Likes

I think I phrased my question the wrong way :sweat_smile:. Is it possible for the self-hoster to use the discourse.diy domain forever for their forum? Or is there only up to a certain time when they can use it (e.g. for 3 months)?

1 Like

the plan is “forever” but we reserve the rights to pull it.

For example:

  • we will pull sites that are hate sites, we do not want to put them on the diy brand.
  • we will pull records on sites that are dead … so it does not resolve to a dead IP or one not running a Discourse site.
10 Likes

Just gave this a try on digitalocean, works great, nice job guys

6 Likes

Does that mean mailing list mode will not be available for the new community? If so it should be made clear at sign up time somehow. I would not join a community where it wasn’t an option.

1 Like

You can surely still add mail support if you want it, it’s just not required anymore which would have solved me so many headaches if it were the case originally

4 Likes

Yes, you can add email configuration and enable mailing list mode at any time. You’ll need to go through the email setup for that, which you can do in the beginning or later.

3 Likes

For those who want to see what the new process looks like.

I installed Discourse on a Hetzner CAX11 server (ARM architecture, 2 vCPUs, 4 GB RAM).
It took approximately 7 minutes from the time I ran the installation script to the site going live.

  1. :magic_wand: Magic starts happening here:

  2. The new installation script asks for the admin’s email, one of the few remaining requirements :laughing::

  3. It then asks for a domain name (default: YES). If we don’t have one, it prompts us to go to id.discourse.com/my/subdomain.

    Beautiful, it is.

  4. After creating the subdomain, we need to generate a verification code to enter during the installation script process:

  5. After entering the verification code, the domain is validated on id.discourse.com. You’re happy that no one stole the subdomain you deeply wanted, and the script asks if you want to configure SMTP (interestingly, default is NO, presumably because we used Discourse ID’s subdomain):


  6. Then, the script validates all the entered information and asks us if everything’s OK (default is YES, as it should be):

  7. After all those quick steps, the rest of the installation is well-known to Discourse’s admins and devs. It rebuilds the app, which takes about 5 minutes on a low-spec server.

  8. After a few minutes of waiting and a cup of coffee, the site is live and asks for our Discourse ID:

  9. You’ll notice that the Wizard now has only 2 steps: the initial login, and this (also well-known) one:

  10. Welcome to Discourse: it was never that easy :partying_face:

12 Likes

The only criticism I have is the choice of the diy extension even though I understand the logic behind.

I’m sure it was thoroughly thought out, but for foreigners (I’d say, at least for French people), it’s both very English-centric, and this acronym probably doesn’t mean anything for most of them.

I also find it oddly difficult to write. Those three characters don’t flow naturally in French :thinking:. It’s also the first time I’ve seen it used as a domain extension, so I’m also not used to it in that context.

In practice, even knowing English, being good at French and being very used to English in IT environments, I still have to focus to write “diy”. It doesn’t come naturally at all.

Perhaps a most universal extension would have fit better.

But well, this is a very nitpicky criticism :grin:

4 Likes

HA I feel the same! It doesn’t roll out at all for me, even thought I was the one who picked it :stuck_out_tongue:

It does fits well at being short, conveying the meaning in the minimal amount of characters, and being cheap, which made it the clear winner for me.

Who knows, if this is very successful, we may offer others in the future. With the infrastructure we got in place for this, adding more down the line won’t be too complicated.

Thanks this is great! I will link it on the OP!

3 Likes