L'application Defaultish ne se reconstruit pas

Salut, j’ai installé Discourse par défaut sur une machine Linux en suivant ce guide. Tout s’est déroulé très smoothly, et le site s’est lancé parfaitement.

J’ai décidé d’autoriser les utilisateurs à se connecter via Facebook, alors j’ai suivi les instructions Facebook liées depuis le lien ci-dessus (je ne peux pas les relier à nouveau car les nouveaux utilisateurs ne peuvent poster que deux liens apparemment). Cela n’a pas fonctionné, mais le site était toujours en ligne et fonctionnel (je ne me souviens plus de l’erreur rencontrée lors de la tentative de connexion via Facebook).

En parcourant la documentation Facebook, j’ai vu qu’il fallait activer HTTPS, alors j’ai commencé à suivre ces documents. Tout s’est bien passé jusqu’à la commande ./launcher rebuild app, où j’ai obtenu une erreur PostgreSQL. Cela m’a surpris, car je n’avais rien modifié dans la configuration de PostgreSQL (à ma connaissance). La première erreur est ci-dessous :

INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'  
rake aborted!  
PG::ConnectionBad: could not connect to server: No such file or directory  
	Is the server running locally and accepting  
	connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?  

Je n’ai pas arrêté le service PostgreSQL, mais j’ai essayé d’exécuter service start postgres et il a indiqué qu’il n’était pas installé. Je suppose donc qu’il est installé automatiquement d’une manière différente de ce à quoi je suis habitué. Avez-vous des idées sur ce que j’aurais pu faire de travers ? Merci

Mon fichier container/app.yml :

templates:  
  - "templates/web.template.yml"  
  - "templates/web.ssl.template.yml"  
  - "templates/web.letsencrypt.ssl.template.yml"  
  - "templates/postgres.template.yml"  
  - "templates/redis.template.yml"  
  - "templates/web.template.yml"  
  - "templates/web.ratelimited.template.yml"  

expose:  
  - "80:80"   # http  
  - "443:443" # https  

params:  
  db_default_text_search_config: "pg_catalog.english"  

  db_shared_buffers: "128MB"  

env:  
  LANG: en_US.UTF-8  
  LETSENCRYPT_ACCOUNT_EMAIL: 'myotheremail@gmail.com'  
  UNICORN_WORKERS: 2  

  DISCOURSE_HOSTNAME: mysite.com  

  DISCOURSE_DEVELOPER_EMAILS: 'myemail@gmail.com'  

  DISCOURSE_SMTP_ADDRESS: smtp.gmail.com  
  DISCOURSE_SMTP_PORT: 587  
  DISCOURSE_SMTP_USER_NAME: myemail@gmail.com  
  DISCOURSE_SMTP_PASSWORD: "myPa$$word"  

  ## 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  

volumes:  
  - volume:  
      host: /var/discourse/shared/standalone  
      guest: /shared  
  - volume:  
      host: /var/discourse/shared/standalone/log/var-log  
      guest: /var/log  

hooks:  
  after_code:  
    - exec:  
        cd: $home/plugins  
        cmd:  
          - git clone https://github.com/discourse/docker_manager.git  

run:  
  - exec: echo "Beginning of custom commands"  
  - exec: echo "End of custom commands"

Si vous suiviez le guide officiel, HTTPS aurait dû être configuré automatiquement. Remarquez tout en haut du guide auquel vous avez fait référence :

Oui, c’est exact. Et ce sont les instructions que j’ai suivies. J’ai d’abord consulté le guide de connexion via Facebook, mais je doute que cela soit le problème. J’ai suivi le guide que vous avez partagé, puis je suis passé à HTTPS, et maintenant je rencontre les problèmes mentionnés ci-dessus.

Ok, regroupons-nous un instant.

Ces deux guides sont tout ce dont vous avez besoin pour suivre :

Celui-ci, vous ne voulez pas le suivre car HTTPS est activé par défaut :

Je recommencerais à zéro si possible, puis je vous ferai part de toute erreur rencontrée lors de la tentative de connexion avec Facebook.

D’accord, eh bien, lorsque j’ai terminé le premier guide, le site était en ligne, mais il n’était pas en HTTPS. J’ai supposé qu’il ne le serait pas tant que je ne l’aurais pas activé. Je vais revoir les instructions, peut-être que je n’ai pas compris quelque chose, puis je vous tiendrai informé.

Ok, j’ai remis l’application en ligne, mais je ne vois nulle part dans ces instructions comment configurer le site en HTTPS, car il n’y a rien qui concerne un certificat, à part la méthode Let’s Encrypt tout en bas. Qu’est-ce que je rate ? Pouvez-vous m’indiquer exactement où, dans ces instructions, la configuration HTTPS est effectuée ?

Tout est géré en arrière-plan. Lorsque vous saisissez votre adresse e-mail à la dernière étape de configuration :

Je parie que j’ai appuyé sur ENTRÉE pour passer sans même m’en rendre compte. Si c’est le cas, serait-il préférable de relancer la configuration ou de suivre les instructions de Let’s Encrypt ? Gardez à l’esprit que j’ai déjà un peu de contenu sur le site et que je ne veux pas le perdre. (Merci encore pour votre aide)

Exécutez à nouveau discourse-setup et fournissez une adresse pour Let’s Encrypt.

Quelle fonctionnalité fantastique. Je me sens tellement bête de l’avoir manqué la première fois. Merci à vous deux et à l’équipe pour l’avoir implémentée.

Y a-t-il une façon de changer les mots qui t’aurait permis de mieux comprendre plus tôt ?

Je le pense. J’ai pas mal d’expérience dans la gestion de serveurs, mais je n’ai pas été très actif depuis la sortie de Let’s Encrypt, donc j’ai simplement supposé qu’il y aurait une section sur l’obtention d’un certificat dans la documentation si cela fonctionnait directement. Comme il n’y en avait pas, j’ai supposé que je devrais le faire dans une étape supplémentaire. Rien sur cette page ne mentionne même Let’s Encrypt, à part la sortie de la commande ./disource-setup. Peut-être faudrait-il mentionner, sous « Modifier la configuration de Discourse » (avant la commande), que si vous voulez du HTTPS, vous devrez entrer quelque chose dans le champ Let’s Encrypt. Je savais où chercher pour le HTTPS, mais il n’y avait aucune correspondance de chaîne « https » (lorsque j’ai utilisé Ctrl+F), donc j’ai supposé que ce n’était pas là. J’ai recherché « https » et « cert », et comme ce n’était pas là, j’ai supposé que c’était séparé.

Et honnêtement, si je travaillais plus fréquemment sur l’hébergement de sites web, j’aurais probablement vu Let’s Encrypt et su immédiatement ce qui se passait. Peut-être qu’une section « Ce dont vous aurez besoin », incluant une adresse e-mail associée à Let’s Encrypt, serait utile ?

Je ne veux pas que cela paraisse insultant ; la documentation est excellente, et c’est une erreur humaine (la mienne) qui a causé mon problème.

C’est juste. Quels mots ?

Je ne sais pas si vous n’avez pas vu le reste de ma réponse, mais je vais peut-être simplement soumettre une PR avec les corrections que je juge utiles. Mais il serait vraiment bien de simplement mentionner que la documentation gère les certificats.

Ah ! Donc la documentation sur l’installation dans le cloud n’est pas claire ? Cela semble logique.

Je vais examiner le langage utilisé dans discourse-setup pour voir s’il faudrait préciser ce qu’est Let’s Encrypt. Il est vrai qu’on ne devrait pas supposer que l’utilisateur le sait déjà.

Merci