Imposible incrustar Discourse local en instancia local de Ghost

¡Hola!
Quería probar Discourse en una instalación local de Ghost.

Básicamente, he configurado todo de la forma más sencilla posible; seguí la “Guía para principiantes para instalar Discourse para desarrollo usando Docker” y configuré Ghost usando su CLI.

Ghost se ejecuta en localhost:2368 y Discourse en localhost:9292.

He agregado localhost:2368 a los hosts permitidos en Personalizar/Incrustar (sin configuraciones adicionales como nombre de clase, lista permitida de rutas o publicación en categoría).

Después de agregar el fragmento de código (y, por supuesto, reemplazar correctamente los marcadores de posición), tengo una incrustación de Discourse que dice “Cargando discusión…”, pero después de unos segundos aparece un error en la consola:

Error al ejecutar ‘postMessage’ en ‘DOMWindow’: El origen de destino proporcionado (‘http://localhost:9292’) no coincide con el origen de la ventana receptora (‘http://localhost:2368’).

¿Qué estoy pasando por alto?

¡Gracias!

2 Me gusta

(No soy un experto ni miembro del equipo)

Ese error aparece si el iframe no se ha cargado.

Cuando agregaste localhost:2368 a los hosts permitidos, prueba con y sin una barra al final, así como con comodines.

Lo que sucede es que es posible que la página se cargue, pero ninguno de los contenidos que enlazan fuera de ella, lo que provoca este fallo en la carga.

Aun así, en realidad tenía mucho interés en probar Ghost pronto. Así que seguiré este tema y espero que este sea el único problema que experimentes con él. :slight_smile:

1 me gusta

Por desgracia, aún no he encontrado una solución :frowning:

1 me gusta

Parece que estás intentando ejecutar una instancia de producción en un puerto no estándar. Esto no es compatible en Discourse.

2 Me gusta

¿Instancia de producción? Seguí la guía para instalar Discourse localmente para desarrollo; ¿no debería ser esta la instalación adecuada para uso local? La instalación funciona a la perfección, solo el incrustado está causando problemas.

1 me gusta

Creo que necesitarás encontrar una manera de probar esto usando nombres de host reales y no puertos.

2 Me gusta

Supongo que intentaré configurar un proxy con nginx entonces, gracias.

1 me gusta

He intentado agregar dos proxies de nginx, uno para Ghost y otro para Discourse, ejecutándose en ghost.localhost y discourse.localhost. Después de cambiar todas las URLs a los proxies, el error ha pasado a ser:

Error al ejecutar ‘postMessage’ en ‘Window’: Origen de destino no válido ‘’ en una llamada a ‘postMessage’.

Al usar http://localhost:9292/ para la discourseUrl en lugar de http://discourse.localhost/, el error desaparece, pero los comentarios quedan atrapados en un bucle infinito (“Cargando discusiones” para siempre y realizando algunas solicitudes cada pocos segundos).

Las configuraciones de nginx son bastante 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;
  }
}

De manera análoga, para la configuración de Ghost se usa ghost en lugar de discourse.