This tutorial will show you how to install Discourse on Rocky Linux. Discourse is an free and open source discussion platform, chatting and mailing list to allow you to collaborate with your team especially in a work environment. Discourse uses Ruby on Rails, Ember.js and PostgreSQL as a backend language, frontend language and database respectively.
Install Discourse on Rocky Linux
Prerequisites
- A valid domain name or hostname
- An SMTP mail server set up
- Root privileges- all commands will be run using root as a user
- Docker installed
Install Docker on Rocky Linux
Update system packages
dnf update && dnf upgrade -y
Install required tools
dnf install -y git yum-utils device-mapper-persistent-data lvm2
Set up docker repository
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
Install docker
yum install docker-ce
In case you get an error when running the command yum install docker-ce
add the flag below
yum install docker-ce --allowerasing
Start docker
systemctl start docker
Check if docker is running
systemctl status docker
● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor pre> Active: active (running) since Thu 2022-06-30 06:39:03 EAT; 33min ago Docs: https://docs.docker.com Main PID: 3487 (dockerd) Tasks: 11 Memory: 88.8M CGroup: /system.slice/docker.service └─3487 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/contai> Jun 30 06:43:50 discourse.itnixpro.com dockerd[3487]: time="2022-06-30T06:43:50> Jun 30 06:43:53 discourse.itnixpro.com dockerd[3487]: time="2022-06-30T06:43:53> Jun 30 06:43:55 discourse.itnixpro.com dockerd[3487]: time="2022-06-30T06:43:55> Jun 30 06:43:58 discourse.itnixpro.com dockerd[3487]: time="2022-06-30T06:43:58> Jun 30 06:44:01 discourse.itnixpro.com dockerd[3487]: time="2022-06-30T06:44:01> Jun 30 06:44:03 discourse.itnixpro.com dockerd[3487]: time="2022-06-30T06:44:03> Jun 30 06:44:06 discourse.itnixpro.com dockerd[3487]: time="2022-06-30T06:44:06> Jun 30 06:44:20 discourse.itnixpro.com dockerd[3487]: time="2022-06-30T06:44:20> Jun 30 06:44:23 discourse.itnixpro.com dockerd[3487]: time="2022-06-30T06:44:23> Jun 30 06:44:27 discourse.itnixpro.com dockerd[3487]: time="2022-06-30T06:44:27>
Configure SELinux policy
Check the current mode
setstatus
If SELinux policy is enforced as it is in Rocky Linux by default, set the current mode to permissive to disable it at system reboot.
sudo setenforce 0
To disable the mode completely, use the command
sudo sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
Then reboot the system
reboot
Install Discourse on Rocky Linux
Create a folder to store Discourse files.
mkdir -p /opt/discourse/
Clone the discourse repository to the directory above:
git clone https://github.com/discourse/discourse_docker.git /opt/discourse/
Navigate to the same directory
cd /opt/discourse/
Run Discourse setup to start installation
./discourse-setup
The setup will request you to enter correct configurations for Discourse. First enter a valid domain i.e. discourse.itnixpro.com
./discourse-setup
Ports 80 and 443 are free for use 'samples/standalone.yml' -> 'containers/app.yml' Found 3GB of memory and 1 physical CPU cores setting db_shared_buffers = 768MB setting UNICORN_WORKERS = 2 containers/app.yml memory parameters updated. Hostname for your Discourse? [discourse.example.com]: discourse.itnixpro.com
Next setup details for SMTP and Let’s Encrypt details. Input an email address for admin account, SMTP address, SMTP port, SMTP username, SMTP password and email address for notification (optional) and Let’s Encrypt (optional) and press enter.
I have skipped inputting notification email, Let’s Encrypt email and Maxmind license key
Checking your domain name . . . Connection to discourse.itnixpro.com succeeded. Email address for admin account(s)? [[email protected],[email protected]]: [email protected] SMTP server address? [smtp.example.com]: smtp.gmail.com SMTP port? [587]: 587 SMTP user name? [[email protected]]: [email protected] SMTP password? [pa$$word]: ITn1xPr0@2O22 notification email address? [[email protected]]: Optional email address for Let's Encrypt warnings? (ENTER to skip) [[email protected]]: Optional Maxmind License key (ENTER to continue without MAXMIND GeoLite2 geolocation database) [1234567890123456]:
Confirm the configuration and press enter to continue.
Does this look right? Hostname : discourse.itnixpro.com Email : [email protected] SMTP address : smtp.gmail.com SMTP port : 587 SMTP username : [email protected] SMTP password : ITn1xPr0@2O22 Notification email: [email protected] Maxmind license: (unset)
Once installation completes, an app.yaml
configuration will be created.
In case you make changes to this file /opt/discourse/containers/app.yml
which stores the configurations, ensure you rebuild the app to apply changes.
./launcher rebuild app
Connection through firewall
Rocky Linux has a firewall running by default. Thus, allow connection through firewall for http
and https
before proceeding.
sudo firewall-cmd --permanent --add-service={http,https}
Reload the firewall
sudo firewall-cmd --reload
Access Discourse Web Interface
Type the URL http(s)://discourse.itnixpro.com
in your browser. Register an admin account.
Click on Register and enter the admin account details.
Check you email and follow the instructions given to activate your account
That is it! You have managed to install Discourse in Rocky Linux .
Upgrade Discourse
To upgrade Discourse, navigate to Discourse directory
cd /opt/discourse/
Download the latest version and rebuild the app to apply changes
git pull
./launcher rebuild app
How to uninstall Discourse from Rocky Linux
Check the container ID by running the command:
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f99383e9fd7a discourse/base:2.0.20220621-0049 "/bin/bash -c '/usr/…" 28 minutes ago Up 28 minutes confident_kare
Next, stop the container using the ID above.
docker stop container f99383e9fd7a
Now, delete the container using the same ID
docker container rm CONTAINER f99383e9fd7a
Conclusion
You have come to the end of this tutorial. Now that you have managed to install Discourse in Rocky Linux, find out more features and how to use Discourse from the Discourse official website.
Similar interesting tutorials
Install Mattermost on Ubuntu 22.04