Discourse Forum te Installeren op Ubuntu 20.04 LTS

Discourse is een gratis en open-source discussieplatform dat ontworpen is om gemeenschapsdiscussieforums en mailinglijsten voor je team te maken. Het is geschreven in Ember.js en Ruby on Rails, en gebruikt PostgreSQL als database back-end. Het is een moderne forum oplossing die op duizenden sites discussies aanzwengelt om de betrokkenheid van gebruikers te vergroten. Je kunt aanpasbare vragen en ideeën maken, en het integreren met populaire diensten.

Discourse biedt een rijke reeks functies waaronder, Spam blokkeren, Dynamische meldingen, Sociaal inloggen, Twee-factor authenticatie, Uitgebreide API, Krachtige moderatie, Ingebouwde mobiele lay-out en nog veel meer.

In deze zelfstudie leren we hoe je Discourse forum met Docker installeert op Ubuntu 20.04.

Vereisten

  • Een server waarop Ubuntu 20.04 draait.
  • Een geldige domeinnaam is aan je server gericht.
  • Een SMTP mailserver. Als je geen mailserver hebt, kun je de SMTP server van Gmail gebruiken.
  • Een root wachtwoord is op je server geconfigureerd.

Docker installeren

Eerst moet je Docker in je systeem installeren. Standaard is de nieuwste versie van Docker beschikbaar in de Ubuntu 20.04 standaard repository. Je kunt het installeren door het volgende commando uit te voeren:

apt-get install docker.io -y

Als de Docker geïnstalleerd is, start je de Docker service en schakel je hem in om te starten bij opnieuw opstarten met het volgende commando:

systemctl start docker
systemctl enable docker

Als je klaar bent, kun je verder gaan met de volgende stap.

Download Discourse

Maak, voordat je begint, een map voor Discourse. Je kunt die aanmaken met het volgende commando:

mkdir /opt/discourse

Download vervolgens de nieuwste versie van Discourse uit de Git Hub repository met het volgende commando:

git clone https://github.com/discourse/discourse_docker.git /opt/discourse

Vervolgens installeer je ook het pakket net-tools in je systeem. Je kunt het installeren met het volgende commando:

apt-get install net-tools -y

Als de installatie voltooid is, kun je verder gaan met de volgende stap.

Discourse installeren en configureren

Verander nu de directory in /opt/discourse en voer het Discourse setup script uit met het volgende commando:

cd /opt/discourse
./discourse-setup

Je wordt gevraagd de hostnaam van je systeem op te geven zoals hieronder:

Ports 80 and 443 are free for use
'samples/standalone.yml' -> 'containers/app.yml'
Found 4GB of memory and 2 physical CPU cores
setting db_shared_buffers = 1024MB
setting UNICORN_WORKERS = 4
containers/app.yml memory parameters updated.

Hostname for your Discourse? [discourse.linuxbuz.com]: discourse.linuxbuz.com

Geef je geldige volledig gekwalificeerde domeinnaam op en druk op Enter. Je wordt gevraagd een e-mail adres op te geven voor de admin account, SMTP server, SMTP gebruikersnaam, SMTP wachtwoord en e-mail adres voor Let’s Encrypt zoals hieronder:

Checking your domain name . . .
Connection to discourse.linuxbuz.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]: 
SMTP user name? [[email protected]]: [email protected]
SMTP password? [pa$$word]: [email protected]
Optional email address for Let's Encrypt warnings? (ENTER to skip) [[email protected]]: [email protected]

Geef alle gegevens op en druk op Enter. Je zou de volgende uitvoer moeten zien:

Does this look right?

Hostname      : discourse.linuxbuz.com
Email         : [email protected]
SMTP address  : smtp.gmail.com
SMTP port     : 587
SMTP username : [email protected]
SMTP password : asdfgsd
Let's Encrypt : [email protected]

ENTER to continue, 'n' to try again, Ctrl+C to exit: 

Druk op Enter om de installatie te starten. Als de installatie voltooid is, zou je de volgende uitvoer moeten zien:

Enabling Let's Encrypt
web.ssl.template.yml enabled
letsencrypt.ssl.template.yml enabled

Configuration file at  updated successfully!

Updates successful. Rebuilding in 5 seconds.
Building app
Ensuring launcher is up to date
Fetching origin
Launcher is up-to-date

+ /usr/bin/docker run --shm-size=512m -d --restart=always -e LANG=en_US.UTF-8 -e RAILS_ENV=production -e UNICORN_WORKERS=4 -e UNICORN_SIDEKIQS=1 -e RUBY_GLOBAL_METHOD_CACHE_SIZE=131072 -e RUBY_GC_HEAP_GROWTH_MAX_SLOTS=40000 -e RUBY_GC_HEAP_INIT_SLOTS=400000 -e RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=1.5 -e DISCOURSE_DB_SOCKET=/var/run/postgresql -e DISCOURSE_DB_HOST= -e DISCOURSE_DB_PORT= -e LETSENCRYPT_DIR=/shared/letsencrypt -e DISCOURSE_HOSTNAME=discourse.linuxbuz.com -e [email protected] -e DISCOURSE_SMTP_ADDRESS=smtp.gmail.com -e DISCOURSE_SMTP_PORT=587 -e [email protected] -e DISCOURSE_SMTP_PASSWORD=asdfgsd -e [email protected] -h ubuntu2004-app -e DOCKER_HOST_IP=172.17.0.1 --name app -t -p 80:80 -p 443:443 -v /var/discourse/shared/standalone:/shared -v /var/discourse/shared/standalone/log/var-log:/var/log --mac-address 02:43:15:82:15:a7 local_discourse/app /sbin/boot
7e303b07344c3643846a03d5c2f758ec67a6aa94b2a6a399bcb2766ccd02b3c2

Het bovenstaande setup script genereert een configuratiebestand met de naam app.yml binnen de map discourse/containers. Als je wijzigingen in de configuratie wilt aanbrengen, bewerk dan je /opt/discouse/containers/app.yml bestand en voer ./launcher rebuild app uit om de wijzigingen toe te passen.

Toegang tot de Discourse webinterface

Open nu je web browser en typ de URL https://discourse.linuxbuz.com. Je wordt doorverwezen naar de Discourse registratie pagina:

Discours geïnstalleerd

Klik op de knop Register. Je zou de volgende pagina moeten zien:

Maak een Discourse account aan

Geef gebruikersnaam en wachtwoord voor je beheerdersaccount en klik op de Register knop. Je zou de volgende pagina moeten zien:

Bevestig e-mail

Je zou een e-mail moeten ontvangen om je account te activeren.

Conclusie

Gefeliciteerd! je hebt met succes Discourse forum met Docker geïnstalleerd op Ubuntu 20.04 server. Ik hoop dat je nu gemakkelijk je eigen online discussieforum met Discourse kunt inzetten. Voel je vrij me te vragen als je vragen hebt.