How to Install Discourse on Fedora CoreOS Latest

Discourse is a popular open-source platform for building communities online. In order to install it on Fedora CoreOS, follow the below steps:

Step 1: Install Docker on Fedora CoreOS

Before installing Discourse, you need to install Docker on your Fedora CoreOS system. Use the following command to install Docker:

sudo rpm-ostree install docker

Step 2: Download the Discourse Docker Image

Next, you need to download the Discourse Docker image from the Docker Hub. Use the following command:

sudo docker pull discourse/discourse

Step 3: Create a Discourse Configuration File

Create a new directory to store the Discourse configuration files:

sudo mkdir /var/discourse
sudo nano /var/discourse/containers/app.yml

Paste the following configuration block in the editor:

## this is the all-in-one, standalone Discourse Docker container ##
## yaml w/ multiple containers also supported by this wizard ##

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"
  - "templates/sshd.template.yml"
  #- "templates/web.socketed.template.yml"

expose:
  - "80:80"   # http
  - "443:443" # https
  - "2222:22" # ssh

params:
  db_default_text_search_config: "pg_catalog.english"

  ## Set db_shared_buffers to a max of 25% of the total memory.
  ## will be set automatically by bootstrap based on detected RAM, or you can override
  db_shared_buffers: "4096MB"

  ## can improve sorting performance, but adds memory usage per-connection
  #db_work_mem: "40MB"

  ## Which Git revision should this container use? (default: tests-passed)
  #version: tests-passed

env:
  LANG: en_US.UTF-8
  UNICORN_WORKERS: 1
  DISCOURSE_HOSTNAME: 'discourse.example.com'
  DISCOURSE_DEVELOPER_EMAILS: 'your-email@example.com'
  DISCOURSE_SMTP_ADDRESS: smtp.mailgun.org           # required
  DISCOURSE_SMTP_PORT: 587                        # (optional, default 587)
  DISCOURSE_SMTP_USER_NAME: user@example.com      # required
  DISCOURSE_SMTP_PASSWORD: strong_password            # required, WARNING the char '#' in pw can cause problems!
  ## If you want to use the Lets Encrypt service to create and install a free SSL
  ## certificate, uncomment the following line. See https://letsencrypt.org/
  #DISCOURSE_ENABLE_LETSENCRYPT: true

## Any custom commands to run after building
run:
  - exec: echo "Beginning of custom commands"
  - exec: echo "End of custom commands"

## How many concurrent web requests are supported? Depends on memory and CPU cores.
## will be set automatically by bootstrap based on detected CPUs, or you can override
#puma:
#  concurrency: 2

## This is the default starter configuration
## with a few minor tweaks.
##
## If you want to customize this, copy file to /var/discourse/containers
## and make your changes there.
##
## Any changes to this file will not be preserved
## after the container is rebuilt.

Adjust the parameters in the configuration file to match your website settings.

Step 4: Bootstrap Discourse

Run the following command to bootstrap your Discourse installation:

sudo mkdir /var/discourse/shared
sudo mkdir /var/discourse/shared/standalone
sudo docker run --rm -v /var/discourse/shared/standalone:/shared -e DISCOURSE_HOSTNAME=discourse.example.com -e DISCOURSE_DEVELOPER_EMAILS=your-email@example.com -e DISCOURSE_SMTP_USER_NAME=user@example.com -e DISCOURSE_SMTP_PASSWORD=strong_password --env-file /var/discourse/containers/app.yml discourse/discourse /bin/bash -c "cd /var/www/discourse && export LANG=en_US.UTF-8 && export DEBIAN_FRONTEND=noninteractive && type setlocale || echo bash -c \"apt-get update -qq && apt-get install -y locales && rm -rf /var/lib/apt/lists/*\" && locale-gen en_US.UTF-8 && update-locale && rake db:migrate && redis-cli flushall"

This will download and install Discourse within a Docker container.

Step 5: Start Discourse

Use the following command to start the Discourse Docker container:

sudo /var/discourse/launcher start app

Step 6: Visit Your Discourse Website

Visit http://localhost to access your Discourse installation.

Congratulations, you have successfully installed Discourse on your Fedora CoreOS system.

If you want to self-host in an easy, hands free way, need an external IP address, or simply want your data in your own hands, give IPv6.rs a try!

Alternatively, for the best virtual desktop, try Shells!