Installing Discourse on a self hosted VPS. A process with FAQs

A novice’s step by step specific process for installing Discourse. From choosing a right server to configuring it, to SMTP, DNS & doing it all in the right order. Because of such a manual process with many branches with many options, I have many uncertainties & heard many setups go wrong when not done carefully. I wanna get this right & 'd be grateful if anyone can correct me. I’ll go with as many steps as I can & pause when stuck. This can be a helpful page with main doubts summarized as comprehensively in 1 place

Goal: Installing Discourse on a self hosted VPS for a forum starting with 100 users/m

1) Out of the 2 available official guides, I’m choosing the simple one. What issues could I face? Is this not good for future flexibility/expansion?
Simple 10 minute basic install: Beginner Docker install guide
Powerful, flexible, large / multiple server install: Advanced Docker install guide

2) Is this a good order of setup? i) Configuring & renting a vps > ii) SMTP > iii) Domain & DNS > iv) Install Discourse

3.1) Re Domain & DNS, I already have a website with my custom domain. Not sure which I should do; Subdomain or Child nameserver? Checked but don't understand

3.2) Though not now, if needed, a Discourse forum can be connected to a pure domain like example.com right (if unused ofc)? It doesn’t have to be a subdomain like forum.example.com right? Why does Discourse’s guide only say “Create a DNS - A record pointing your subdomain (e.g., forum.example.com) to your server’s IP address”

4.1) Re SMTP: Completely confused here. Re user logins, this is my goal Connect User logins from my Wix site for my Discourse forum To ensure this, what should I do?
4.2) I haven’t set up a business email yet, & can now from Hostinger. Does this have much to do with SMTP? Re smtp I’ve heard on this forum about MailGun, MailJet & Brevo. WDID?

5) Choosing & configuring vps: Contabo & Hetzner were cheapest while seeming pretty legit, if I chose the cheaper Contabo, will I miss something useful? they’re safe right? (I wanted to compare the whole config with Hetzner but it doesn’t even seem to let you see config options without getting your data, debit card & reviewing yr AC?? The most I have are @Lilly’s screenshots)
5.1) Panel: Contabo shows Webmin & Webmin + LAMP are included. cPanel is shown as a pricey addon. I’ve heard of cPanel, I don’t need this right?
5.2) OS: Contabo shows Ubuntu included without anything about it, is this sufficient? (Digital Ocean’s config shows options next to their Ubuntu eg. 24.04 (LTS) x64

5.3) A buncha apps are shown as included. If you find issues with any lmk

5.4) Are the following default selections ok? I can manage without addons right?

5.5) IPv6 is not shown in the config, though under their vps plan page the following is advertised ‘Dedicated IPv4 and IPv6 addresses come with every plan’. I wonder if this has it or not
5.6) Heard few negatives re Contabo, what do ppl here who’ve experienced Contabo think?

5.7) Foll. good specs are the min available & for great prices! Just to know, (in case changing vps) as Discourse recommends 2GB, isn't 4 unnecessary? What's a snapshot?

Screenshot 2026-07-18 004447

If you are a beginner, follow the beginner install guide. Don’t get ahead of yourself.

Personally, I make sure my SMTP is working correctly (I have the API keys and whatnot) with DNS pointing to my IP and then I go to finish setting Discourse up because the setup wizard will complain if the DNS is not 100% correct and you are out of luck.

I’m not sure what your provider means here. Maybe they mean “subdomain”? In that case, add your VPS’s IPv4 to it.

Yes, an address is an address. It can be x.example.com, example.com, x.y.example.com, or even example.com/x/ (with some advanced setup).

You will need SMTP for summaries, admin alerts, etc regardless of DiscourseConnect.

Looks okay to me

If you are using Cloudflare IPv6 is probably irrelevant. If you aren’t using any form of proxy and somebody who has IPv6-only networking then they won’t be able to visit your site but that is relatively uncommon nowadays (lots of ISPs give a “dedicated” IPv6 and a shared IPv4 they can still route traffic through)

200Mbps is not very fast but the rest of this is perfect for a small-mid size forum. The 2GB recommendation is relatively for some reason so 8GB will serve you well. I run my small site on a LXC (lower overhead) with 8GB/6vCPUs and my resource usage is low, CPU spikes to about 50-60% during rebuilds.

Snapshots are basically just restore points for your VM so if anything goes wrong you can roll it back. Not too useful when you have frequent off-site Discourse backups (over R2 or something) but it’s still a “nice to have” just in case.

please don’t @ mention people. i really do not need the additional noise in my notifications and it’s poor forum etiquette in general. if you want to use usernames without actively mentioning them then put back tics around them or use the preformatted text button in the composer (like this @Gid) so they don’t send a notification to the user. let people respond if they read your posts and wish to reply. thank you.

good luck with your new endeavour.

don’t even go near this right now. stick to the basics.

  1. get a domain name with a nameserver like namecheap. or since you have one you want to use already:

do a subdomain - this is the standard way to install discourse, so that it will be something like forum.yoursite.com. a child domain is something different for regional networking and operates on a broader scale for other uses that require more granular network security and permissions (often with Active Directory configurations, which does not apply to Discourse).

  1. if you don’t want to use DiscourseID, then get a transactional email service with SMTP (like Mailgun or Resend). Resend is free and i use it. but honestly, i recommend just skipping the SMTP part and using DisourseID so you can learn in steps.

  2. setup a VPS server droplet with ssh access with which ever VPS vendor you choose. you will need to do some configuration as stated in the guide. you basically do the nameserver, email and VPS config at the same time, but you also have to wait for the nameserver dns entries to propagate. these are the steps most people have problems with at first

  3. install Discourse according to the script in the guide.

