GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment installer Discourse Forum avec Nginx sur CentOS 7

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 à l'aide des langages de programmation Ruby et Javascript. Le logiciel de forum Discourse a été utilisé par de nombreuses organisations, notamment Codeacademy, Udacity, Twitter Developers, Docker Community Forum, etc.

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

Ce que nous allons faire

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

Prérequis

  • CentOS 7
  • Privilèges racine
  • Compte SMTP - par ex. depuis Mailgun, SendGrid ou Mailjet

Étape 1 - Installer Docker sur CentOS 7

Le forum de discussion sera installé sous le conteneur Docker. Donc, la première étape que nous devons faire est d'installer Docker sur notre serveur CentOS 7.

Installez Docker sur CentOS 7 à l'aide de la commande suivante.

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

Si vous n'avez pas la commande wget, installez-la à partir du référentiel.

yum -y install wget

Si l'installation est terminée, démarrez le service Docker et activez-le pour qu'il se lance au démarrage à l'aide des commandes systemctl suivantes.

systemctl start docker
systemctl enable docker

Le moteur Docker a été installé et fonctionne sur le serveur CentOS 7. Vérifiez l'état du service à l'aide de la commande suivante.

systemctl status docker

Le service Docker est actif et en cours d'exécution.

Étape 2 - Installer et configurer le logiciel Discourse Forum

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.

Avant de télécharger le discours, nous devons installer la commande git sur le serveur.

yum -y install git

Créez maintenant un nouveau répertoire '/var/discourse' et téléchargez/clonez le script docker de discours à l'aide de la commande git.

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

Allez dans le répertoire discours et copiez un exemple de script docker-compose 'standalone.yml' dans le répertoire '/var/discourse/containers/' avec le nom 'app.yml'.

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

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

vim containers/app.yml

- 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 mappera sur le port 80 du conteneur.

Décommentez la ligne HTTPS et modifiez la ligne HTTP avec le nouveau port '2045', comme indiqué ci-dessous.

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.co'

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

DISCOURSE_DEVELOPER_EMAILS: '[email protected]'

- Configuration SMTP

La configuration SMTP est 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.

Pour ce didacticiel, nous utiliserons le compte SMTP gratuit de Mailgun. Enregistrez-vous auprès de Mailgun et configurez votre nom de domaine, et assurez-vous d'obtenir les détails de votre compte SMTP.

Ensuite, décommentez la configuration SMTP et saisissez les détails de 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

C'est ça. Enregistrez les modifications et quittez l'éditeur.

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

sudo ./launcher bootstrap app

Si tout est terminé, démarrez/initialisez le nouveau conteneur Discourse à l'aide de la commande suivante.

sudo ./launcher start app

Et le conteneur Discourse Docker est opérationnel - vérifiez-le à l'aide de la commande 'docker ps'.

docker ps -a

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

netstat -plntu

Le logiciel Discourse Forum a été installé sous conteneur docker sur l'hôte CentOS 7.

Étape 3 - Générer SSL Letsencrypt sur CentOS 7

Pour ce didacticiel, nous exécuterons le forum Discourse sous le serveur Web Nginx et n'accepterons que la connexion HTTPS. À cette fin, nous avons besoin de nouveaux certificats SSL pour le nom de domaine, et donc, nous utiliserons un certificat SSL gratuit de Letsencrypt.

Installez l'outil de ligne de commande Letsencrypt à l'aide de la commande yum de la manière suivante.

yum -y install letsencrypt

Après l'installation, ajoutez le nouveau service HTTP et HTTPS à la configuration Firewalld.

firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --reload

Générez maintenant de nouveaux certificats SSL pour le forum Discourse à l'aide de la commande letencrypt ci-dessous.

letsencrypt certonly

Vous verrez deux vérifications de Letsencrypt. Tapez le nombre '1' pour faire tourner un serveur Web temporaire pour l'authentification.

