J’ai réussi à installer ma première instance Discourse avec succès, bien que j’aie rencontré quelques difficultés en cours de route. J’utilise Debian Stretch et j’ai suivi le guide d’installation Docker.
Lors de la configuration, le script vérifie que le nom de domaine que vous avez saisi correspond bien à cette machine. Il le fait en utilisant nc (netcat). J’ai découvert que c’était là le problème : je n’avais pas installé netcat. Une simple installation a résolu le souci.
Je pense cependant qu’il s’agit d’un bug dans le script d’installation. Une fonction simple pour vérifier si nc est installé suffirait à corriger cela, ou peut-être pourriez-vous même permettre à l’utilisateur de sauter cette vérification, ce qui résoudrait également le problème.
Ce sujet a déjà été soulevé, mais netcat discourse-setup échoue à le trouver.
La vérification se contente d’émettre un avertissement, que vous êtes libre d’ignorer, donc je ne considère pas cela comme un bug.
J’ai envisagé que discourse-setup installe nc, mais faire installer par discourse-setup quelque chose qui pourrait ne jamais être nécessaire semble être une chose à éviter.
Peut-être que la meilleure chose à faire si nc manque est de sauter le test et de suggérer que, si le test est souhaité, vous installiez nc vous-même, en proposant peut-être même apt install nc.
Je dois respectueusement émettre un désaccord : cela ressemble vraiment à un bug. Oui, vous affichez un message d’avertissement qui peut être ignoré, mais pour quelqu’un qui installe Discourse pour la première fois, l’objectif est de rendre le processus aussi simple que possible. Cela signifie éviter d’obliger l’utilisateur à fouiller dans le code source pour découvrir qu’il doit installer netcat afin que tout fonctionne sans erreur. Toute erreur risque de troubler l’utilisateur ou l’administrateur système, ce qui les poussera à perdre du temps à comprendre pourquoi cela ne fonctionne pas et à faire un git blame sur la personne qui a écrit le code.
Cela peut être facilement contourné en ajoutant une vérification simple avant d’exécuter la vérification IP, comme suit :
Vérifiez si netcat est installé.
Si oui, continuez.
Si non, affichez un message d’avertissement et proposez à l’utilisateur une option oui/non : soit continuer sans la vérification, soit annuler afin qu’il puisse installer netcat (ou même lui proposer de l’installer via apt/yum/pacman pour lui).
Une autre option, qui fonctionnerait sur plus de systèmes (bien que pas tous) que actuellement, consisterait à utiliser la pile /dev/tcp. Vous trouverez plus d’informations sur la manière de procéder ici. Cela réglerait le problème pour Debian et fonctionne sous Ubuntu ; je ne l’ai pas encore testé sur d’autres distributions.