Manage your own Discourse Install rather than using a hosting company. I configure Mailgun, create a Digital Ocean virtual host, and install and configure all of the software needed to make Discourse work, as well as configure the Ubuntu operating system to automatically install required security updates.
My Discourse Install includes the following:
- Discourse installed on a 1GB RAM, 30GB SSD ($10/month) Digital Ocean droplet that I will create and configured for your domain name as described in the Install-cloud documentation.
- 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 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 to save the step of adding it later.
- Create a Digital Ocean (if you use my referral link you will get a $10 credit).
- Provide me with:
- Pay $99.
- Wait (usually less than 1 business day).
- Follow my instructions to configure your DNS A record to point to your site and TXT records required for mail delivery.
- Activate your domain on Mailgun.
- Build your community!
This service includes only installing Discourse, not any support configuring it, or domain registration. My job is not done until your setup is properly functioning and can send mail (but only you can update your DNS records and you cannot log in until you do) and you have established your admin account. If you need more help, like importing data from your existing site, instruction on managing Discourse, or integrating with WordPress, I can help. Email firstname.lastname@example.org and let me know what you need.
Discourse Install Questions
I am not a techie. Will I get enough support to get this up and running?
Yes. I will send you instructions to make three 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 check those records and activate your domain. I include instructions to make this easy for Normal People.
What do I pay after the initial install amount?
I create a 1GB Digital Ocean “droplet” for which they charge $10/month. Mailgun delivers the first 10,000 messages/month for free. The next 10,000 is $5; you can see their 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. 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 Dashboard on the right hand side, just under Account Overview, you should see something like the image below. Click the little eyeball on the right to be able to see and copy the Secret API Key. It comprises “key-” (not “pubkey-“) plus 32 letters and numbers.
Is a 1GB Droplet sufficient?
For most small communities, yes. During upgrades, however, substantial memory is required. Sometimes upgrades fail and you need to rebuild Discourse from the command line. (See Help!, below.)
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.
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.
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).
How do I get my site encrypted with https?
In order to do this, you have to have the DNS for your domain name pointing at your Discourse instance. After you have done the install and made the DNS changes, you can either follow these directions on meta or get me to do it. My install instructions include a coupon code for $50 off.
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?
The advantages of buying one of the hosting plans offered by Discourse.org include:
- having a professional team 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. 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.
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.
A common problem is that Discourse will run out of memory when doing an upgrade. If that happens, you can need to ssh in to your Discourse (or use Digital Ocean’s console link) and do this:
cd /var/discourse git pull ./launcher rebuild app
That will update Discourse and any plugins you have installed. Unlike upgrading from the web interface, your site will be unavailable while it rebuilds, but if your site was already down, it makes no difference.
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.
What is required to keep my Droplet’s OS up to date?
I configure your droplet to automatically apply critical updates, remove unused dependencies, and to reboot automatically (at 9:00 UTC, 4:00 EST, 1:00 PDT) if a critical update (typically a kernel update) requires a reboot.
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 is a Dropbox plugin that will sync your backups to your Dropbox.
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.