Discourse One-Click Application

Discourse is a popular piece of discussion forum software written in Ruby on Rails. Discourse provides a number of built-in improvements over previous generation forum software, including mobile support, oAuth authentication options, a user trust system, notifications, and many other features.

DigitalOcean’s Discourse One-Click application builds a containerized Discourse forum for you. By running Discourse within Docker, it becames easier to deploy and keep Discourse updated.

Components

Droplets created using this One-Click have the following software components:

Component Version
Linux Ubuntu 18.04.1
Discourse Latest from Discourse’s official Docker image
Docker CE Latest from Docker stable channel

The Discourse Docker image also provides the Discourse’s software dependencies, including Ruby on Rails, Redis, Nginx, and PostgreSQL.

In addition to the package installation, the One-Click also:

  • Enables the UFW firewall to allow only SSH (port 22, rate limited), HTTPS (port 443) access, and 2375/2376 for unencrypted/encrypted traffic to the Docker daemon.

Quickstart

Before you begin with your Discourse One-Click Droplet, you will need:

  • Credentials for an SMTP server. These credentials are critical to for account creation and notifications in Discourse.

    If you have an existing mail server, you can use those credentials. If you don’t have or want to run a mail server, there are several providers where you can set up an SMTP account, such as SparkPost, Mailgun, Mailjet, or Mandrill.

  • A hostname (domain or subdomain). You’ll use this for your forum; you cannot use an IP address with Discourse.

  • An email address to use for the Discourse admin account.

Additionally, Discourse requires at least 2GB of RAM, so make sure to choose a plan with enough memory during creation.

After creating a Discourse One-Click Droplet, you’ll need to connect to the Droplet via SSH to complete the setup.

ssh root@use_your_droplet_ip

Once you connect, you’ll be prompted to complete Discourse’s configuration by entering the three details mentioned earlier: an email address for the admin account, the domain or subdomain for Discourse, and the SMTP server credentials.

To get started, the following configuration details will be required.

- Email Address for the Discourse Admin Account
- The hostname (domain or subdomain) you will use for Discourse
- Details for the SMTP server your Discourse install will use to send email

If you want to skip the initial Discourse setup, you can press CTRL+C. The next time you log in, you’ll be prompted again. Alternatively, you can re-run the setup script any time by running bash /var/lib/digitalocean/discourse.sh.

Once you’ve completed the initial Discourse setup, you can create a Discourse account on the new forum by visiting the hostname you chose in your browser.

Enabling HTTPS

We strongly recommend using SSL to secure the connection between the Discourse server and the clients connecting to it. Discourse provides the following resources on setting up SSL:

API Creation

In addition to creating a Droplet from the Discourse One-Click application via the control panel, you can also use the DigitalOcean API.

You can list all One-Click application images using the API. As an example, to create a 4GB Discourse Droplet in the SFO2 region, you can use the following curl command. You’ll need to either save your API access token to an environment variable or substitute it into the command below.

curl -X POST -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer '$TOKEN'' -d \
    '{"name":"choose_a_name","region":"sfo2","size":"4gb","image":"discourse-18-04"}' \
    "https://api.digitalocean.com/v2/droplets"

Next Steps

Once your Discourse forum is configured, you can start customizing and extending it. For example, you can:

The official Discourse forums include a how-to section with resources on how to get the most of your Discourse setup.