GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren Sie das Discourse Forum mit Nginx unter Ubuntu 16.04

Discourse ist eine kostenlose Open-Source-Software zum Erstellen von Internetforen, Communitys und Mailinglisten. Es wurde 2013 erstellt und in den Programmiersprachen Ruby und Javascript geschrieben. Discourse-Forum-Software wurde von vielen Organisationen verwendet, darunter Codeacademy, Udacity, Twitter Developers und Docker Community Forum.

In diesem Tutorial zeigen wir Ihnen Schritt für Schritt, wie Sie das Discourse Forum mit dem Nginx-Webserver unter Ubuntu 16.04 installieren und konfigurieren. Insbesondere zeigen wir Ihnen, wie Sie die Discourse Forum-Software installieren, Nginx als Reverse-Proxy für die Discourse-App konfigurieren und die Discourse-Forum-Software mit kostenlosem SSL von Letsencrypt sichern.

Was wir tun werden

  1. Installieren Sie Docker unter Ubuntu 16.04
  2. Installieren und konfigurieren Sie die Discourse Forum-Software
  3. Generieren Sie SSL-Letsencrypt unter Ubuntu 16.04
  4. Installieren und konfigurieren Sie Nginx als Reverse-Proxy für Discourse
  5. Diskurs-Web-Installer
  6. Zusätzliche Diskurskonfiguration

Voraussetzungen

  • Ubuntu 16.04
  • Root-Berechtigungen
  • SMTP-Konto - Mailgun, SendGrid, Mailjet usw.

Schritt 1 – Docker auf Ubuntu 16.04 installieren

Die Discourse-Software ist in Ruby und Javascript geschrieben und verwendet PostgreSQL als Hauptdatenbank und Redis als Cache und für transiente Daten. Wir werden Discourse unter dem Docker-Container installieren.

Der Installationsvorgang wird auf Ubuntu 16.04 durchgeführt. Installieren Sie also zunächst Docker mit dem folgenden Befehl.

wget -qO- https://get.docker.com/ | sh

Überprüfen Sie nach Abschluss der Installation den Docker-Dienst und vergewissern Sie sich, dass er bereits auf dem System ausgeführt wird.

systemctl status docker

Stellen Sie außerdem sicher, dass sich Docker in der Start-Boot-App befindet.

systemctl is-enabled docker

Schritt 2 – Diskursforum installieren und konfigurieren

In diesem Schritt installieren und konfigurieren wir die Discourse-Software. Wir werden das Diskurs-Docker-Compose-Skript herunterladen, gemäß unseren Anforderungen konfigurieren und dann einen neuen Docker-Container für die Diskurs-Forum-Software erstellen.

Erstellen Sie ein neues Verzeichnis „/var/discourse“ und klonen Sie das Installationsskript.

mkdir -p /var/discourse
git clone https://github.com/discourse/discourse_docker.git /var/discourse

Wechseln Sie nun in das Verzeichnis „discourse“ und kopieren Sie das Beispiel der docker-compose-Datei.

cd /var/discourse
cp samples/standalone.yml containers/app.yml

Bearbeiten Sie die Datei „app.yml“ mit dem vim-Editor.

vim containers/app.yml

Docker-Portzuordnung konfigurieren

Standardmäßig werden alle HTTP- und HTTPS-Anforderungen vom Docker-Proxy verarbeitet. Und für diesen Leitfaden werden wir zu diesem Zweck Nginx verwenden – alle HTTP- und HTTPS-Daten werden vom Nginx-Webserver verarbeitet.

Daher müssen wir die Docker-Port-Mapping-Konfiguration ändern. Der Discourse-Container wird nur die HTTP-Verbindung haben, und der Host wird den neuen Port „2045“ öffnen und dem Container-Port 80 zuordnen.

Entkommentieren Sie die HTTPS-Zeile und ändern Sie die HTTP-Zeile mit dem neuen Port „2045“.

expose:
  - "2045:80"   # http
#  - "443:443" # https

Konfiguration des Diskurs-Domainnamens

Geben Sie Ihren eigenen Domainnamen für den Diskurs ein, der wie unten in der Zeile „DISCOURSE_HOSTNAME“ installiert ist.

DISCOURSE_HOSTNAME: 'discourse.hakase-labs.me'

Geben Sie Ihre E-Mail-Adresse in die Zeile „DISCOURSE_DEVELOPER_EMAIL“ ein.

DISCOURSE_DEVELOPER_EMAILS: '[email protected]'

SMTP-Konfiguration

Dies ist die wichtigste Konfiguration für Discourse Software. Stellen Sie sicher, dass Sie das SMTP-Konto für die Installation von Discourse haben – Sie können ein kostenloses SMTP-Konto von Mailgun, Mailjet oder SendGrid kaufen oder ausprobieren.

