How7o
  • Home
  • Marketing
    MarketingShow More
    15 Must-See Charts on the State of Marketing
    6 Min Read
    The Beginner’s Guide about Facebook Advertising
    6 Min Read
    64 Creative Marketing Ideas to Boost Your Business
    6 Min Read
  • Resouce
    ResouceShow More
    5 Must-Have Digital Marketing Data Sources
    6 Min Read
    Archival Solution Deployment Best Practices
    6 Min Read
    How Secure Your Mobile Device in Six Steps
    6 Min Read
    5 Effective Ways to Increase Market Share Online
    6 Min Read
    Tips Debugging with CMS code Optimization Quick
    6 Min Read
  • Features
    FeaturesShow More
    7 Things You Need to Know About Feature Driven
    6 Min Read
    Turn an Excel Spreadsheet or Google Sheets Doc
    6 Min Read
    3 Common Ways to Forecast Currency Exchange
    6 Min Read
    Step by Step Guide to a Technical SEO Audit
    6 Min Read
    10+ Free Tools to Make Your Own Animated GIFs
    6 Min Read
  • Guide
    GuideShow More
    Here are 25 Minds on the Future of Technology
    6 Min Read
    Create an Engagement Custom Audience from Video
    6 Min Read
    The Ultimate Guide, Easily Make Videos Tutorials
    6 Min Read
    Tips to Keep Your Cloud Storage Safe and Secure
    6 Min Read
  • Contact
  • Blog
Reading: How I Installed Discourse on AlmaLinux (Docker Method, Step-by-Step)
Share
Subscribe Now
How7oHow7o
Font ResizerAa
  • Marketing
  • Resouce
  • Features
  • Guide
  • Complaint
  • Advertise
Search
  • Categories
    • Marketing
    • Resouce
    • Features
    • Guide
    • Lifestyle
    • Wellness
    • Healthy
    • Nutrition
  • More Foxiz
    • Blog Index
    • Complaint
    • Sitemap
    • Advertise
Follow US
Copyright © 2014-2023 Ruby Theme Ltd. All Rights Reserved.
How7o > Blog > Server Management > How I Installed Discourse on AlmaLinux (Docker Method, Step-by-Step)
Server Management

How I Installed Discourse on AlmaLinux (Docker Method, Step-by-Step)

how7o
By how7o
Last updated: January 12, 2026
6 Min Read
Installed Discourse on AlmaLinux
SHARE

I needed a fresh Discourse install on an AlmaLinux server while I was reorganizing my infrastructure. Most guides assume Ubuntu, and I kept bumping into small “RHEL-family” differences that slow you down when you just want the forum online.

Contents
  • What you need before you start (don’t skip this)
  • Step 1: Update the server + open firewall for HTTP/HTTPS
  • Step 2: Install Docker Engine (the part that trips most people)
  • Step 3: Install Git and clone the official Discourse Docker setup
  • Step 4: Run the interactive installer (discourse-setup)
  • Step 5: Visit your domain and complete the web setup
  • Common problems I ran into (and how I fixed them)
    • 1) “My site loads, but I can’t become admin because email is broken”
    • 2) “I changed app.yml but nothing happened”
    • 3) “Where do I check logs?”
  • Handy maintenance commands (bookmark these)
  • Final thoughts

So I wrote down the exact process I used on AlmaLinux (works on AlmaLinux 8/9). This is the Docker-based method Discourse expects, and it’s the cleanest way to keep upgrades simple later.

Install Discourse on AlmaLinux flowchart (Prepare Server → Install Docker → Run Setup → Go Live)

What you need before you start (don’t skip this)

I learned this the hard way: if you try to “wing it” without a proper domain + SMTP, Discourse installation becomes painful. Before you touch the server, make sure you have these ready:

  • A domain or subdomain (example: forum.yourdomain.com). Discourse is not meant to run from a raw IP address.
  • DNS A record pointed to your server’s public IP.
  • SMTP credentials (Mailgun / SES / Postmark / your provider). Discourse relies heavily on email for account creation and notifications.
  • A VPS with enough resources: I recommend at least 2GB RAM for a smoother install. 1GB can work, but only if you add swap.

Quick tip: If SMTP isn’t ready yet, you can still finish the install and create an admin user from the console later. I include that workaround in the troubleshooting section below.

Step 1: Update the server + open firewall for HTTP/HTTPS

On AlmaLinux, firewalld is usually enabled by default. I opened HTTP/HTTPS first so I wouldn’t forget later.

sudo dnf -y update

# open web ports (recommended way: services)
sudo firewall-cmd --permanent --add-service={http,https}
sudo firewall-cmd --reload

# optional: confirm what’s open
sudo firewall-cmd --list-services

Step 2: Install Docker Engine (the part that trips most people)

AlmaLinux ships with Podman in many setups, and at first I thought, “containers are containers, right?”… nope. Discourse’s supported install path expects Docker-style tooling. So I installed Docker Engine from the official repo.

# Install repository helper tools
sudo dnf -y install dnf-plugins-core

# Add Docker's official repo (CentOS/RHEL-family; works fine on AlmaLinux)
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# Install Docker Engine + plugins
sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# Start Docker now + enable on boot
sudo systemctl enable --now docker

# sanity check
sudo docker run hello-world

If the hello-world container runs, you’re good. If not, fix Docker first—Discourse depends on it.

Step 3: Install Git and clone the official Discourse Docker setup

Discourse’s Docker install uses the official discourse_docker repo. I keep it in /var/discourse like the official guides do.

