Usa CloudPanel per gestire più siti con Discourse

Puoi andare direttamente al mio tutorial passo passo qui…

Sul mio server dedicato (Hetzner) ho installato un’istanza Discourse fresca (ed è l’unica cosa sul server a questo punto.)

Ora voglio usare CloudPanel come reverse proxy, in modo da poter usare anche il server per ospitare blog Ghost e siti Wordpress per alcuni dei miei clienti.

Leggendo questo tutorial, e avendo anche studiato gli altri post qui sotto, sembra possibile.

Ma sto lottando con la mia curva di apprendimento sui reverse proxy.

Posso facilmente installare e gestire i miei siti usando CloudPanel.

Ma non mi è chiaro l’ordine o la procedura corretta per far funzionare CloudPanel con Discourse.

Vorrei documentare la procedura qui in questo post.

Qualcuno può guidarmi attraverso questo?

Per prima cosa segui una di queste guide per spostare discourse su un’altra porta, rimuovere i template ssl e let’s encrypt e ricostruire. Poi indica al tuo reverse proxy di usare quella porta.

3 Mi Piace

E se installassi prima CloudPanel e creassi un reverse proxy nell’interfaccia…


… e/o nell’Editor Vhost…

… potrei poi installare Discourse?

Oppure, è necessario o in qualche modo preferibile installare prima Discourse?

Vorrei fornire i passaggi per il modo più semplice/intuitivo (per altri sempliciotti come me :slight_smile: )

Non ha importanza. Purché

  • Discourse non utilizzi le porte 80/443 perché il conflitto bloccherà il tuo reverse proxy
  • Discourse non utilizzi SSL ma esponga la porta 80 a quella porta che il reverse proxy utilizza per il backend

Quindi non ha importanza significa che Discourse deve essere configurato come backend prima di avviare il reverse proxy ed è irraggiungibile a quel punto.

1 Mi Piace

Non è una configurazione per sempliciotti. Dovrai capire sia come funziona un proxy inverso sia come configurare discourse manualmente. Non sarà semplice né intuitivo.

È già abbastanza difficile supportare l’installazione standard per i neofiti. Sono state dedicate moltissime ore per far funzionare quelle istruzioni per persone che non sanno nulla di amministrazione di sistema.

2 Mi Piace

Sono state dedicate moltissime ore per rendere queste istruzioni funzionanti per persone che non sanno nulla di amministrazione di sistema.

@pfaffman Spero di poterti aiutare a ridurre quelle ore in futuro!

1 Mi Piace

Il file containers/app.yml è creato dall’installer? (Non riesco a trovarlo nel repository.)

Ho modificato il file standalone.yml e l’ho rinominato app.yml

Se inserisco quel file in containers/ e poi eseguo ./discourse-setup, dovrebbe funzionare?

(Supponendo che abbia configurato correttamente le impostazioni nel mio app.yml)

Sì.

Come nuovo arrivato relativo a Discourse, il modo corretto per farlo assomiglia a questo:

  • Disabilita temporaneamente il tuo reverse proxy.
  • Installa Discourse con SSL/Lets Encrypt disabilitato
  • Verifica un’installazione funzionante su :80
  • Cambia la porta di Discourse a 81 o un’altra porta non standard, o meglio ancora usa un socket.
  • Avvia nuovamente il reverse proxy, configuralo contro l’installazione di Discourse (inclusa l’incapsulazione https)
  • Abilita force_https

Se non installi Discourse senza il RP attivo, ci sono troppe aree in cui le cose potrebbero andare storte per poterle risolvere praticamente.

1 Mi Piace

Non puoi usare discourse-setup per la tua configurazione. Se l’hai modificato, esegui

./launcher rebuild app

2 Mi Piace

Miracolo dei miracoli: ce l’abbiamo fatta! Grazie per tutto il vostro aiuto! Documenterò la procedura nel post dell’argomento qui sopra.

2 Mi Piace

OK, sono bloccato su una cosa (piccola, credo)…

Per creare una seconda istanza di Discourse creo e modifico l’app2.yml e il server_name.conf per la seconda Discourse, cambiando DISCOURSE_HOSTNAME e server_name.

Ma poi… come si crea l’app2? Ho provato:

service nginx restart

./launcher stop app

./launcher rebuild app2

e

./discourse-setup (avevo usato ./discourse setup per installare la prima istanza e poi sono tornato indietro e ho modificato app.yml, e ha funzionato sulla prima istanza.)

Questa procedura ha portato a una Discourse al secondo URL, ma sembra che stia ottenendo dati dalla prima istanza.

Non sto capendo qualcosa. Qual è il modo corretto per creare il secondo sito sul secondo dominio?

2 Mi Piace

Il tuo reverse proxy è configurato per ascoltare il secondo dominio e instradare il traffico verso una porta diversa?

2 Mi Piace

Devi cambiare la directory che utilizza dove dice /var/discourse/standalone in qualcosa di diverso (standalone2?).
Potresti voler usare una configurazione a due container in modo da eseguire una sola copia di postgres (penso che la Configurazione multisito con Docker abbia alcuni suggerimenti), ma se hai molta RAM potresti non preoccupartene.

1 Mi Piace

Wow. Non l’avrei mai scoperto da solo. Sei il mio eroe del giorno.

Quello che sto facendo qui è (per un cliente) costruire un prototipo per un sistema di pubblicazione Discourse versatile per Creator, integrando Ghost con Discourse.

Sono uno sviluppatore front-end e ora devo imparare completamente l’amministrazione di sistema.

Quindi devo costruire sia un multisito che container separati.

Questa è la configurazione del mio server:

  1. un server dedicato su Hetzner (6 core CPU, 64 GB di RAM e 2x512 GB NVMe)

  2. un VPS su Contabo (8 core CPU, 30 GB di RAM e 200 GB NVMe)

1 Mi Piace
3 Mi Piace

Non ne so nulla, ma se tu e altri pensate che il vostro tutorial sia affidabile, sentitevi liberi di crearne uno nuovo #documentation:sysadmin how-to advanced-setup e qualsiasi altro tag che riteniate appropriato :slight_smile:
(prima che la tua risposta venga eliminata automaticamente tra un mese :stuck_out_tongue: )

3 Mi Piace

OK sì. Quindi per quella seconda istanza ha funzionato (dopo aver creato un nuovo sito in CloudPanel):

  1. creare e modificare manualmente il file app2.yml, cambiando ogni istanza in quel file da standalone a standalone2

  2. cambiare anche standalone in standalone2 nel file Vhost

  3. eseguire ./launcher rebuild app2

Penso di aver anche cancellato tutte le cache di Cloudflare, riavviato nginx e poi anche riavviato il server.

Grazie ancora per il tuo aiuto.

2 Mi Piace

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