Salut à tous ! J’ai essayé à plusieurs reprises de faire fonctionner Discourse sur Google Cloud. Actuellement, je suis sur ma troisième tentative pour créer une instance de machine virtuelle (Ubuntu 18.04 minimal) et installer Discourse manuellement via le terminal. En suivant le guide, tout semble correct, mais une fois ./discourse-setup terminé, je ne peux pas accéder au site.
J’ai également essayé d’installer Discourse avec les solutions de déploiement « en un clic » du Google Marketplace (celle de Google elle-même et celle de Bitnami). Dans ce cas, j’ai pu accéder à la page d’accueil de Discourse.
Je soupçonne un problème lié aux ports de Google (et que ce problème a été évité avec les installations prêtes à l’emploi), mais je connais trop peu ces aspects pour le déboguer moi-même. Des idées ?
À ma connaissance, G Cloud nous demande de cocher deux cases pour autoriser l’accès public à une machine virtuelle. Cela peut être configuré ultérieurement si nécessaire.
Je commence à penser que je n’exécute peut-être pas de serveur web. Dois-je installer Nginx avant ou après l’installation de Discourse, ou autre chose ? Je suis parti d’une idée dans ce fil de discussion, qui correspond exactement à mon problème.
Bon, je commence à penser que c’est bien cela le problème. Il semblait que Nginx était installé, mais il ne tournait pas. J’ai tué les PIDs 14311 et 14295 de docker-proxy, puis j’ai lancé Nginx. Maintenant, Nginx est lié au port 80 et lorsque j’accède à mon site, je suis accueilli par Nginx !
Il faut maintenant remettre le système Docker/Discourse en marche.
J’ai également trouvé ce guide sur l’installation de Discourse/Nginx sur une version plus ancienne d’Ubuntu. Ils semblent avoir changé le port pour Docker, du port 80 pour une raison quelconque. Peut-être y a-t-il un conflit ici.
D’une manière ou d’une autre, j’ai réussi à avoir à la fois Nginx en cours d’exécution sur le port 80 et docker-proxy écoutant sur les ports 8060 pour http et 9443 pour https (comme suggéré par un autre tutoriel). Mais une fois cela accompli, je suis à nouveau perdu. Discourse semble être un très beau forum, mais apparemment impossible à installer sur Google Cloud pour des débutants comme moi.
Vous n’avez pas besoin d’exécuter un serveur web dédié, sauf si vous prévoyez d’utiliser le serveur pour autre chose que l’hébergement de Discourse, car Discourse intègre déjà un serveur Nginx. Pourriez-vous confirmer que votre serveur dispose d’une adresse IP publique et que celle-ci est configurée pour autoriser les connexions externes sur les ports 22, 80 et 443 ?
Oui. Mon instance VM sur Google possède une adresse IP publique et autorise le trafic sur les ports 22, 80 et 443.
Je pense que cela a également été démontré lorsque j’ai tué les processus docker-proxy (sur les ports 80 et 443), j’ai lancé Nginx (sur le port 80) et j’ai pu accéder à la page d’accueil de Nginx sur mon site.
Cela indique donc un problème avec l’installation elle-même. S’il s’agit d’une installation neuve, il est probablement plus simple de simplement supprimer la machine virtuelle et de la configurer à nouveau.
Je l’ai en fait installé 3 fois déjà, et les ports se révèlent toujours non liés. J’ai réalisé trois installations réussies, mais je n’ai jamais pu accéder au forum. Je pense donc à utiliser la version de Google (qui fonctionne, mais ne me permet pas de configurer le SMTP), puis à trouver un moyen de configurer le SMTP à partir de cette version.
Puis-je configurer SMTP après la fin de l’installation ?
En suivant l’« Étape 11 » de ce lien, j’ai pu [créer, car il n’existait pas, et] modifier le fichier discourse.conf. Après cela, je pourrais apparemment redémarrer le « service discourse » et tester mes paramètres d’e-mail ?
Cela signifie-t-il que je n’ai pas besoin de réinstaller Discourse, n’est-ce pas ?
En examinant mes services en cours d’exécution, je ne vois rien nommé « discourse », même si mon forum Discourse est manifestement en ligne.
Discourse ne devrait-il pas être visible ici ? Existe-t-il un autre service ici que je pourrais redémarrer, ce qui redémarrerait à son tour le service Discourse ?
Je suis désolé, je n’ai aucune idée de la façon dont l’image Google Cloud est configurée. J’ai effectué plus d’une douzaine d’installations (dont une la semaine dernière) et je suis assez confiant que le problème vient probablement de la configuration de votre VM.
Voici mes étapes de préparation avant de suivre le Guide d’installation officiel :
Configurer le moteur de calcul pour autoriser le trafic HTTP et HTTPS.
Configurer le DNS et le confirmer.
Assurer la connectivité à ma VM via SSH.
Je peux vous assurer que le processus fonctionne.
P.S. : J’utilise généralement la version minimal d’Ubuntu sur Gcloud pour installer Discourse.
Hm. C’est étrange. Mais merci d’avoir confirmé que c’est bien possible sur Google Cloud. Je pense aussi que l’installation de Discourse se passe bien, et que le problème vient de la VM ou des ports. Je vais donc tenter une quatrième fois demain, même si j’ai effectué ces étapes de préparation à chaque fois. Merci, Bhanu.
Je vais m’en occuper maintenant. J’ai simplement supprimé les anciennes instances et le projet, puis lancé un nouveau projet et une nouvelle instance sur Google Cloud. Je vais essayer d’installer Discourse maintenant et vous tiendrai informé des ports vérifiés !
D’accord, donc quelques jours plus tard. Ça fonctionne !
J’ai refait le même processus une fois de plus, mais j’ai été plus prudent à chaque étape cette fois-ci. J’ai supprimé mon instance et mon projet sur Google Cloud, et j’ai commencé avec un nouveau projet.
J’ai ensuite créé un nouveau projet et une nouvelle instance. Ubuntu 18.04 LTS minimal. HTTP/HTTPS activé. Avant de suivre le guide officiel, lié ci-dessus, j’ai fait ce que Bhanu a dit et testé la connectivité. J’ai suivi le « tutoriel de bienvenue » de Google Cloud, qui implique également de tester un script de serveur Python sur le port 80, etc.
Pendant le processus du « guide officiel », j’ai été très prudent lors de la configuration de SMTP. Pour une raison quelconque, j’ai décidé de ne pas utiliser Mailgun, mais j’ai fini par utiliser Sendinblue. Ce qui fonctionne très bien !
Je ne sais vraiment pas quelle était la différence cette fois, mais ça fonctionne maintenant. Merci d’avoir discuté avec moi dans le fil de discussion !
Je ne sais pas pourquoi je ne peux pas modifier mon message précédent, mais un modérateur pourrait les fusionner.
Je voulais simplement ajouter que je pense que mon problème et sa solution ONT PEUT-ÊTRE été dus au fait que j’étais trop impatient.
À cause de l’installation d’un plugin défectueux, j’ai récemment dû réinstaller complètement mon instance Discourse. Lorsque j’ai démarré cette nouvelle instance, j’ai obtenu une nouvelle adresse IP. Je me suis donc rendu chez mon hébergeur, j’ai mis à jour mon pointeur A/DNS, qui pointe mon sous-domaine discourse.mydomain.com vers l’IP de mon instance Google Cloud, puis je suis retourné sur mon SSH Google Cloud pour exécuter la configuration.
Lorsque vous exécutez ./discourse-setup pour la première fois, la configuration vérifie la capacité de se lier aux ports 80 et 443. Mais pour une raison quelconque, il a de nouveau refusé de se lier aux ports 80 et 443. J’ai consulté les informations DNS via who.is et le sous-domaine se résolvait correctement vers l’IP, etc. — mais cela ne fonctionnait toujours pas. J’ai essayé d’exécuter ./discourse-setup trois fois, sans succès. J’ai vérifié avec netstat -ltnpu, rien d’anormal. J’ai attendu cinq minutes de plus, je l’ai exécuté une quatrième fois, et cette fois cela a fonctionné.
Je ne peux pas modifier mon message précédent. Mais j’ai effectivement rencontré des problèmes lors de la réinstallation. Cette fois, j’ai également ajouté les autorisations suivantes dans mon pare-feu :
Je pense qu’il n’est pas nécessaire de configurer de règles de sortie, car tous les ports sont ouverts par défaut, à l’exception du port 25, qui est toujours bloqué.