Bonjour à tous !
J’utilise une installation Docker de Discourse 2.6.0.beta2 derrière un proxy Nginx. Malheureusement, les utilisateurs ne peuvent pas réinitialiser leurs mots de passe. Un email contenant un lien arrive, mais le lien semble brisé, peu importe la rapidité avec laquelle vous essayez de l’utiliser. Un visage triste
et un message « Quelque chose s’est mal passé » apparaissent lorsque vous cliquez sur le lien de réinitialisation du mot de passe dans l’email.
Dans le panneau d’administration (https://mysite/logs/), je ne vois aucun journal lié à cet événement. Ce qui est également étrange, c’est que le conteneur Docker ne journalise rien non plus :
Voici la sortie de
dokcer logs app
run-parts: exécution de /etc/runit/1.d/00-ensure-links
run-parts: exécution de /etc/runit/1.d/00-fix-var-logs
run-parts: exécution de /etc/runit/1.d/anacron
run-parts: exécution de /etc/runit/1.d/cleanup-pids
Nettoyage des fichiers PID obsolètes
run-parts: exécution de /etc/runit/1.d/copy-env
runsvdir démarré, PID est 39
chgrp : groupe invalide : ‘syslog’
ok : run : redis : (pid 52) 0s
ok : run : postgres : (pid 50) 0s
rsyslogd : imklog : impossible d’ouvrir le journal du noyau (/proc/kmsg) : Opération non autorisée.
rsyslogd : échec de l’activation du module imklog [v8.1901.0 voir https://www.rsyslog.com/e/2145 ]
supervisor pid : 55 unicorn pid : 78
(55) Ouverture des journaux
mon app.yml
## Ceci est le modèle de conteneur Docker Discourse tout-en-un, autonome
##
## Après avoir apporté des modifications à ce fichier, vous DEVEZ reconstruire
## /var/discourse/launcher rebuild app
##
## SOYEZ *TRÈS* PRUDENT EN ÉDITANT !
## LES FICHIERS YAML SONT SUPER SUPER SENSIBLES AUX ERREURS D'ESPACE OU D'ALIGNEMENT !
## visitez http://www.yamllint.com/ pour valider ce fichier si nécessaire
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
- "templates/web.ratelimited.template.yml"
## Décommentez ces deux lignes si vous souhaitez ajouter Lets Encrypt (https)
# - "templates/web.ssl.template.yml"
# - "templates/web.letsencrypt.ssl.template.yml"
## Quels ports TCP/IP ce conteneur doit-il exposer ?
## Si vous souhaitez que Discourse partage un port avec un autre serveur web comme Apache ou nginx,
## consultez https://meta.discourse.org/t/17247 pour plus de détails
expose:
# - 3040
- "127.0.0.1:3040:80"
params:
db_default_text_search_config: "pg_catalog.english"
upload_size: 20m
## Définir db_shared_buffers à un maximum de 25 % de la mémoire totale.
## sera défini automatiquement par bootstrap en fonction de la RAM détectée, ou vous pouvez le remplacer
db_shared_buffers: "128MB"
## peut améliorer les performances de tri, mais augmente l'utilisation de la mémoire par connexion
#db_work_mem: "40MB"
## Quelle révision Git ce conteneur doit-il utiliser ? (par défaut : tests-passed)
#version: tests-passed
env:
LANG: en_US.UTF-8
# DISCOURSE_DEFAULT_LOCALE: en
## Combien de requêtes web simultanées sont prises en charge ? Dépend de la mémoire et des cœurs CPU.
## sera défini automatiquement par bootstrap en fonction des CPU détectés, ou vous pouvez le remplacer
UNICORN_WORKERS: 2
## TODO : Le nom de domaine auquel cette instance Discourse répondra
## Requis. Discourse ne fonctionnera pas avec une adresse IP brute.
VIRTUAL_HOST: $$$$$$$$$$$$$$$$$$$$$$
VIRTUAL_PORT: 80
LETSENCRYPT_HOST: $$$$$$$$$$$$$$$$$$$$$44
LETSENCRYPT_EMAIL: $$$$$$$$$$$$$$$$$$$4
DISCOURSE_HOSTNAME: $$$$$$$$$$$$$$$$$
## Décommentez si vous souhaitez que le conteneur soit démarré avec le même
## nom d'hôte (option -h) que spécifié ci-dessus (par défaut "$hostname-$config")
#DOCKER_USE_HOSTNAME: true
## TODO : Liste d'e-mails délimités par des virgules qui seront administrateurs et développeurs
## lors de l'inscription initiale, exemple 'user1@example.com,user2@example.com'
DISCOURSE_DEVELOPER_EMAILS: '$$$$$$$$$$$'
## TODO : Le serveur de messagerie SMTP utilisé pour valider les nouveaux comptes et envoyer des notifications
# L'adresse SMTP, le nom d'utilisateur et le mot de passe sont requis
# ATTENTION : le caractère '#' dans le mot de passe SMTP peut causer des problèmes !
DISCOURSE_SMTP_ADDRESS: $$$$$$$$$$$$$$$
DISCOURSE_SMTP_PORT: $$$$$$$$$$$$
DISCOURSE_SMTP_USER_NAME: $$$$$$$$$$$$$$$$$$$
DISCOURSE_SMTP_PASSWORD: "$$$$$$$$$$$$$$$$"
#DISCOURSE_SMTP_ENABLE_START_TLS: true # (optionnel, par défaut true)
## Si vous avez ajouté le modèle Lets Encrypt, décommentez ci-dessous pour obtenir un certificat SSL gratuit
# LETSENCRYPT_ACCOUNT_EMAIL: $$$$$$$$$$$$$$$
## L'adresse CDN http ou https pour cette instance Discourse (configurée pour récupérer)
## voir https://meta.discourse.org/t/14857 pour plus de détails
#DISCOURSE_CDN_URL: https://discourse-cdn.example.com
## Le conteneur Docker est sans état ; toutes les données sont stockées dans /shared
volumes:
- volume:
host: /var/discourse/shared/standalone
guest: /shared
- volume:
host: /var/discourse/shared/standalone/log/var-log
guest: /var/log
## Les plugins vont ici
## voir https://meta.discourse.org/t/19157 pour plus de détails
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/discourse/docker_manager.git
# - git clone https://github.com/discourse/discourse-chat-integration.git
## Toutes les commandes personnalisées à exécuter après la construction
run:
- replace:
filename: /etc/nginx/conf.d/discourse.conf
from: "types {"
to: |
set_real_ip_from 172.18.0.0/24;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
types {
docker_args:
- "--network=nginx-proxy"