Réinitialisation du mot de passe ne fonctionne pas pour Discourse 2.6.0.beta2

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 :frowning: 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"
1 « J'aime »

Recevez-vous le bon lien ? Il devrait ressembler à ceci : https://forum.example.com/u/password-reset/6a34c2454cf11a6707a23591e6c417ba

2 « J'aime »

Bonjour Gerhard, merci pour votre réponse.

Le lien semble correct. Il y a “users” au lieu de “u” dans mon lien.

https://forum.example.com/users/password-reset/23e410a2c11e576c38b1df68f112f88d

3 « J'aime »

Bonjour,
J’ai testé sur deux de mes instances. Même erreur.
Il semble que le lien généré soit incorrect.
Si je modifie :
users → u
cela fonctionne :slight_smile:

2 « J'aime »

Je peux confirmer que la solution de contournement proposée par @napcok fonctionne. Cependant, je ne la considérerais pas comme une véritable solution. Pourriez-vous peut-être me conseiller sur la manière de résoudre ce problème ?

Il semble que cela ne concerne que les langues polonaise et turque.

2 « J'aime »

J’ai envoyé une pull request avec une correction pour cela.

Je pense que cela devrait être fait ici :

et ici :

Comme je ne connais ni le turc, ni le polonais, ni Crowdin, je m’abstiendrai d’essayer quoi que ce soit :sweat_smile:

1 « J'aime »

Modifié les deux dans Crowdin.
J’ai fermé ma demande de tirage sur GitHub.

2 « J'aime »

Merci ! J’ai mis à jour les traductions dans le dépôt Discourse. Elles devraient arriver très bientôt dans la branche tests-passed.

3 « J'aime »

Merci ! Les deux forums ont été mis à jour, tout fonctionne bien :slight_smile:

2 « J'aime »