Install and Configure Discourse Development Environment on CentOS 7, 8 (Docker)

Exported on 24-Sep-2021 13:31:29

Install Discourse On CentOS Server With AttuneOps

This Blueprint Installs Discourse Forum On A CentOS Server

Discourse is an open source Internet forum and mailing list management software application founded in 2013 by Jeff Atwood, Robin Ward, and Sam Saffron. Discourse received funding from First Round Capital and Greylock Partners. The application is written with Ember.js and Ruby on Rails.

Discourse allows you to setup a fully-functional community or forum website in quick and easy way using Docker.

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

Updates apt repositories and Installs docker.

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 yum repository
sudo yum -y update

# Install docker
sudo curl -fsSL https://get.docker.com/ | sh

2 - Start Docker Service

Starts docker daemon and configures it to launch at startup.

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
# Enable docker
sudo systemctl enable docker
sudo systemctl start docker
sudo systemctl status docker

3 - Clone Discourse

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
#Install git
sudo yum -y install git

# Clone latest release from Discourse github repo
sudo git clone https://github.com/discourse/discourse_docker.git

4 - Upload 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 - Build & 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
# Install screen
sudo yum -y install screen

# Enable zombie mode
sudo echo "zombie xy" >> ~/.screenrc

#CD Into discourse directory
cd ~/discourse_docker/

# Create deployment script
echo 'sudo ./launcher rebuild app; sudo ./launcher run app' | sudo tee -a  deploy-discourse.sh

# Creates a fresh Discourse image from the source
screen -d -m  bash deploy-discourse.sh