How to Install Discourse on Ubuntu 18.04

Updated on July 13, 2020
How to Install Discourse on Ubuntu 18.04 header image

Introduction

Discourse is a modern, open-source discussion and forum system. Visit the official site for a demo and a breakdown of the current feature set. This tutorial will teach you how to setup Discourse with Docker on Ubuntu 18.04.

1. Create a new Vultr VPS

It is recommended to use at least 2GB of RAM. Always select the latest 64-bit LTS distribution.

2. Access your Vultr VPS

Connect to your server using SSH via the Terminal on Mac or PuTTY on Windows.

ssh root@192.0.2.123

Replace the example IP address with your server's IP address.

3. Install Docker

Run the following command:

wget -qO- https://get.docker.io/ | sh

4. Install Discourse

Make a folder called "discourse" in the /var directory:

mkdir /var/discourse

Clone the official Discourse git repository in /var/discourse:

git clone https://github.com/discourse/discourse_docker.git /var/discourse

Go into the Discourse directory:

cd /var/discourse

Copy the standalone sample config file to containers/app.yml:

cp samples/standalone.yml containers/app.yml

5. Edit the Discourse configuration

Edit containers/app.yml file:

nano containers/app.yml
  • Set DISCOURSE_DEVELOPER_EMAILS to your email address.
  • Set DISCOURSE_HOSTNAME to your web address to access Discourse, for example: discourse.example.com.
  • Enter your email credentials in:
    • DISCOURSE_SMTP_ADDRESS
    • DISCOURSE_SMTP_PORT
    • DISCOURSE_SMTP_USERNAME
    • DISCOURSE_SMTP_PASSWORD

Be sure to remove the # comment character at the front of the strings.
Save the file and exit.

Note: The email settings are required for the site to function properly.

Bootstrap Discourse

Launch bootstrap:

./launcher bootstrap app

You may be asked a question during the installation about SSH keys. Type Yes.

Once the bootstrap process completes, start Discourse:

./launcher start app

Conclusion

To access your Discourse instance, navigate to value for DISCOURSE_HOSTNAME in your browser.