Parfois, vous ne souhaitez pas que le grand public puisse accéder à votre instance Discourse pour le moment, par exemple lorsque vous préparez un site pour une migration.
NOTE : J’ai récemment rencontré des problèmes avec l’authentification de base, où certaines ressources statiques ne se chargeaient pas. Il pourrait être plus simple de configurer votre site pour exiger une connexion (login_required) en ajoutant DISCOURSE_LOGIN_REQUIRED: true dans la section env de votre fichier app.yml.
La configuration suivante affichera une simple fenêtre de confirmation du navigateur demandant un nom d’utilisateur et un mot de passe, commune à tous les visiteurs, qui sera requise avant qu’ils puissent accéder au site.
Remarque : Les utilisateurs devront toujours effectuer l’inscription et la connexion normales sur Discourse.
Identifiants d’authentification de base
Générer un mot de passe chiffré
htpasswd -bn =username= =password=
Remarque : Vous aurez besoin de htpasswd pour cela. Sur Ubuntu/Debian, il se trouve dans le paquet apache2-utils. Si vous avez accès à une autre machine où htpasswd est installé, vous pouvez simplement l’exécuter là-bas. Si votre objectif est simplement d’empêcher les moteurs de recherche d’accéder au site, il n’y a aucune raison de ne pas utiliser le mot de passe d’exemple fourni ici.
L’utilisateur et le mot de passe chiffrés vont ici
Ajouter à app.yml
# authentification de base
after_bundle_exec:
- replace:
filename: "/etc/nginx/conf.d/discourse.conf"
from: "# auth_basic on"
to: "auth_basic on"
- replace:
filename: "/etc/nginx/conf.d/discourse.conf"
from: "# auth_basic_user_file /etc/nginx/htpasswd"
to: "auth_basic_user_file /etc/nginx/htpasswd"
- replace:
filename: "/etc/nginx/conf.d/discourse.conf"
from: "location = /srv/status {"
to: "location = /srv/status {
auth_basic off;"
- file:
path: "/etc/nginx/htpasswd"
contents: |
=auth_string=
La section after_bundle_exec modifie la configuration de nginx à l’intérieur du conteneur Discourse. Lorsque vous êtes prêt à mettre le site en production, supprimez simplement cette section et reconstruisez.