Single Sign On (SSO) is not something you should even be thinking about yet since you still learning how to set up the most basic self-hosted install. get your forum up and running, then think about plugins. by the looks of existing documentation, configuring SSO with your wix website will likely be a headache and it is questionable whether it is even possible at all with your wix tier.

to edit your app.yml file after the initial setup runs, at the prompt when you ssh into the server do:

cd /var/discourse
nano containers/app.yml

there is a sample app.yml file here:

yml file syntax is very sensitive - your rebuilds will break if you have extra spaces or indentation, or if you don’t wrap passwords (and some other settings params) in double quotations like "password".

I would say don’t go right up the the lower limit of 2GB, unless you are running a small forum with not many users.

No, cPanel is not needed.

Does the business email provide a transactional mail service? I know some don’t. It’s safer to use things like Mailgun, Brevo, Amazon SES, etc.

Others have elaborated on this, but I’m linking the documentation for this: Configure your hosted Discourse site to run at the root or apex domain (e.g. example.com)

That said, I would suggest you just go with the normal, default option of using a subdomain. Plus, if you already have your main site under the root domain, it makes it obvious that the forum is under that org and not a random one on the net.

A snapshot is essentially a complete backup of the whole VPS. You can still take backups of Discourse regularly in case something goes wrong, if you’re only hosting Discourse on the VPS.

oh.. this was quite important for me & was a reason behind me choosing self hosting. If this can be sorted out later without much difficulty then fine, but I wonder if this particular setup will harden this later? Pls lmk if I should I be doing something different now to allow for that functionality even if I don’t do it now?
The forum is only an extension of my main site, & the users need to be as unified at least at a minimum level. If they’re segregated as separate users that would create a lot of problems in my case
Idk if SSO is the only solution, but I want to have as less separation bw my Wix site & the Discourse forum. The Wix login replacing any of these logins as the only login is great. If really hard, maybe a mandatory extension to Discourse’s signup to link with their Wix account. Again, not wanting to do this now, just wanna ensure I do this setup to allow for that

like i said above:

and here you posted:

what do you know about MiniOrange? the free plan looks like it is limited to only a few users, and thus it could get expensive for you at $49/month for the basic plan:

research and careful reading are essential when planning for what you want to achieve.

do you know how to write a Velo script for Wix?

Whatever AI wrote that, it clearly does not understand that OpenID/SAML and Discourse Connect are entirely different things, so I wouldn’t trust the other things it’s saying either.

(post deleted by author)

Thank you everyone for all those answers so far​:folded_hands:

With >2 reps, I had this checked & confirmed. Their business email covers Discourse’s SMTP needs, without needing a provider like MailGun. They caveated it too; stating it’s not for marketing/mass emailing
Main limits of their Business Starter plan (1 yr deal @ 0.79/m):

  • Daily sending limit: 500 emails per day.
  • Max recipients per email: 200 recipients.
  • Monthly sending limit: None, just the daily limit
    Their full specs, including IMAP/SMTP limits: Parameters and limits of Hostinger Email
A summarized chat abt that👆 with details if ppl wanna check further

I see you’re considering Hostinger’s Business Email plan for your Discourse SMTP needs & wanna ensure it covers everything without needing Mailgun. happy to look into this…
You can use Hostinger Business Email’s SMTP for your Discourse setup, and for regular business communication and standard forum notifications, you won’t need a separate provider like MailGun.
However, it’s important to keep in mind that our SMTP is not designed for marketing or mass emailing. It is mainly intended for business communication. If you plan to send high-volume marketing campaigns or large-scale transactional mailings, a dedicated service like MailGun would still be the better fit for those specific needs.

If I setup the business email with hostinger, but in the future need mass emailing, can I just use for eg MailGun without having to migrate/or register a new email with MailGun?

It’ll depend on the necessary setup for Mailgun. Let me confirm…
If you were to send emails only use SMTP from Mailgun, you would need to add additional TXT records. The MX records would not change so you can continue receive emails on Hostinger email plan while using it

Didn’t quite understand that, can you pls explain it to me more

Think of your email like a physical mailbox:
Receiving (Box itself): Your emails arrive at Hostinger cuz of your MX records. You’ll keep these exactly as they are, so you’ll continue to receive all your mail in your Hostinger inbox.
Sending (Postman): You can have more than one way to send mail. By adding a TXT record (specifically for SPF and DKIM) to your domain, you’re essentially giving Mailgun “permission” to send mail on your behalf.
Meaning you needn’t migrate/register a new email address with Mailgun. You can keep your professional mailbox at Hostinger for daily business chats, & just use Mailgun as a “sending engine” for high-volume forum notifications or marketing emails when you’re ready


Ya.. MiniOrange is prally not what I’m after, based on their site it seems to be a 3rd party IdP. I’m tryna use my existing Wix database as my IdP

Not exactly sure wym by a script, but I’ve done a lot of front & backend velo coding on Wix, built many features using velo code by myself & with AI & tutorials, but I’m a rookie. I had a glance at your code, 'd love to try it after install. Re the wix forum, it’s good (though not as live as here), & that question hasn’t been answered yet

So far I’ve; :check_mark:setup email w Hostinger for SMTP (updated dns records for this like MX, CNAME & TXT on my Wix) :check_mark:Ordered a vps & waiting for it to be provisioned

Not like installing some mobile app haha