Discourse is a popular open-source platform for building communities online. In order to install it on Fedora CoreOS, follow the below steps:
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
Next, you need to download the Discourse Docker image from the Docker Hub. Use the following command:
sudo docker pull discourse/discourse
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.
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.
Use the following command to start the Discourse Docker container:
sudo /var/discourse/launcher start app
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!