Learn How To Install Discourse on Ubuntu 14.04

January 26, 2020

Table of Contents

If you are using a different system, please check our other tutorials.

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 14.04.

Create a new IT Web Services VPS

1GB of RAM is minimum amount, although it is recommended to use at least 2GB of RAM. Always select the latest 64-bit LTS distribution.

Access your IT Web Services VPS

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

ssh root@123.456.7.8

Replace “123.456.7.8” with your server IP.

You will be prompted to type “Yes” or “No” to add the server’s RSA fingerprint to your list of known hosts. Type “Yes” and hit enter.

Setup swap (only for 1GB install)

  1. Create an empty swap file: sudo install -o root -g root -m 0600 /dev/null /swapfile
  2. Write out a 1GB file named: swapfile: dd if=/dev/zero of=/swapfile bs=1k count=1024k
  3. Tell Linux that this is the swap file: mkswap /swapfile
  4. Activate it: swapon /swapfile
  5. Add it to the system table so that it is available after reboot: echo "/swapfile swap swap auto 0 0" | sudo tee -a /etc/fstab
  6. Set the “swappiness” so that it is only used as an emergency buffer: sudo sysctl -w vm.swappiness=10

Install Docker/Git

Run the following command: wget -qO- https://get.docker.io/ | sh

Install Discourse

  1. Make a folder called “discourse” in the /var directory: mkdir /var/discourse
  2. Clone the official Discourse git repository in /var/discourse: git clone https://github.com/discourse/discourse_docker.git /var/discourse
  3. Go into the Discourse directory: cd /var/discourse
  4. Make a copy of the config file as app.yml: cp samples/standalone.yml containers/app.yml

Edit the Discourse configuration

  1. Edit the app.yml file: nano app.yml
  2. Set “DISCOURSE_DEVELOPER_EMAILS” to your email address.
  3. Set “DISCOURSE_HOSTNAME” to your web address to access Discourse (example: discourse.itweb.services.com).
  4. Enter your email credentials in “DISCOURSE_SMTP_ADDRESS”, “DISCOURSE_SMTP_PORT”, “DISCOURSE_SMTP_USERNAME” and “DISCOURSE_SMTP_PASSWORD”. Be sure to remove the “#” (hashtag) before editing the following strings.
  5. If you are running only 1GB of RAM, set “UNICORN_WORKERS” to 2 and “db_shared_buffers” to 128MB so that you have more memory room.
  6. Save the file and exit.

It is important to note that you must have your email settings setup properly – otherwise you’ll have a broken site!

Bootstrap Discourse

Run: ./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

Setup complete

Congratulations – you now have your own instance of Discourse up and running!

To access it, simply type in what you set for “DISCOURSE_HOSTNAME” in the configuration file.


Need help?

Do you need help setting up this on your own service?
Please contact us and we’ll provide you the best possible quote!