Discourse on AWS?

I have been through many pages of this official discourse forum and I have some doubts which need to be cleared. Please help me out.

  • Why Discourse official do not recommend AWS SES (SIMPLE EMAIL SERVICE) even it is very cheap considered to other SMTP providers. Are they not good enough? More email delivery time or email delivered in spam folder or some other reason?

  • Discourse on Digitalocean vs Lightsail?

  • If possible please add tutorials for various hosting providers to host discourse.

  • One detailed tutorial I would like to request from Discourse Officials.

  • Discourse on Amazon AWS Lightsail + SES. (external domain registrar).

And if you are using SES please share your experience.

1 Like

So there is a tutorial for that.


I believe the reason for the recommendation of DigitalOcean in the standard install is the relative simplicity. The goal is to make the process as straightforward as possible so that people can get on with using the product, rather than get mired in additional steps such as network ACLs, object storage, and caching.

As Richard has pointed out, other guides do exist, including the one you’ve requested, but these are more complicated and error-prone. I’ve amended your title, Discourse doesn’t deter against installation on Amazon, it’s just not optimal for first-time installers.


Because it is pretty hard to configure compared to other SMTP providers. People who need help selecting what mail service to use are not likely to be able to figure out how to get SES to work.

Lightsail is easier than EC2, but Digital Ocean is easier still.

I imagine that it works just great for those who can make it work. A novice can probably figure out Mailgun in 15-60 minutes. SES is likely to take 4X that. It’s designed for professionals, especially professionals with tools to automate it.

Which didn’t make sense to @lakshya:


Having moved out from Mailgun to SES and not knowing much about email stuff… I can confirm (though it works perfectly in the end…). :sweat_smile:
Amazon’s services overall are quite complex in terms of ease of access and configuration.


Thanks, @Canapin. Then I’m going to double-down on my stance that “if you want to use SES to send mail then Somewhere Else is where to go to figure that out.” If you can figure it out, it’ll work just fine, but Stack Overflow or anywhere else is who to ask.


Yeh somehow it didn’t.

That article is not for beginner, kind of messy. As my project is budget constraint so SES is perfect match. Can’t pay $10 for mail services like mailgun sendingrid etc. :confused: (my bad).
If possible make one step by step tutorial for AWS Lightsail+SES it will help alot, possible people like me who cannot spend much.

The flex plan is $1/1000 messages: https://help.mailgun.com/hc/en-us/articles/203068914-What-Are-the-Differences-Between-the-Free-and-Flex-Plans-

No. It is not. Configuring SES is not for beginners. I’d recommend giving lightsail a try (which is for beginners and the standard install works just fine) with mailgun.

Again, if you need help with SES, you’ll need to find it somewhere else. There are also not really any instructions for configuring mailgun either. It’s on the service provider to make it possible to use their service.


thx for the help mate.

1 Like

To be fair Jay is right. Discourse needs a standard set of SMTP credentials and meta is about providing support primarily for Discourse, not third party mail platforms.

If you choose a more complicated service you also assume any additional complexity created by that choice.


Just to be crystal clear, from the Discourse point of view, all you need to do is to configure these variables on your app.yml:

DISCOURSE_SMTP_ADDRESS: email-smtp.AWS_REGION.amazonaws.com

If you have gotten these three (AWS region, SMTP username, SMTP password) figured out from AWS and properly configured on their console, you just need to set them here, rebuild Discourse and email delivery should work.

What is outside the scope of Discourse is getting AWS to validate your account, validate your domain name and any other action you may need to do at the AWS Console to get to this point.

That said, I don’t recall it being that complicated, essentially following their UI instructions and some Googling should help. Also, remember to request production access on their end to leave their sandbox environment.


Maybe a better term would be “not user-friendly” then.

Of course, when you know how to do it, it’s a matter of several clicks and fields to fill, as with any other service. But in my eyes, Amazon’s services aren’t user-friendly. Their interface differs a lot from popular other companies’ services that are more “straight to the point”. There are a lot of cryptic settings and options that you should ignore if you’re just sticking to a basic configuration, but they add noise to the process.


That’s the part that seems hard. With mailgun, I can start sending mail minutes after the Spf and dkim records are set. Just filling out the questions seems rather complicated and is certainly not something that we can support here.

1 Like

Would you be willing to write an idiot’s guide for this process? :slight_smile:

Have you first tried the official guide?


I sometimes fail at reading manuals; I tried to configure it myself first, but in the end, I relied on the doc for some steps. I suppose it would have been easier if I had stuck to the manual instead of trying to figure out things by myself.

That said, since I actually didn’t read the manual from A to Z, I don’t know if there are a bit obscure parts in it.

1 Like

I don’t think I ever saw that page. It doesn’t look too bad! Thanks.

At point 4, which connection method did you choose?

Also, is there a similar page to explain the required DKIM/SPF/DMARC settings?

:warning: I don’t remember it all and I’m not an expert.

I used Easy DKIM. When it’s validated by Amazon, the dashboard provides three CNAME entries to add to your DNS settings:

You can start from here and see if it works by sending a test email from the Discourse admin interface and see if there is any error (for example in Email → Skipped).

:information_source: I’m pretty sure that if you’re still in Sandbox mode in SES, you need to create and validate an Identity with the recipient email address of your Discourse sending test in Amazon SES. Otherwise, you’ll have an error message (554 Message rejected: Email address is not verified.).


1 Like