GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer Discourse Forum avec Nginx sur Ubuntu 16.04

Discourse est un logiciel gratuit et open source pour créer une communauté de forum Internet et une liste de diffusion. Il a été créé en 2013 et écrit dans les langages de programmation Ruby et Javascript. Le logiciel de forum Discourse a été utilisé par de nombreuses organisations, notamment Codeacademy, Udacity, Twitter Developers et Docker Community Forum.

Dans ce didacticiel, nous vous montrerons étape par étape comment installer et configurer Discourse Forum avec le serveur Web Nginx sur Ubuntu 16.04. Plus précisément, nous vous montrerons comment installer le logiciel de forum Discourse, configurer Nginx en tant que proxy inverse pour l'application Discourse et sécuriser le logiciel de forum Discourse à l'aide du protocole SSL gratuit de Letsencrypt.

Ce que nous allons faire

  1. Installer Docker sur Ubuntu 16.04
  2. Installer et configurer le logiciel Discourse Forum
  3. Générer SSL Letsencrypt sur Ubuntu 16.04
  4. Installer et configurer Nginx en tant que proxy inverse pour Discourse
  5. Installateur Web de Discourse
  6. Configuration supplémentaire de Discourse

Prérequis

  • Ubuntu 16.04
  • Privilèges racine
  • Compte SMTP :Mailgun, SendGrid, Mailjet, etc.

Étape 1 - Installer Docker sur Ubuntu 16.04

Le logiciel Discourse est écrit en Ruby et Javascript, en utilisant PostgreSQL comme base de données principale, et Redis comme cache et pour les données transitoires. Nous allons installer Discourse sous le conteneur Docker.

Le processus d'installation sera effectué sur Ubuntu 16.04. Donc, pour commencer, installez Docker à l'aide de la commande ci-dessous.

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

Une fois l'installation terminée, vérifiez le service docker et assurez-vous qu'il est déjà en cours d'exécution sur le système.

systemctl status docker

Et assurez-vous également que Docker est sur l'application de démarrage de démarrage.

systemctl is-enabled docker

Étape 2 - Installer et configurer le forum de discours

Dans cette étape, nous allons installer et configurer le logiciel Discourse. Nous allons télécharger le script docker-compose de discours, le configurer selon nos besoins, puis créer un nouveau conteneur Docker pour le logiciel de forum de discours.

Créez un nouveau répertoire '/var/discourse' et clonez le script d'installation.

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

Allez maintenant dans le répertoire 'discourse' et copiez un exemple du fichier docker-compose.

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

Modifiez le fichier 'app.yml' à l'aide de l'éditeur vim.

vim containers/app.yml

Configurer le mappage des ports Docker

Par défaut, toutes les requêtes HTTP et HTTPS seront traitées par le proxy Docker. Et pour ce guide, nous utiliserons Nginx à cette fin - tous les HTTP et HTTPS seront gérés par le serveur Web Nginx.

Nous devons donc modifier la configuration du mappage du port Docker. Le conteneur Discourse n'aura que la connexion HTTP, et l'hôte ouvrira le nouveau port '2045' et le mappera sur le port 80 du conteneur.

Décommentez la ligne HTTPS et modifiez la ligne HTTP avec le nouveau port '2045'.

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

Configuration du nom de domaine Discourse

Tapez votre propre nom de domaine pour le discours installé sur la ligne 'DISCOURSE_HOSTNAME' comme ci-dessous.

DISCOURSE_HOSTNAME: 'discourse.hakase-labs.me'

Et saisissez votre adresse e-mail dans la ligne 'DISCOURSE_DEVELOPER_EMAIL'.

DISCOURSE_DEVELOPER_EMAILS: '[email protected]'

Configuration SMTP

Il s'agit de la configuration la plus importante pour Discourse Software. Assurez-vous d'avoir le compte SMTP pour l'installation de Discourse - vous pouvez acheter ou essayer un compte SMTP gratuit auprès de Mailgun, Mailjet ou SendGrid.

Dans ce didacticiel, nous utiliserons le compte SMTP gratuit de Mailgun. Décommentez la configuration SMTP et saisissez votre compte comme ci-dessous.

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

Enregistrez et quittez.

Ensuite, créez une nouvelle image Discourse Docker basée sur la configuration du modèle app.yml.

sudo ./launcher bootstrap app

Après cela, démarrez/initialisez le nouveau conteneur Discourse à l'aide de la commande ci-dessous.

sudo ./launcher start app

Le conteneur Discourse devrait être opérationnel - vérifiez-le à l'aide de la commande docker.

docker ps -a

Vérifiez le port ouvert de l'hôte à l'aide de netstat et assurez-vous que le nouveau port docker-proxy 2045 figure dans la liste.

netstat -plntu

Le logiciel Discourse Forum a été installé sous le conteneur docker sur l'hôte Ubuntu 16.04.

Étape 3 - Générer SSL Letsencrypt sur Ubuntu 16.04

Le forum Discourse fonctionnera sous la connexion sécurisée HTTP et sera géré par le serveur Web Nginx. Nous utiliserons SSL gratuit de Letsencrypt pour ce guide, et nous devons installer le client Letsencrypt sur le serveur.

Installez letsencrypt avec la commande apt ci-dessous.

sudo apt install letsencrypt -y

Générez maintenant de nouveaux certificats SSL à l'aide de la commande letsencrypt.

letsencrypt certonly

Tapez votre adresse e-mail pour renouveler la notification et choisissez "OK".

