Classic $99 Discourse Install (You really want the Lite Install with https!)
Note: I do not recommend this package unless you are a hobbyist who is going to log in and enable https yourself. You probably want the Lite Install which includes https, as Google and most web browsers will punish you if you do not have https enabled. Want to minimize downtime during rebuilds and updates? Check out the Pro Install or see all installation pages here before ordering.
Please have a look at the new version of this document!
What you want to know about self-hosting Discourse
An affordable way to use Discourse is to manage your own Discourse instance on a Digital Ocean cloud server. For all of my installation packages I will configure Mailgun, a mail delivery service, create a Digital Ocean virtual host (in the “cloud”), and install and configure all of the software needed to make Discourse work for you and your community. When that is done, you will have what on https://meta.discourse.org/ is considered a “standard install” (but not to be confused with my “Standard Install” which includes, https, plugins, and an incoming mail server).
My Discourse Install includes the following:
- Discourse installed and configured on a 1GB RAM, 25GB SSD ($5/month) Digital Ocean droplet (that my script will create); the Standard Install includes a 2GB, 50GB SSD ($10/month) droplet. If you can swing the $10/month, I highly recommend it.
- Detailed instructions (see an example) to finish your part of the installation, which includes creating some DNS records and clicking a button on the Mailgun site.
Note: You must create your own Digital Ocean and Mailgun accounts and provide me with API keys. You do not need to do anything other than create your accounts, provide both vendors with means of payment, and send me the API keys. See API Key instructions below.
Here’s what you need to do:
- Create a Mailgun account. Though delivering the first 10,000 messages per month is free, credit card payment information is required to use their service. I recommend that you click the “add payment info now” box when you create your account to save the step of adding it later. You must also “upgrade” your account to “Concept Utility Pricing” in order to be able to send email.
- Create a Digital Ocean account (if you use my referral link you will get a $10 credit, making your first two months free).
- Provide me with:
- Pay $99.
- Wait (usually less than 1 business day, sometimes less than an hour).
- Follow my easy-to-follow instructions to create DNS records required for accessing your site and enabling mail delivery.
- Activate your domain on Mailgun by clicking a button on their site.
- Build your community!
This service includes only installing Discourse, not any support configuring it, or domain registration. This job is done when your setup is properly functioning and can send mail. If you need help after that, you can seek free help on https://meta.discourse.org/, or pay me for priority support.
I have spent over a hundred hours making this process quick for me and easy for you. Try Discourse risk-free. If in the first 30 days you decide that self-hosting Discourse is not for you for any reason, I’ll delete your droplet and refund your money.
If you want support, I can provide it.
Though your self-supported install does not include support, I do offer additional consulting services. See these offerings or email email@example.com and let me know what you need. You want your own personal help desk to help you navigate hundreds of settings, I can do that.
Frequently Asked Questions
What is a “Community Install”?
I will install and configure Discourse for your community.
I am not a techie. Will I be able to get this up and running?
Yes. I will send you instructions to make changes to your DNS records: one for the address of you site, and two TXT records required for mail delivery. After that, you will need to log in to Mailgun and click a button to get Mailgun to verify those records and activate your domain.
What do I pay after the installation?
I create a 1GB Digital Ocean “droplet” for which they charge $5/month. Mailgun delivers the first 10,000 messages/month for free. The next 10,000 is $5; you can see the Mailgun pricing page for more information.
What is an API Key? How do I get one?
An API key is a unique identifier, sort of like a password, that allows my scripts to create Digital Ocean Droplets and configure Mailgun without logging in to the web interface. Before you create your installation order, go to the Digital Ocean API page, click the “Generate New Token” button to generate a token, type any name you like, and click the token (a string of 64 numbers and letters) to copy it. After the token is created, you cannot see it again, so paste it somewhere you can find it when you place your order. If you lose it, just create a new one.
On the Mailgun account/security/api keys page (if that link doesn’t work, you need to first log in and enable the new interface) click the eyeball icon on the right to be able to see and copy the Private API Key.
I already have a website. Can I keep it and have Discourse on Digital Ocean?
Yes, in fact, that is the easiest solution. Keep your current site just as it is and install Discourse on a sub-domain like forum.example.com. If you use WordPress, you can use the wp-discourse plugin to connect your WordPress site (wherever it is hosted) with your self-hosted Discourse install.
What domain name can I use? Does my domain name have to be forum.example.com?
You can use any domain name that you own and control. You can make your forum be example.com or www.example.com. Most often, however, people already have another site at example.com, so most people use a name like forum.example.com.
Is a 1GB Droplet sufficient?
For most small communities, yes. During Discourse upgrades (either from the web interface or the command line), however, substantial memory is required and swap space is required. If you anticipate having a large community, using plugins, or can just afford an extra $5/month I recommend the 2GB droplet. Keeping things down to 25GB requires continual disk space cleanup and leaves little room for backups.
Must I use Digital Ocean? Can I use another service?
Most people use Digital Ocean for their Discourse sites. I do not remember any complaints on Meta complaining about Digital Ocean’s reliability since I started following it in Spring of 2015. I can install Discourse on other systems that support Docker. Typically this requires a minimum of 2 hours of my time. I can install Discourse on other compatible platforms as a Custom Install. If you have shared hosting that uses cpanel or something like it, you cannot install Discourse there.
Help! Something went wrong when I upgraded!
Though 1GB is enough memory to run Discourse for many communities, more memory is required during upgrades. If something goes wrong, you can enlist my services. Often, however, (and especially if you have not installed any plugins) all that is needed is to log in to your server via ssh or Digital Ocean’s console and issue these commands:
cd /var/discourse git pull ./launcher rebuild app
If in the first six months you need a rebuild (as shown above) and you have not removed my SSH key, I will do one for free; send me an email that includes your host name, and I will do it as soon as possible.
What are the trade-offs between a “self-supported” install and the $100/month standard hosting offered by Discourse.org?
If you can afford their services, that’s what you should do. The advantages of buying one of the hosting plans offered by Discourse.org include:
- having a professional team distributed across all the time zones that makes sure that your site is always up and running the latest revision
- increased likelihood that new features that you want will be added to Discourse
With your self-hosted site, you are responsible for doing upgrades of Discourse and the operating system, backups, and so on (though if you need help with these tasks, I am available). If something goes wrong, no one else is responsible for noticing the problem and resolving it. You can ask for help on meta.discourse.org, and hundreds of people are running Discourse this way.
Do I get the Full Version of Discourse? Are there user or admin limits?
Discourse is Open Source Software. You get the same code that runs virtually every Discourse site. There are no limits on the number of admins, users, or posts imposed by the software. To keep things as simple and trouble-free as possible, this install does not include any plugins. If you would like plugins for additional functionality, I will be happy to install some (my install instructions include a coupon code for a discount).
Is my language supported?
I don’t know, but you can find out by creating an account at try.discourse.org and then clicking the avatar, the gear, and clicking the interface tab (or use this link after you’ve created an account). To see how complete a translation is and/or to contribute to translation, see Transifex.
What is required to keep my Discourse up to date?
I set up your Discourse install on the “tests-passed,” branch. That’s the code that the folks at discourse.org use for their customers, and keeps you up with the latest changes. When a new version is available, admins will get an email notification with a link to the upgrade page. From there, you can click to update Discourse. Generally, these updates are safe, especially if you do not have any nonstandard plugins installed, but it is prudent to wait a few days after a release. If there are problems, they are usually sorted out pretty quickly.
I also enabled unattended upgrades as recommended here and enable automatic reboots to ensure that if your system needs to be rebooted to install critical security patches, it will reboot to install them. See this post for more information about maintaining your Droplet and this Digital Ocean document for their recommendations.
Is it difficult to move my Discourse site from one hosting option to another?
No. You simply make a backup, download it, and restore it to the new site. Making it seamless makes it a bit more tricky, but if an hour or two of downtime is acceptable, it’s not that hard.
What about backups?
In Discourse settings, you can turn on automatic backups enabled, and set backup frequency and maximum backups. If you have a backup file, you can restore it to any Discourse instance and you will have everything you need. Of course, having your backup file where you can get it. I can install a plugin that will sync your backups to your Dropbox, Google Drive, Nextcloud, or Box.
If you take a snapshot of your Droplet you can create a new droplet that will have Discourse running on it and then upload and restore your backup.