Integrazione Ghost Discourse

Sto cercando di stabilire un’integrazione tra Ghost e Discourse.

Discourse è: 2.8.0.beta1, Docker su Ubuntu - senza nginx

Sto utilizzando Traefik su un sistema standalone dietro un singolo router IP, in una rete LAN domestica con NAT. Traefik consente il routing HTTP/HTTPS.

Traefik è configurato con un file traefik_dynamic.toml invece che con etichette Docker. Non esiste una rete Docker condivisa. (Se qualcuno è interessato alla configurazione di Traefik, fatemelo sapere: funziona molto bene come reverse proxy).

Ghost è anch’esso all’ultima versione (4.6.4) ed è in esecuzione su un host separato (entrambi gli host sono VM Ubuntu - VERSION=“20.04.2 LTS (Focal Fossa)” in esecuzione su Proxmox).

Ho seguito le varie pagine di tutorial disponibili sul sito della documentazione di Ghost e sul forum di Discourse.

Gli strumenti per sviluppatori di Firefox indicano che la pagina restituisce il seguente codice sorgente:

<div class="comment container small">

<div class="discourse-comments"></div>
    <script type="text/javascript">
     if (window.location.pathname.indexOf('/p/') < 0) {
      DiscourseEmbed = { discourseUrl: 'https://discourse.mydomain/', discourseEmbedUrl: 'https://ghost.mydomain/testing-new-stuff/' };

  (function() {
    var d = document.createElement('script'); d.type = 'text/javascript'; d.async = true;
    d.src = DiscourseEmbed.discourseUrl + 'javascripts/embed.js';
    (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(d);
  })();
}
</script>
</div>

Ma non vengono restituiti commenti effettivi. Posso vedere che il mio host Discourse restituisce embed.js, ma nulla sulla pagina. (Scusate, non sono un programmatore web).

Sembra quindi che lo script venga eseguito correttamente ma non restituisca nulla.

Si tratta di una nuova installazione di Discourse, ancora in modalità di avvio (bootstrap mode). Quindi ci sono pochissimi argomenti.

Il file app.yml è riportato di seguito.

Le impostazioni dell’host incorporato sono corrette, a quanto pare, con l’utente amministratore di Discourse come nome utente per la creazione degli argomenti; la whitelist dei percorsi è attualmente “”.
Ho creato una categoria di test e l’ho aggiunta a “Pubblica nella categoria”.

Ho anche aggiunto DISCOURSE_ENABLE_CORS: true a app.yml perché potrebbe aiutare. Ho aggiunto il proxy e http://ghost.mydomain e http://ghost.mydomain alle origini CORS.

Qualcuno può offrire consigli su come procedere per il debug?

app.yml:
#
templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"
## De-commentate queste due righe se desiderate aggiungere Lets Encrypt (https)
#  - "templates/web.ssl.template.yml"
#  - "templates/web.letsencrypt.ssl.template.yml"

## Quali porte TCP/IP deve esporre questo contenitore?
## Se desiderate che Discourse condivida una porta con un altro server web come Apache o nginx,
## consultate https://meta.discourse.org/t/17247 per i dettagli
expose:
  - "8081:80"   # http
    #  - "443:443" # https

params:
  db_default_text_search_config: "pg_catalog.english"

  ## Impostate db_shared_buffers al massimo al 25% della memoria totale.
  ## verrà impostato automaticamente dal bootstrap in base alla RAM rilevata, oppure potete sovrascriverlo
  db_shared_buffers: "2048MB"

  ## può migliorare le prestazioni di ordinamento, ma aumenta l'utilizzo della memoria per connessione
  #db_work_mem: "40MB"

  ## Quale revisione Git deve utilizzare questo contenitore? (predefinito: tests-passed)
  #version: tests-passed

env:
 LC_ALL: en_US.UTF-8
  LANG: en_US.UTF-8
  LANGUAGE: en_US.UTF-8
  # DISCOURSE_DEFAULT_LOCALE: en

  DISCOURSE_ENABLE_CORS: true

  ## Quanti richieste web simultanee sono supportate? Dipende dalla memoria e dai core CPU.
  ## verrà impostato automaticamente dal bootstrap in base alle CPU rilevate, oppure potete sovrascriverlo
  UNICORN_WORKERS: 2

  ## TODO: Il nome di dominio a cui risponderà questa istanza di Discourse
  ## Obbligatorio. Discourse non funzionerà con un semplice indirizzo IP.
  DISCOURSE_HOSTNAME: mydiscoursehost.mydomain

  ## De-commentate se desiderate che il contenitore venga avviato con lo stesso
  ## hostname (opzione -h) specificato sopra (predefinito "$hostname-$config")
  #DOCKER_USE_HOSTNAME: true

  ## TODO: Elenco di email separate da virgola che diventeranno amministratori e sviluppatori
  ## al primo esempio di registrazione 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: 'myemailaddress@mydomain'

  ## TODO: Il server SMTP utilizzato per validare nuovi account e inviare notifiche
  ## Sono richiesti indirizzo, nome utente e password SMTP
  ## ATTENZIONE: il carattere '#' nella password SMTP può causare problemi!
  DISCOURSE_SMTP_ADDRESS: smtp.mailgun.org
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: postmaster@mydomain
  DISCOURSE_SMTP_PASSWORD: "mypostmasterpassword7"
  #DISCOURSE_SMTP_ENABLE_START_TLS: true           # (opzionale, predefinito true)
  DISCOURSE_SMTP_DOMAIN: mydomain
  DISCOURSE_NOTIFICATION_EMAIL: noreply@mydomain

  ## Se avete aggiunto il template Lets Encrypt, de-commentate sotto per ottenere un certificato SSL gratuito
  #  LETSENCRYPT_ACCOUNT_EMAIL: notused

  ## L'indirizzo HTTP o HTTPS CDN per questa istanza di Discourse (configurato per il recupero)
  ## consultate https://meta.discourse.org/t/14857 per i dettagli
  #DISCOURSE_CDN_URL: https://discourse-cdn.example.com
 
  ## La chiave IP di geolocalizzazione Maxmind per la ricerca degli indirizzi IP
  ## consultate https://meta.discourse.org/t/-/137387/23 per i dettagli
  #DISCOURSE_MAXMIND_LICENSE_KEY: 1234567890123456

## Il contenitore Docker è senza stato; tutti i dati sono memorizzati in /shared
volumes:
  - volume:
      host: /var/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /var/discourse/shared/standalone/log/var-log
      guest: /var/log

## I plugin vanno qui
## consultate https://meta.discourse.org/t/19157 per i dettagli
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git

## Qualsiasi comando personalizzato da eseguire dopo la compilazione
run:
  - exec: echo "Inizio dei comandi personalizzati"
  ## Se desiderate impostare l'indirizzo email 'From' per la vostra prima registrazione, de-commentate e modificate:
  ## Dopo aver ricevuto la prima email di registrazione, re-commentate la riga. Deve essere eseguita una sola volta.
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  - exec: echo "Fine dei comandi personalizzati"