In diesem Tutorial verwenden wir das Free-Tier-SMTP-Konto von Mailgun. Entkommentieren Sie die SMTP-Konfiguration und geben Sie Ihr Konto wie unten ein.

  DISCOURSE_SMTP_ADDRESS: smtp.mailgun.org
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: [email protected]
  DISCOURSE_SMTP_PASSWORD: mypassword

Speichern und beenden.

Erstellen Sie als Nächstes ein neues Discourse Docker-Image basierend auf der Konfiguration der app.yml-Vorlage.

sudo ./launcher bootstrap app

Starten/initialisieren Sie danach den neuen Discourse-Container mit dem folgenden Befehl.

sudo ./launcher start app

Der Discourse-Container sollte betriebsbereit sein - überprüfen Sie ihn mit dem Docker-Befehl.

docker ps -a

Überprüfen Sie den offenen Port des Hosts mit netstat und stellen Sie sicher, dass der neue Docker-Proxy-Port 2045 auf der Liste steht.

netstat -plntu

Die Discourse Forum-Software wurde unter dem Docker-Container auf dem Host Ubuntu 16.04 installiert.

Schritt 3 – Generieren Sie SSL Letsencrypt auf Ubuntu 16.04

Das Discourse-Forum wird unter der sicheren HTTP-Verbindung ausgeführt und vom Nginx-Webserver verwaltet. Wir verwenden für diesen Leitfaden kostenloses SSL von Letsencrypt und müssen den Letsencrypt-Client auf dem Server installieren.

Installieren Sie letsencrypt mit dem folgenden apt-Befehl.

sudo apt install letsencrypt -y

Generieren Sie jetzt neue SSL-Zertifikate mit dem Befehl letsencrypt.

letsencrypt certonly

Geben Sie Ihre E-Mail-Adresse für die Verlängerungsbenachrichtigung ein und wählen Sie „OK“.

Wählen Sie für die Letsencrypt TOS (Nutzungsbedingungen) „Zustimmen“.

Geben Sie nun Ihren Diskurs-Domainnamen „discourse.hakase-labs.me“ ein.

Und wenn es fertig ist, erhalten Sie das Ergebnis wie unten gezeigt

Neue SSL-Zertifikate von letsencrypt wurden im Verzeichnis ‚/etc/letsencrypt/live‘ generiert.

Schritt 4 – Installieren und konfigurieren Sie Nginx als Reverse-Proxy für den Discourse-Container

In diesem Schritt installieren wir den Nginx-Webserver und konfigurieren ihn als Reverse-Proxy für den Discourse-Container, der auf Port 2045 ausgeführt wird.

Installieren Sie Nginx mit dem folgenden apt-Befehl.

sudo apt install nginx -y

Starten Sie nun Nginx und aktivieren Sie es mit dem Befehl systemctl zum Start beim Booten.

systemctl start nginx
systemctl enable nginx

Nginx wurde installiert und läuft auf dem HTTP-Port 80. Sie können dies mit netstat überprüfen.

netstat -plntu

Der Nginx-Webserver wurde auf dem Ubuntu 16.04-Server installiert.

Als Nächstes müssen wir eine neue virtuelle Hostdatei für den Discourse-Container erstellen. Gehen Sie in das nginx-Konfigurationsverzeichnis und erstellen Sie mit dem vim-Editor eine neue „discourse“-Datei.

cd /etc/nginx/
vim sites-available/discourse

Fügen Sie nun die folgende Konfiguration des virtuellen Discourse nginx-Hosts ein.

server {
    listen 80; listen [::]:80;
    server_name discourse.hakase-labs.me;
 
    return 301 https://$host$request_uri;
}
 
server {
    listen 443 ssl http2; 
    server_name discourse.hakase-labs.me;

    ssl_certificate /etc/letsencrypt/live/discourse.hakase-labs.me/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/discourse.hakase-labs.me/privkey.pem;
    include /etc/nginx/snippets/ssl.conf;
 
    location / {
        proxy_pass http://discourse.hakase-labs.me:2045/;
        proxy_set_header Host $http_host;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_redirect http://discourse.hakase-labs.me:2045/ https://discourse.hakase-labs.me;
    }
}

Speichern und beenden.

Hinweis:

  • Alle HTTP-Anfragen werden automatisch auf die HTTPS-Verbindung umgeleitet.
  • Ändern Sie die SSL-Konfiguration mit Ihrem eigenen Pfadverzeichnis.
  • Es gibt eine zusätzliche SSL-Konfiguration.

Erstellen Sie nun eine neue zusätzliche SSL-Konfigurationsdatei ‚ssl.conf‘.

