Impossible d'intégrer Discourse local à une instance Ghost locale

Salut,
Je voulais essayer Discourse sur une installation locale de Ghost.

En gros, j’ai tout configuré de la manière la plus simple possible ; j’ai suivi le « Guide pour débutants pour installer Discourse en développement avec Docker » et j’ai configuré Ghost via son CLI.

Ghost tourne sur localhost:2368, Discourse sur localhost:9292.

J’ai ajouté localhost:2368 aux hôtes autorisés dans Personnaliser/Intégration (sans paramètres tels que nom de classe, liste blanche de chemins ou publication dans une catégorie).

Après avoir ajouté l’extrait de code (et bien sûr en remplaçant correctement les espaces réservés), j’ai bien un嵌入 de Discourse qui affiche « Chargement de la discussion… », mais après quelques secondes, une erreur apparaît dans la console :

Échec de l’exécution de ‘postMessage’ sur ‘DOMWindow’ : l’origine cible fournie (‘http://localhost:9292’) ne correspond pas à l’origine de la fenêtre destinataire (‘http://localhost:2368’).

Qu’est-ce que je rate ?

Merci !

2 « J'aime »

(Pas un expert ni un membre de l’équipe)

Vous obtenez cette erreur si l’iframe n’a pas chargé.

Lorsque vous avez ajouté localhost:2368 aux hôtes autorisés, essayez avec ou sans barre oblique à la fin, ainsi qu’avec des caractères génériques.

Ce qui se passe, c’est que la page peut charger, mais aucun des contenus qui font référence à des éléments externes, ce qui provoque cette rupture du chargement.

Néanmoins, j’étais en fait très intéressé pour essayer Ghost bientôt. Je vais donc surveiller ce sujet et espérer que ce soit le seul problème que vous rencontrerez avec. :slight_smile:

1 « J'aime »

Malheureusement, je n’ai pas encore trouvé de solution :frowning:

1 « J'aime »

Il semble que vous essayiez d’exécuter une instance de production sur un port non standard ? Cela n’est pas pris en charge dans Discourse.

2 « J'aime »

Instance de production ? J’ai suivi le guide pour installer Discourse localement à des fins de développement – cela ne devrait-il pas être la bonne installation pour une utilisation locale ? L’installation fonctionne parfaitement, seul l’intégration pose problème.

1 « J'aime »

Je pense que vous devrez trouver un moyen de tester cela en utilisant de vrais noms d’hôte et non des ports.

2 « J'aime »

Je vais essayer de configurer un proxy avec nginx alors, merci.

1 « J'aime »

J’ai essayé d’ajouter deux proxys nginx, l’un pour Ghost et l’autre pour Discourse, fonctionnant sur ghost.localhost et discourse.localhost. Après avoir modifié toutes les URLs pour utiliser les proxys, l’erreur est devenue :

Échec de l’exécution de ‘postMessage’ sur ‘Window’ : Origine cible invalide ‘’ dans un appel à ‘postMessage’.

Lorsque j’utilise http://localhost:9292/ pour discourseUrl au lieu de http://discourse.localhost/, l’erreur disparaît, mais les commentaires restent bloqués dans une boucle infinie (« Chargement des discussions » en permanence, avec des requêtes effectuées toutes les quelques secondes).

Les configurations nginx sont assez simples :

server {
  listen 80;
  server_name discourse.localhost;

  access_log /var/log/nginx/discourse.localhost-access.log;
  error_log /var/log/nginx/discourse.localhost-error.log;
  
  location / {
    proxy_pass         http://127.0.0.1:9292;
    proxy_set_header   X-Forwarded-For $remote_addr;
    proxy_set_header   Host $http_host;
  }
}

La configuration pour Ghost est identique, en remplaçant discourse par ghost.