Install And Configure Discourse Development Environment On Ubuntu

Exported on 24-Sep-2021 13:47:47

Install Discourse On Ubuntu Server With AttuneOps

This Blueprint Installs Discourse Forum On A Ubuntu Server

Discourse is an open source Internet discussion forum application. It runs on Ruby on Rails and React, and has a custom JavaScript framework to accomplish its dynamic front-end behavior. The goal of the Discourse project is to create a simple, nice-looking online discussion platform with modern features like search, tagging, and private messages.

Pre-Blueprint Attune setup
  1. On the Inputs tab, create a Linux node for the host you wish to install the stack on.
  2. On the Inputs tab, create Linux credentials to connect to the host you wish to install the stack on.
Steps Involved
  • Install and configure Docker
  • Clone Discourse project
  • Configure, Build and Run Discourse

Parameters

Name Type Script Reference Default Value Comment
Linux Node Linux / Unix Server linuxNode
Linux User Linux OS Credential linuxUser

1 - Install Docker For Ubuntu

Installs docker to run the discourse image

The connection details have changed from the last step.

Login as user on node

Connect via SSH
ssh user@hostname
This is a Bash Script make sure you run it with bash -l from a terminal session
# Update apt repositories
sudo apt update

# Install docker
wget -qO- https://get.docker.com/ | sh

2 - Start Docker Service

Starts docker daemon

Login as user on node

Connect via SSH
ssh user@hostname
This is a Bash Script make sure you run it with bash -l from a terminal session
#Start docker
sudo service docker start

3 - Clone Discourse Repository

Downloads the latest release of the Discourse source code

Login as user on node

Connect via SSH
ssh user@hostname
This is a Bash Script make sure you run it with bash -l from a terminal session
# Clone latest release from Discourse github repo
sudo git clone https://github.com/discourse/discourse_docker.git

4 - Upload Discourse Config File

Uploads discourse initial configuration file.

Replace following variables with your own, currently we are using a dummy SMTP server credential from Mailjet:

DISCOURSE_HOSTNAME: 'discourse.test' DISCOURSE_DEVELOPER_EMAILS: 'me@example.com,you@example.com'

DISCOURSE_SMTP_ADDRESS: in-v3.mailjet.com DISCOURSE_SMTP_PORT: 587 DISCOURSE_SMTP_USER_NAME: 03114bcb5c42df3c21e42fd0bb27ff95 DISCOURSE_SMTP_PASSWORD: 098f7c25bbea521bc4bbc6ae9d52c591

Login as user on node

Connect via SSH
ssh user@hostname
Deploy archive discourse-app.yml.zip to remote path uploads
  1. Locate Files archive "discourse-app.yml.zip", This can be downloaded from Attune
  2. Copy the Files archive to the server
  3. Extract the root of the Files archive to uploads, relative to the home directory
  4. Check that the files are in the correct location

5 - Configure Discourse

Places the default configuration file to discourse project location

Login as user on node

Connect via SSH
ssh user@hostname
This is a Bash Script make sure you run it with bash -l from a terminal session
# Move config file
sudo mv ~/uploads/discourse-app.yml ~/discourse_docker/containers/app.yml

6 - Rebuild Discourse Image

Rebuilds docker application image

Login as user on node

Connect via SSH
ssh user@hostname
This is a Bash Script make sure you run it with bash -l from a terminal session
#CD Into discourse directory
cd ~/discourse_docker/

# Creates a fresh Discourse image from the source
sudo ./launcher rebuild app

7 - Run Discourse

Installs screen required to run the build process in background.

Once the build is complete, it launches the Discourse application server. You can see the background process by running: screen -x

Login as user on node

Connect via SSH
ssh user@hostname
This is a Bash Script make sure you run it with bash -l from a terminal session
#CD Into discourse directory
cd ~/discourse_docker/

# Lauches discourse application
sudo ./launcher run app