Pour les conditions d'utilisation (conditions d'utilisation) de Letsencrypt, choisissez "Accepter".

Tapez maintenant votre nom de domaine de discours 'discourse.hakase-labs.me'.

Et quand il sera terminé, vous obtiendrez le résultat ci-dessous

De nouveaux certificats SSL de letsencrypt ont été générés dans le répertoire '/etc/letsencrypt/live'.

Étape 4 - Installer et configurer Nginx en tant que proxy inverse pour le conteneur Discourse

Dans cette étape, nous allons installer le serveur Web Nginx et le configurer en tant que proxy inverse pour le conteneur Discourse qui s'exécute sur le port 2045.

Installez Nginx avec la commande apt ci-dessous.

sudo apt install nginx -y

Maintenant, démarrez Nginx et activez-le pour qu'il se lance au démarrage à l'aide de la commande systemctl.

systemctl start nginx
systemctl enable nginx

Nginx a été installé et s'exécute sur le port HTTP 80. Vous pouvez le vérifier à l'aide de netstat.

netstat -plntu

Le serveur Web Nginx a été installé sur le serveur Ubuntu 16.04.

Ensuite, nous devons créer un nouveau fichier d'hôte virtuel pour le conteneur Discourse. Accédez au répertoire de configuration nginx et créez un nouveau fichier "discourse" à l'aide de l'éditeur vim.

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

Maintenant, collez la configuration d'hôte virtuel Discourse nginx suivante.

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;
    }
}

Enregistrez et quittez.

Remarque :

  • Toutes les requêtes HTTP seront automatiquement redirigées vers la connexion HTTPS.
  • Modifiez la configuration SSL avec votre propre répertoire de chemin.
  • Il existe une configuration SSL supplémentaire.

Créez maintenant un nouveau fichier de configuration ssl supplémentaire 'ssl.conf'.

vim snippets/ssl.conf

Collez la configuration suivante dans le fichier.

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;

Enregistrez et quittez.

Et maintenant, activez l'hôte virtuel de discours à l'aide de la commande 'ln -s', comme indiqué ci-dessous.

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

Teste la configuration et s'assure qu'il n'y a pas d'erreur, puis redémarre le service.

nginx -t
systemctl restart nginx

L'installation et la configuration de Nginx en tant que proxy inverse pour le conteneur Discourse sont terminées.

Étape 5 - Installer Discourse Web

Ouvrez votre navigateur Web et visitez l'URL du discours.

http://discourse.hakase-labs.me

Et vous serez redirigé vers la connexion sécurisée HTTP. Cliquez sur le bouton "S'inscrire" pour créer un nouvel utilisateur administrateur.

Tapez maintenant votre nom d'utilisateur et votre mot de passe administrateur, puis cliquez sur "S'inscrire".

Et vous recevrez un nouvel e-mail de confirmation concernant l'activation de votre utilisateur administrateur.

Vous trouverez ci-dessous un exemple de message électronique pour la confirmation du compte Discourse. Cliquez sur le lien pour confirmer et activer le compte administrateur.

Et vous devriez obtenir la page de discours comme indiqué ci-dessous. Cliquez sur le bouton "Cliquez ici pour activer votre compte".

Vous pouvez maintenant configurer votre propre forum Discourse. Cliquez sur le bouton 'Suivant' et vous devez configurer Discourse Forum en 13 étapes. Ou vous pouvez le configurer plus tard en cliquant sur "Peut-être plus tard".

Ci-dessous, le Discourse Forum installé sur le serveur Web Nginx et HTTPS sur Ubuntu 16.04.

Voici mon tableau de bord d'administration Discourse.

Le Discourse Forum a été installé avec Nginx en tant que proxy inverse sur le serveur Ubuntu 16.04.

Étape 6 - Configuration supplémentaire de Discourse

Lors de l'installation de Discourse, vous pouvez rencontrer un problème dans lequel vous ne recevez pas de confirmation par e-mail pour l'activation de l'utilisateur administrateur.

Pour trier le problème, assurez-vous d'avoir le bon compte SMTP sur la configuration app.yml. Ou vous pouvez activer le compte administrateur manuellement depuis votre serveur.

Pour activer manuellement votre compte administrateur, rendez-vous dans le répertoire '/var/discourse'.

cd /var/discourse

Accédez maintenant au conteneur de discours avec la commande ci-dessous.

./launcher enter app

Et activez le premier utilisateur administrateur en utilisant la commande rails comme ci-dessous.

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

Et maintenant, vous pouvez vous connecter au forum Discourse avec votre nom d'utilisateur et votre mot de passe.

Références

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

Ubuntu
  1. Comment installer Docker sur Ubuntu 22.04

  2. Comment installer WordPress avec Nginx sur Ubuntu 18.04

  3. Comment installer phpMyAdmin avec Nginx sur Ubuntu 18.04

  4. Comment installer Discourse Forum avec Nginx sur CentOS 7

  5. Comment installer Discourse sur Ubuntu 20.04

Comment installer Discourse Forum avec Docker sur CentOS 8

Comment installer Nginx avec ModSecurity sur Ubuntu 15.04

Comment installer Sentry avec Docker sur Ubuntu 20.04

Comment installer Nextcloud 13 sur Ubuntu 16.04 avec Nginx

Comment installer Mailtrain sur Ubuntu 18.04 avec Docker

Comment installer Talkyard Forum avec Nginx sur Ubuntu 18.04