sudo dnf -y install git

# Clone into /var/discourse
sudo -s
git clone https://github.com/discourse/discourse_docker.git /var/discourse
cd /var/discourse

# lock down the containers directory (recommended)
chmod 700 containers

Step 4: Run the interactive installer (discourse-setup)

This is the “easy button”. The setup script asks for your forum hostname, admin email, SMTP details, and Let’s Encrypt email for SSL.

cd /var/discourse
./discourse-setup

You’ll see prompts like these (example values):

Hostname for your Discourse? [discourse.example.com]:
Email address for admin account(s)? [[email protected],[email protected]]:
SMTP server address? [smtp.example.com]:
SMTP port? [587]:
SMTP user name? [[email protected]]:
SMTP password? [pa$$word]:
Let's Encrypt account email? (ENTER to skip) [[email protected]]:

After that, it generates containers/app.yml and starts “bootstrapping” the container. On my VPS, it usually takes a few minutes. Go grab coffee and don’t interrupt it.

Step 5: Visit your domain and complete the web setup

If DNS is pointed correctly and your firewall is open, your forum should load at:

https://forum.yourdomain.com

Register the admin account using the email you entered. If email is configured correctly, you’ll receive activation emails and you’re done.

Common problems I ran into (and how I fixed them)

1) “My site loads, but I can’t become admin because email is broken”

This happens when SMTP credentials are wrong, blocked, or the provider requires extra DNS records (SPF/DKIM). The fastest way to regain control is creating the admin from inside the container, then fixing email from the admin panel.

cd /var/discourse
./launcher enter app
rake admin:create

After that, log in as the admin user you created and fix SMTP settings properly.

2) “I changed app.yml but nothing happened”

Discourse won’t apply config changes until you rebuild the container. Any time you edit /var/discourse/containers/app.yml, rebuild:

cd /var/discourse
./launcher rebuild app

3) “Where do I check logs?”

When something fails during install or upgrade, logs usually tell you exactly what’s wrong:

cd /var/discourse
./launcher logs app

Handy maintenance commands (bookmark these)

# rebuild after updates or config changes
cd /var/discourse
git pull
./launcher rebuild app

# enter the container shell
./launcher enter app

# view logs
./launcher logs app

Final thoughts

Even though Discourse “officially” leans toward Ubuntu in many guides, the Docker-based approach works perfectly fine on AlmaLinux as long as Docker is installed properly and your domain + SMTP are ready from the start.

If you’re installing Discourse as part of a migration (like moving to a new server or restructuring communities), do yourself a favor: test SMTP first, confirm DNS, then run the setup once. That single habit saves hours.

TAGGED:almalinuxdiscoursedockerFirewalldLet’s EncryptLinuxself-hostingSMTPvps

Sign Up For Daily Newsletter

Be keep up! Get the latest breaking news delivered straight to your inbox.
By signing up, you agree to our Terms of Use and acknowledge the data practices in our Privacy Policy. You may unsubscribe at any time.
Share This Article
Facebook Copy Link Print
Previous Article Installing Docker on AlmaLinux guide Install Docker on AlmaLinux: Step-by-Step (Docker CE + Compose)
Next Article Transfer Discourse to a new server How to Transfer Discourse to a New Server on AlmaLinux (Backup + Restore, Step-by-Step)
Leave a Comment

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

FacebookLike
XFollow
PinterestPin
InstagramFollow

Subscribe Now

Subscribe to our newsletter to get our newest articles instantly!
Most Popular
How I Fixed Composer Dependency Errors
How I Fixed Composer Dependency Errors Using the –ignore-platform-reqs Flag (Step-by-Step Guide)
January 12, 2026
Transfer Discourse to a new server
How to Transfer Discourse to a New Server on AlmaLinux (Backup + Restore, Step-by-Step)
January 12, 2026
Installed Discourse on AlmaLinux
How I Installed Discourse on AlmaLinux (Docker Method, Step-by-Step)
January 12, 2026
Installing Docker on AlmaLinux guide
Install Docker on AlmaLinux: Step-by-Step (Docker CE + Compose)
January 12, 2026
Change welcome message on Ubuntu VPS server (MOTD + SSH banner)
Change Welcome Message on Ubuntu VPS (MOTD + SSH Banner)
January 12, 2026

You Might Also Like

Update Ubuntu to the latest kernel version
Server Management

Update Ubuntu to the Latest Kernel Version (Safe Server Steps)

5 Min Read
Automatic logout timeout for command line in Ubuntu (TMOUT 300s)
Server Management

Automatic Logout Timeout for Command Line in Ubuntu (TMOUT 300s)

5 Min Read
Check if GD library is installed in PHP (phpinfo and extension_loaded)
Web Development

How to Check if GD Library Is Installed in PHP (3 Easy Methods)

5 Min Read
Create a Directory in Ubuntu
Server Management

Create a Directory in Ubuntu (mkdir Command + Examples)

4 Min Read

Always Stay Up to Date

Subscribe to our newsletter to get our newest articles instantly!
How7o

We provide tips, tricks, and advice for improving websites and doing better search.

Latest News

  • SEO Audit Tool
  • Client ReferralsNew
  • Execution of SEO
  • Reporting Tool

Resouce

  • Google Search Console
  • Google Keyword Planner
  • Google OptimiseHot
  • SEO Spider

Get the Top 10 in Search!

Looking for a trustworthy service to optimize the company website?
Request a Quote
Welcome Back!

Sign in to your account

Username or Email Address
Password

Lost your password?