Impossível incorporar o Discourse local a uma instância local do Ghost

Olá,

Queria testar o Discourse em uma instalação local do Ghost.

Basicamente, configurei tudo da maneira mais simples possível: segui o “Guia do Iniciante para Instalar o Discourse para Desenvolvimento usando Docker” e configurei o Ghost usando sua CLI.

O Ghost está rodando em localhost:2368 e o Discourse em localhost:9292.

Adicionei localhost:2368 aos hosts permitidos em Personalizar/Incorporação (sem configurações como nome da classe, lista de permitidos de caminho ou postagem para categoria).

Após adicionar o trecho de código (e, claro, substituir corretamente os espaços reservados), tenho uma incorporação do Discourse que diz “Carregando discussão…” — mas após alguns segundos, um erro é registrado no console:

Falha ao executar ‘postMessage’ no ‘DOMWindow’: A origem de destino fornecida (‘http://localhost:9292’) não corresponde à origem da janela de destino (‘http://localhost:2368’).

O que estou esquecendo?

Obrigado!

2 curtidas

(Não é um especialista ou membro da equipe)

Você recebe esse erro se o iframe não tiver carregado.

Ao adicionar localhost:2368 aos hosts permitidos, tente com ou sem uma barra no final, bem como com curingas.

O que está acontecendo é que a página pode carregar, mas nenhum dos conteúdos que se vinculam ao exterior dela, causando essa falha no carregamento.

No entanto, eu estava realmente muito interessado em testar o Ghost em breve. Então, vou acompanhar este tópico e espero que esse seja o único problema que você enfrente com ele. :slight_smile:

1 curtida

Infelizmente, ainda não encontrei uma solução :frowning:

1 curtida

Parece que você está tentando executar uma instância de produção em uma porta não padrão? Isso não é suportado no Discourse.

2 curtidas

Instância de produção? Segui o guia para instalar o Discourse localmente para desenvolvimento — isso não deveria ser a instalação adequada para uso local? A instalação funciona perfeitamente, apenas a incorporação está causando problemas.

1 curtida

Acho que você precisará encontrar uma maneira de testar isso usando nomes de host reais e não portas.

2 curtidas

Acho que vou tentar configurar um proxy com o nginx então, obrigado.

1 curtida

Tentei adicionar dois proxies nginx, um para o Ghost e outro para o Discourse, rodando em ghost.localhost e discourse.localhost. Após alterar todas as URLs para os proxies, o erro passou a ser:

Falha ao executar ‘postMessage’ em ‘Window’: Origem de destino inválida ‘’ em uma chamada a ‘postMessage’.

Ao usar http://localhost:9292/ para o discourseUrl em vez de http://discourse.localhost/, o erro desaparece, mas os comentários ficam presos em um loop infinito (“Carregando discussões” para sempre, fazendo algumas solicitações a cada poucos segundos).

As configurações do nginx são 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;
  }
}

Respectivamente ghost em vez de discourse para a configuração do Ghost.