Detailed Discourse Installation Guide 2025 Updated
Discourse is a modern, open-source forum software built on Ruby on Rails. It is SEO-friendly, mobile-responsive, and offers a powerful community management system.In this article, we’ll explain the step-by-step process of installing Discourse using the most up-to-date method as of 2025.
🔧 Prerequisites
✅ System Requirements:
- Ubuntu 22.04 LTS (or later)
- Minimum 2 GB RAM (Recommended: 4 GB+)
- 1 CPU core (Recommended: 2+)
- 10 GB disk space (Recommended: 20 GB+ SSD)
✅ Required Tools:
- Root or sudo-enabled user
- A domain name (example: forum.yoursite.com)
- Mail service (Mailgun, Postmark, or any SMTP provider)
☁️ Step 1: Preparing the Server
Copy the code below and then switch to your Putty terminal.Right-click to paste the copied code (since CTRL+C and CTRL+V don’t work in Putty).
After pasting, press the "Enter" key to execute the command.
Wait until the update process is complete.
Bash:
sudo apt update && sudo apt upgrade -y
Once the update is complete, we need to install Docker and Git. Run the following commands:
Even though my server already has them installed, you should proceed and confirm with Y (yes) when prompted.
Please wait until the installation is complete.
Bash:
sudo apt -y install docker.io
sudo apt -y install git
sudo apt -y install curl
Since Docker, Git, and Curl were already installed on my server, the setup completed quickly.
You might see different outputs depending on your environment.
🧰 Step 2: Installing Required Packages
Use the following command to create a “discourse” folder in the /var directory:
Bash:
sudo mkdir /var/discourse
Then, download the Discourse files to the server using this command:
Git:
sudo git clone https://github.com/discourse/discourse_docker.git
/var/discourse
⚙️ Step 3: Configuring Discourse
Now, enter the discourse directory with the cd command:
Bash:
cd /var/discourse
Before running the Discourse setup script, make sure to set the correct permissions:
Bash:
chmod 700 containers
sudo ./discourse-setup
The installation will now begin — this may take some time as files are downloaded from repositories.
When the process completes, you’ll be asked to provide the following information:
Code:
Hostname for your Discourse? [discourse.example.com]: Enter your site’s domain, e.g., forum.hatalar.com
Email address for admin account(s)? [[email protected],[email protected]]: Your business email address, e.g., [email protected]
SMTP server address? [smtp.example.com]: Your mail server’s SMTP address, e.g., smtp.hatalar.com
SMTP port? [587]: You can use port 587
SMTP user name? [[email protected]]: Your email username, e.g., [email protected]
SMTP password? [pa$$word]: The password for your email address
Let's Encrypt account email? (ENTER to skip) [[email protected]]: Enter your email if you’d like to receive SSL-related notifications.