Cloudflare Tunnels - Configurazione Discourse che non riconosce l'hostname (porta non accessibile)

Ho il demone cloudflared in esecuzione correttamente e l’ho utilizzato per tantissime cose (il che significa che il tunnel è installato correttamente sul server), ma ho problemi a far riconoscere al setup di Discourse (./discourse-setup) il mio hostname per la mia istanza Discourse.

  • Sto usando biohacking.forum come hostname per la mia istanza.
  • Questa è la mia configurazione di Cloudflare Tunnel per biohacking.forum:
  • Ho anche provato a impostarlo su HTTPS per il tipo di servizio.
  • Sto configurando Discourse su un server Ubuntu, su LTS.
  • Ho eseguito i seguenti comandi in quest’ordine:
  1. sudo mkdir /var/discourse
  2. sudo git clone GitHub - discourse/discourse_docker: A Docker image for Discourse /var/discourse
  3. cd /var/discourse
  4. sudo ./discourse-setup
  5. Viene richiesto l’hostname, inserisco biohacking.forum
  6. Viene visualizzato il seguente messaggio:
Hostname for your Discourse? [discourse.example.com]: biohacking.forum

Checking your domain name . . .
WARNING: Port 443 of computer does not appear to be accessible using hostname:  biohacking.forum.
WARNING: Connection to http://biohacking.forum (port 80) also fails.

This suggests that biohacking.forum resolves to some IP address that does not reach this
machine where you are installing discourse.

The first thing to do is confirm that biohacking.forum resolves to the IP address of this server.
You usually do this at the same place you purchased the domain.

If you are sure that the IP address resolves correctly, it could be a firewall issue.
A web search for "open ports YOUR CLOUD SERVICE" might help.

This tool is designed only for the most standard installations. If you cannot resolve
the issue above, you will need to edit containers/app.yml yourself and then type

./launcher rebuild app

Cosa dovrei fare per far funzionare questo passaggio, per favore fatemi sapere se avete bisogno di ulteriori informazioni. Grazie!

Ehi, hai la nuvola grigia (solo DNS) per il record “A” prima di ./discourse-setup?

Non sto utilizzando un record A standard, sto utilizzando tunnel Cloudflare. Ecco un esempio di un servizio che funziona perfettamente sul mio server (con tunnel Cloudflare) e la configurazione associata:

Ghost CMS è il servizio:
PORTA: 8085:2368 (8085 è host e 2368 è servizio)
HOSTNAME: joshuahabka.com
Configurazione Tunnel Cloudflare:

L’icona arancione di Cloudflare è attiva poiché utilizza i tunnel Cloudflare, ma per Discourse dovrebbe essere segnalata come una normale porta di accesso. Ho oltre 40 servizi distribuiti e accessibili via web e Discourse è il primo per cui riscontro un errore.

Fatemi sapere se avete bisogno di ulteriori informazioni!

Quindi per Discourse presumerei che la porta sia:
443:443 (host:servizio) che è il motivo per cui ho impostato il mio tunnel Cloudflare originale come mostrato sopra

Ciao @joshhabka :wave:
forse questo argomento ti aiuterà, se non l’hai già visto

4 Mi Piace

Ciao Lilly, la guida di cui sopra non ha funzionato per me, ricevo ancora lo stesso errore anche se la configurazione del mio tunnel cloudflare è http://localhost:80 come indicato, sono ancora bloccato su

starserver@Starserver:/var/discourse$ sudo ./discourse-setup
Le porte 80 e 443 sono libere da usare
'samples/standalone.yml' -> 'containers/app.yml'
./discourse-setup: line 261: 4
scaling*                 2: syntax error in expression (error token is "scaling*                 2")

Hostname per il tuo Discourse? [discourse.example.com]: biohacking.forum

Controllo del tuo nome di dominio . . .
ATTENZIONE: La porta 443 del computer non sembra essere accessibile utilizzando il nome host: biohacking.forum.
ATTENZIONE: Anche la connessione a http://biohacking.forum (porta 80) fallisce.

Ciò suggerisce che biohacking.forum risolve a un indirizzo IP che non raggiunge questa macchina dove stai installando discourse.

La prima cosa da fare è confermare che biohacking.forum risolva all'indirizzo IP di questo server.
Di solito lo fai nello stesso posto in cui hai acquistato il dominio.

Se sei sicuro che l'indirizzo IP si risolva correttamente, potrebbe essere un problema di firewall.
Una ricerca sul web per "open ports YOUR CLOUD SERVICE" potrebbe aiutare.

Questo strumento è progettato solo per le installazioni più standard. Se non riesci a risolvere il problema sopra, dovrai modificare tu stesso containers/app.yml e poi digitare

./launcher rebuild app

Disattivando "Usa sempre HTTPS"

Reindirizza tutte le richieste con schema “http” a “https”. Questo si applica a tutte le richieste http alla zona. fa sì che la porta 80 abbia successo ma non la 443

Abilitare una regola di pagina per reindirizzare a HTTPS causa anche il fallimento di 80 e 443, ma se non la si utilizza, 443 fallisce e 80 riesce.

Non stai seguendo le istruzioni.

Non puoi usare discourse-setup se non per creare il file yml.

1 Mi Piace

Grazie, ora sono bloccato qui:

FALLITO
--------------------
Pups::ExecError: /usr/local/bin/ruby -e 'if ENV["DISCOURSE_SMTP_ADDRESS"] == "smtp.example.com"; puts "Aborting! Mail is not configured!"; exit 1; end' è fallito con ritorno #<Process::Status: pid 134 exit 1>
Posizione del fallimento: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec fallito con i parametri {"tag"=>"precompile", "cmd"=>["/usr/local/bin/ruby -e 'if ENV[\"DISCOURSE_SMTP_ADDRESS\"] == \"smtp.example.com\"; puts \"Aborting! Mail is not configured!\"; exit 1; end'", "/usr/local/bin/ruby -e 'if ENV[\"DISCOURSE_HOSTNAME\"] == \"discourse.example.com\"; puts \"Aborting! Domain is not configured!\"; exit 1; end'", "/usr/local/bin/ruby -e 'if (ENV[\"DISCOURSE_CDN_URL\"] || \"\")[0..1] == \"//\"; puts \"Aborting! CDN must have a protocol specified. Once fixed you should rebake your posts now to correct all posts.\"; exit 1; end'"]}
bootstrap fallito con codice di uscita 1
** FALLITO IL BOOTSTRAP ** si prega di scorrere verso l'alto e cercare messaggi di errore precedenti, potrebbero essercene più di uno.
./discourse-doctor potrebbe aiutare a diagnosticare il problema.

Devi modificare il file yml e inserire le credenziali smtp

Fatto e ora è tutto nominale. Mi limiterei a inserire una nota nell’auto-installazione dopo il tunnel Cloudflare, indicando che le persone devono modificare il documento yaml per aggiungere la loro smtp, hostname, email, ecc.

Grazie!

1 Mi Piace

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.