vim snippets/ssl.conf

Fügen Sie die folgende Konfiguration in die Datei ein.

ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;

ssl_protocols TLSv1.2;
ssl_ciphers EECDH+AESGCM:EECDH+AES;
ssl_ecdh_curve secp384r1;
ssl_prefer_server_ciphers on;

ssl_stapling on;
ssl_stapling_verify on;

add_header Strict-Transport-Security "max-age=15768000; includeSubdomains; preload";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;

Speichern und beenden.

Aktivieren Sie nun den virtuellen Diskurshost mit dem Befehl „ln -s“, wie unten gezeigt.

ln -s /etc/nginx/sites-available/discourse /etc/nginx/sites-enabled/

Testen Sie die Konfiguration und vergewissern Sie sich, dass kein Fehler vorliegt, und starten Sie dann den Dienst neu.

nginx -t
systemctl restart nginx

Die Installation und Konfiguration von Nginx als Reverse-Proxy für den Discourse-Container ist abgeschlossen.

Schritt 5 – Discourse Web-Installer

Öffnen Sie Ihren Webbrowser und besuchen Sie die Diskurs-URL.

http://discourse.hakase-labs.me

Und Sie werden auf die sichere HTTP-Verbindung umgeleitet. Klicken Sie auf die Schaltfläche „Registrieren“, um einen neuen Administratorbenutzer zu erstellen.

Geben Sie nun Ihren Admin-Benutzer und Ihr Passwort ein und klicken Sie dann auf „Registrieren“.

Und Sie erhalten eine neue E-Mail-Bestätigung über Ihre Admin-Benutzeraktivierung.

Nachfolgend finden Sie eine Beispiel-E-Mail-Nachricht für die Bestätigung des Discourse-Kontos. Klicken Sie auf den Link, um das Administratorkonto zu bestätigen und zu aktivieren.

Und Sie sollten die unten gezeigte Diskursseite erhalten. Klicken Sie auf die Schaltfläche „Klicken Sie hier, um Ihr Konto zu aktivieren“.

Jetzt können Sie Ihr eigenes Discourse-Forum konfigurieren. Klicken Sie auf die Schaltfläche „Weiter“ und Sie müssen das Diskursforum mit 13 Schritten konfigurieren. Oder Sie können es später konfigurieren, indem Sie auf „Vielleicht später“ klicken.

Unten sehen Sie das auf dem Nginx-Webserver und HTTPS auf Ubuntu 16.04 installierte Discourse Forum.

Es folgt mein Discourse Admin Dashboard.

Das Discourse Forum wurde mit Nginx als Reverse-Proxy auf dem Ubuntu 16.04-Server installiert.

Schritt 6 – Zusätzliche Diskurskonfiguration

Während der Installation von Discourse kann ein Problem auftreten, bei dem Sie keine E-Mail-Bestätigung für die Aktivierung des Admin-Benutzers erhalten.

Um das Problem zu beheben, stellen Sie sicher, dass Sie das richtige SMTP-Konto in der Konfigurations-app.yml haben. Oder Sie können das Administratorkonto manuell von Ihrem Server aus aktivieren.

Um Ihr Administratorkonto manuell zu aktivieren, gehen Sie in das Verzeichnis „/var/discourse“.

cd /var/discourse

Greifen Sie nun mit dem folgenden Befehl auf den Diskurscontainer zu.

./launcher enter app

Und aktivieren Sie den ersten Admin-Benutzer mit dem Rails-Befehl wie unten.

Schienen c
u =User.last
u.admin =true
u.activate
u.save

Und jetzt können Sie sich mit Ihrem Benutzernamen und Passwort beim Discourse-Forum anmelden.

Referenzen

  • https://meta.discourse.org/
  • https://github.com/discourse/discourse/tree/master/docs

Ubuntu
  1. So installieren Sie Docker unter Ubuntu 22.04

  2. So installieren Sie WordPress mit Nginx unter Ubuntu 18.04

  3. So installieren Sie phpMyAdmin mit Nginx unter Ubuntu 18.04

  4. So installieren Sie das Discourse Forum mit Nginx unter CentOS 7

  5. So installieren Sie Discourse unter Ubuntu 20.04

So installieren Sie Discourse Forum mit Docker unter CentOS 8

So installieren Sie Nginx mit ModSecurity unter Ubuntu 15.04

So installieren Sie Sentry mit Docker unter Ubuntu 20.04

So installieren Sie Nextcloud 13 auf Ubuntu 16.04 mit Nginx

So installieren Sie Mailtrain auf Ubuntu 18.04 mit Docker

So installieren Sie das Talkyard-Forum mit Nginx unter Ubuntu 18.04