Dans ce cadre, tapez votre adresse e-mail pour la notification de renouvellement, tapez 'A' pour accepter les TOS (Conditions d'utilisation) de Letsencrypt.

Tapez maintenant le nom de domaine de discours 'discourse.hakase-labs.co'.

Et lorsque le processus est terminé, vous obtiendrez le résultat ci-dessous.

Un nouveau certificat SSL de letsencrypt a été généré dans le répertoire '/etc/letsencrypt/live'.

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

Dans ce didacticiel, nous utiliserons le serveur Web Nginx comme proxy inverse pour Discourse qui s'exécute sous le conteneur Docker. Le serveur Web Nginx fonctionnera sous les ports HTTP et HTTPS, et toutes les demandes des clients seront traitées par Nginx.

Avant d'installer le serveur Web Nginx, nous devons installer le référentiel EPEL sur le système.

yum -y install epel-release

Installez maintenant nginx à partir du référentiel EPEL à l'aide de la commande yum suivante.

yum -y install nginx

Une fois l'installation terminée, accédez au répertoire de configuration de nginx '/etc/nginx'.

cd /etc/nginx/

Et créez une nouvelle configuration SSL supplémentaire 'ssl.conf' en utilisant vim.

vim ssl.conf

Collez-y la configuration SSL suivante.

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 les modifications et quittez l'éditeur.

Ensuite, créez un nouveau fichier d'hôte virtuel nginx 'discourse.conf' pour Discourse.

vim conf.d/discourse.conf

Collez-y la configuration suivante.

server {
    listen 80; listen [::]:80;
    server_name discourse.hakase-labs.co;
 
    # Automatic Redirect HTTP to HTTPS Nginx
    return 301 https://$host$request_uri;
}
 
server {
    listen 443 ssl http2; 
    server_name discourse.hakase-labs.co;

    # SSL Configuration
    ssl_certificate /etc/letsencrypt/live/discourse.hakase-labs.co/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/discourse.hakase-labs.co/privkey.pem;
    include /etc/nginx/ssl.conf;
 
    # Reverse Proxy Configuration
    location / {
        proxy_pass http://discourse.hakase-labs.co: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.co:2045/ https://discourse.hakase-labs.co;
    }
}

Enregistrez et quittez.

Testez maintenant la configuration nginx et assurez-vous qu'il n'y a pas d'erreur. Redémarrez ensuite le service Nginx.

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 accédez à l'URL de votre discours. La mienne est :

http://discourse.hakase-labs.co

Et vous serez redirigé vers la connexion HTTPS.

Cliquez sur 'S'inscrire ' bouton.

Nous devons maintenant créer un nouveau compte "Administrateur".

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

Et vous obtiendrez la page de confirmation par e-mail. Vérifiez votre boîte de réception et assurez-vous d'obtenir la configuration de messagerie du forum Discourse comme ci-dessous.

Cliquez sur le 'Lien '.

Et vous obtiendrez la page 'Discourse Welcome'.

Cliquez sur le bouton 'cliquez ici pour activer votre compte '. Et maintenant vous devriez arriver à la page suivante.

Cliquez sur 'Peut-être plus tard ' bouton.

Le Discourse Forum a été installé et nous obtenons la page d'accueil par défaut comme indiqué ci-dessous.

Vous pouvez accéder au "Tableau de bord d'administration" et vous obtiendrez le tableau de bord d'administration de Discourse.

Le logiciel Discourse Forum a été installé avec Nginx en tant que proxy inverse sur le serveur CentOS 7.

Étape 6 - Configuration supplémentaire de Discourse

Lors de l'installation de Discourse, certaines personnes disent ne pas recevoir l'e-mail de confirmation pour l'activation de l'administrateur.

Pour ce 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 suivante.

./launcher enter app

Et activez le premier utilisateur administrateur à l'aide de la commande rails comme indiqué ci-dessous.

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

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


Cent OS
  1. Comment installer Docker sur CentOS 8

  2. Comment installer WordPress avec Nginx sur CentOS 7

  3. Comment installer phpMyAdmin avec Nginx sur CentOS 7

  4. Comment installer SuiteCRM avec Nginx sur CentOS 7

  5. Comment installer phpMyAdmin avec Nginx sur CentOS 7 / RHEL 7

Comment installer Vanila Forum sur CentOS 8

Comment installer Nginx avec ngx_pagespeed sur CentOS

Comment installer Nginx avec PHP-FastCGI sur CentOS 6

Comment installer Magento avec Nginx sur CentOS 7

Comment installer Docker sur CentOS 7

Comment installer Laravel avec Nginx sur CentOS 8