Je me penche sur Discourse comme candidat pour un forum dans mon projet.
Je suis un peu surpris par la complexité de la mise en œuvre de cette pile.
Sur GitHub, il y a cette instruction : elle nécessite un serveur SMTP et un nom de domaine.
J’ai également vu un autre guide qui détaille l’installation de la pile directement sur l’hôte. Je préférerais m’appuyer sur Docker pour configurer toutes ces dépendances
Ce qui m’a aussi troublé, c’est que le premier guide insiste beaucoup sur le fait qu’il faut un serveur SMTP et un DNS. Ce dernier n’en fait pas du tout mention.
Il me semblait que, puisque tout est conteneurisé, je devrais pouvoir simplement exécuter un Docker Compose pour lancer les conteneurs Discourse et de base de données (je vois qu’il s’agit de PostgreSQL) (+ éventuellement d’autres conteneurs, comme un cache si Discourse en a besoin). Ensuite, en production, je l’hébergerais probablement sur Kubernetes (ce qui ne semble pas si simple, d’après ce que j’ai lu dans certains fils de discussion).
Souhaitez-vous une installation de développement ou une installation de production ? Si c’est cette dernière, consultez l’installation standard officielle de Discourse. L’exécution sous k8s est possible, mais ce n’est pas simple, car vous devez utiliser ./launcher pour construire le conteneur. De plus, effectuer une mise à jour complète sans interruption de service nécessite plusieurs étapes qui ne sont pas immédiatement évidentes. Si vous souhaitez que ce soit simple, lancez simplement une machine virtuelle (un peu plus facile si elle exécute Ubuntu ou Debian).
Oui, pour la production, vous devez pouvoir envoyer des e-mails. Pour le développement, cela va de soi que ce n’est pas nécessaire.
@merefield Merci pour le lien Docker. Cela fonctionne, et c’est proche de ce que j’imaginais pour le processus. Bien que, c’est un peu étrange que tout soit emballé dans un seul conteneur. Et oui, c’est lent.
Ce qui m’a surpris, c’est que lorsque j’exécute git clone sur discourse, puis cd discourse, mon shell devient vraiment lent - première fois que je vois ça . Ce dépôt doit contenir beaucoup de fichiers, ou autre chose, bien que je ne sache pas pourquoi cela affecterait mon shell.
@pfaffman J’aimerais aussi essayer l’installation plus proche de la production, pour avoir une idée du processus. Je suis d’accord pour une installation sur une machine virtuelle. Cependant, qu’en est-il du serveur SMTP et du domaine ? Le guide est très strict à ce sujet et indique que je DOIS les avoir.
Et ce serait aussi acceptable, mais c’est juste que je ne comprends pas tout à fait certaines choses :
pourquoi le domaine est-il vraiment nécessaire ? Pourquoi localhost ne suffit-il pas ?
le serveur de messagerie doit-il pointer vers le même domaine que celui que j’utilise pour Discourse ?
le guide parle aussi de sous-domaines - pourquoi un sous-domaine ? Par exemple, je configure une VM sur Azure, et la VM a un DNS qui lui est attribué (comme myvm.westeurope.cloudapp.azure.com) - ce domaine ne suffit-il pas ?
C’est pour la production et cela nécessite HTTPS, donc vous avez besoin d’un nom de domaine. Celui d’Azure fonctionnera.
Vous n’êtes pas obligé d’utiliser le même nom de domaine pour le serveur de messagerie que pour le nom d’hôte. Il y a quelque temps, j’ai modifié discourse-setup pour qu’il demande l’adresse e-mail de notification.
Un sous-domaine signifie simplement ne pas utiliser x.com mais y.x.com. C’est une pratique assez bien établie.
Je partage ta préoccupation concernant les noms de domaine pour Discourse. POURQUOI LOCALHOST NE SUFFIT-IL PAS ?
J’ai installé Discourse uniquement pour que mon équipe puisse s’amuser, mais cela ne fonctionne pas sans DNS. Nous avons essayé d’ajouter une ressource DNS pointant vers localhost dans le fichier hosts de mon serveur pour résoudre le problème, mais sans succès.
Est-ce que quelqu’un a déjà essayé d’exécuter Discourse sans domaine public ?
Non. Si vous souhaitez installer une version de développement, vous n’avez pas besoin de nom d’hôte, mais cela ne fonctionne que pour localhost. Si vous voulez que votre équipe l’utilise, vous avez besoin d’un nom d’hôte. Si vous avez une équipe, vous avez sûrement un nom de domaine ? Créez simplement un sous-domaine de celui que votre entreprise utilise, payez 12 $ pour un nom d’hôte, ou profitez de l’essai gratuit.
Eh bien, pour nous, nous ne souhaitons pas que les discussions soient publiques. Nous voulons un forum de discussion interne. Je suis du même avis que les autres : localhost échoue, l’installation échoue lorsque vous essayez simplement de faire un test. C’est vraiment décourageant, et les scripts étranges au lieu de la commande bien connue et standard ‘docker-compose up -d --build’ sont inquiétants, pour ne pas dire plus… Je ne sais pas si je veux utiliser ce produit car il se prend trop au sérieux… ou du moins la personne qui a écrit le lanceur.
Ou peut-être a-t-elle été écrite avant que docker-compose ne devienne un outil viable, et elle fonctionne encore sur des milliers de sites. Un changement risquerait de les faire tous tomber pour un cas marginal.
Si le serveur a accès au monde extérieur, il n’est pas très difficile de désactiver le HTTPS, même si je ne l’ai pas fait depuis un moment.
Vous avez besoin d’un nom de domaine, mais il n’est pas nécessaire qu’il soit sur une adresse IP publique. Si votre serveur peut accéder à Internet (pour télécharger Discourse et ses composants), vous pouvez désactiver la fonctionnalité Let’s Encrypt et cela devrait fonctionner. Je pense qu’il vous suffit de supprimer les modèles SSL et Let’s Encrypt dans le fichier YAML, mais vous ne pourrez plus utiliser discourse-setup. Copiez l’échantillon autonome et modifiez-le manuellement.
Vous aurez toujours besoin d’un serveur de messagerie.
C’est nécessaire pour plusieurs raisons. Bien que vous puissiez obtenir un domaine gratuitement sur FreeNom, il y a eu beaucoup de controverses sur la façon dont FreeNom gère les données et les informations des utilisateurs, alors soyez prudent si vous choisissez cette voie.