Mémo - Discourse installation pour Le Cerveau Bleu

Avertissement: Cet article n'est pas un guide d'installation, mais un mémo d'une installation personnelle des services Discourse sur un serveur privé. L'article n'étant pas adapté, il vous est déconseillé de le suivre dans un cadre débutant.

Installation de Discourse sur un VPS avec Debian GNU/Linux pour le site LCB à l'adresse suivante: le.cerveaubleu.org.

1. Installation des outils nécessaires.

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

Installer GIT apt-get install git Installer Docker wget -qO- https://get.docker.com/ | sh

Vérifier l'état des services.

Status (Active) systemctl status docker System (Enabled) systemctl is-enabled docker

2. Configuration.

Dans cette étape, nous installerons et configurerons le logiciel Discourse. Nous téléchargerons le script de composition de discours docker, configurerons selon nos exigences, puis créerons un nouveau conteneur Docker pour le logiciel de forum de discours.

Créer le dossier pour accueillir les applications mkdir -p /var/discourse Déposer les scripts git clone https://github.com/discourse/discourse_docker.git /var/discourse Copier l’échantillon du fichier docker-compose cd /var/discourse
cp samples/standalone.yml containers/app.yml
Entrer de le fichier de configuration nano containers/app.yml

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

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

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

DISCOURSE_HOSTNAME: 'le.cerveaubleu.org'

Taper votre adresse email dans la ligne 'DISCOURSE_DEVELOPER_EMAIL'.

DISCOURSE_DEVELOPER_EMAILS: '####@cerveaubleu.org'

Configurer SMTP pour l'adresse email.

DISCOURSE_SMTP_ADDRESS: ssl0.ovh.net
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: ####@cerveaubleu.org
DISCOURSE_SMTP_PASSWORD: ############

Enregistrer votre confirguration. [CTRL+X] yes


3. Construction.

Construisons une nouvelle image Docker Discourse basée sur la configuration du modèle app.yml.

Appliquer votre configuration (cela prend environ 10min) ./launcher bootstrap app Démarrer/initialiser le nouveau conteneur Discourse ./launcher start app Le conteneur Discourse doit être opérationnel - vérifiez-le à l’aide de la commande docker. docker ps -a Vérifier le port hôte ouvert à l’aide de netstat, et s’assurer que le nouveau port docker-proxy 2045 est dans la liste. netstat -plntu

4. Générer SSL Letsencrypt.

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

Installer letsencrypt apt-get install letsencrypt -y Générer de nouveaux certificats SSL letsencrypt certonly

Durant la configuration, accepter le registre et entrer vos adresses (email/domaine) utilisées pour votre instance Discourse.


5. Installer et configurer Nginx comme mandataire inverse pour le conteneur Discourse.

Dans cette étape, nous installerons le serveur web Nginx et le configurerons comme mandataire inverse pour le conteneur Discourse qui fonctionne sur le port 2045.

Installer Nginx apt-get install nginx -y Activer Nginx systemctl start nginx
systemctl enable nginx
Vérifier que Nginx a été installé et fonctionne sur le port HTTP 80 netstat -plntu créer un nouveau fichier hôte virtuel pour le conteneur Discourse cd /etc/nginx/
nano sites-available/discourse
server {
    listen 80; listen [::]:80;
    server_name le.cerveaubleu.org;
 
    return 301 https://$host$request_uri;
}
 
server {
    listen 443 ssl http2;  
    server_name le.cerveaubleu.org;

    ssl_certificate /etc/letsencrypt/live/le.cerveaubleu.org/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/le.cerveaubleu.org/privkey.pem;
    include /etc/nginx/snippets/ssl.conf;
 
    location / {
        proxy_pass http://le.cerveaubleu.org: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://le.cerveaubleu.org:2045/ https://le.cerveaubleu.org;
    }
}

Enregistrer votre confirguration. [CTRL+X] yes


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

nano snippets/ssl.conf
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;

Enregistrer votre confirguration. [CTRL+X] yes


Et maintenant activez l’hôte virtuel du discours en utilisant la commande 'ln -s', comme montré ci-dessous.

ln -s /etc/nginx/sites-available/discourse /etc/nginx/sites-enabled/ Gérer la configuration et s’assurer qu’il n’y a pas d’erreur nginx -t
systemctl restart nginx

6. Connexion.

Entrez l'adresse de l'instance le.cerveaubleu.org depuis votre navigateur internet, inscrivez-vous puis configurez votre forum.