Da dove proviene %{base_url}?

Ciao a tutti,

Sto eseguendo un container Discourse utilizzando l’immagine Bitnami. Il problema che riscontro è che tutti i template utilizzano example.com per la variabile %{base_url} e non riesco a cambiarla.

Ho creato un ticket di supporto presso Bitnami ma, mentre cercavo, non sono mai riuscito a trovare da nessuna parte su internet nulla riguardo alla variabile base_url.

Qualcuno può aiutarmi a chiarire questo aspetto? Sono molto confuso riguardo a questa variabile.

Non supportiamo installazioni che utilizzano immagini Bitnami. La raccomandazione è di installare Discourse seguendo la guida all’installazione standard se si desidera supporto.

1 Mi Piace

Capisco, ma questo è nella base, non la mia domanda: da dove viene %{base_url} o dove è basato? Non riesco nemmeno a trovarlo nella documentazione o nel forum di Discourse.

Come posso cambiare %{base_url} da example.com al mio proprio domainname in modo che i miei modelli di email vengano analizzati come dovrebbero?

Sembra che qualcosa sia andato storto con la tua installazione se questo non viene popolato con il dominio corretto.

Come è stato menzionato, potrebbe essere più facile per te seguire l’installazione standard e ripristinare un backup se non sei ancora riuscito a individuare cosa è andato storto.

1 Mi Piace

Perché viene popolato e non semplicemente impostato come variabile?

Sembra che tu debba modificare il Docker Compose YAML prima di eseguirlo: containers/bitnami/discourse/docker-compose.yml at main · bitnami/containers · GitHub (righe 31 e 51)

Lo so, ma cambiarlo dopo la prima esecuzione non lo risolve, quindi mi chiedo se debba essere fatto dalla prima esecuzione, dato che mi piacerebbe sapere se imposta questo host (nome) staticamente o meno.

Il container Bitnami compila anche Discourse da zero quando lo si aggiorna, come quello ufficiale?

La variabile sembra essere definita qui:

La variabile current_hostname è impostata qui:

La variabile force_hostname è dichiarata nel template delle impostazioni del sito qui:

Poiché è nascosta, non può essere modificata nelle impostazioni di amministrazione. Come altre impostazioni del sito, presumo che verrebbe memorizzata nel database. Ho cercato un dump del database della nostra istanza e force_hostname non è impostato né dichiarato. Nel nostro file YAML del container Discourse ufficiale abbiamo assegnato DISCOURSE_HOSTNAME, ma immagino che questa sia un’impostazione globale, non un’impostazione del sito, quindi sembra essere applicata in modo diverso.

current_hostname sembra essere ottenuto dalla connessione corrente, cioè dinamica. Ma non riesco a vedere dove sia definito esattamente, probabilmente un modulo/gem esterno:

Non sono sicuro di cosa faccia il container Bitnami con l’impostazione DISCOURSE_HOST, quindi almeno potresti cercare nel tuo database force_hostname finché non scopriamo di più su come viene memorizzato e applicato DISCOURSE_HOSTNAME dal container ufficiale.

Grazie per il tuo supporto finora! Stavo, rispetto alle tue scoperte, pensando anche a configurare la mia installazione come multisito singolo. Questo potrebbe forse farlo funzionare, ma si tratta effettivamente di cercare di risolvere le cose dove ho la sensazione che Bitnami non cambi nulla su Discourse stesso; quindi perché questo problema in effetti.

Devo controllare i miei dump.

Non riesco a trovarlo nei miei dump del database.

Ok, quindi attualmente non riesco a capire dove/come entrambe le varianti del container Discourse applichino internamente l’hostname basato sullo YAML del container.

La composizione del container Bitnami non include un altro webserver ma espone direttamente la porta web di Discourse? Il container ufficiale ha un altro Nginx davanti a Discourse, cosa che in realtà volevo eliminare se possibile, dato che abbiamo già un altro webserver Apache esterno al container.