Sto cercando di confermare l’architettura corretta per servire un’applicazione personalizzata a un sotto-percorso mantenendo Discourse alla radice (/), senza modificare gli interni di Discourse.
Cosa voglio (obiettivo finale)
https://mydomain.com/ → Discourse
https://mydomain.com/tickets → Sistema di ticketing personalizzato (Go + Gin)
Requisiti:
Discourse deve rimanere a / e l’app personalizzata deve vivere a /tickets
Stesso dominio
Nessun plugin di Discourse
Ambiente attuale
OVH VPS (Ubuntu) Discourse in esecuzione in Docker (/var/discourse)
App Go personalizzata in esecuzione sullo stesso server a 127.0.0.1:8080
Nginx esterno installato sull’host (non all’interno del container)
NON sto cercando di eseguire Discourse in una sottocartella come /forum. Ah, e prima che qualcuno lo chieda, sì, ho provato a usare il plugin per i ticket di Discourse - non funziona come vorrei.
Penso che quelle siano probabilmente le tue migliori istruzioni, comunque. Seguirai quelle istruzioni, ma in modo inverso. Farai in modo che il tuo proxy inverso esterno serva / a Discourse e /tickets alla tua applicazione.
Penso che l’nginx esterno sia il modo più semplice per farlo. Sarebbe possibile creare un template che permettesse a quello interno di farlo, ma è più complicato e, penso, con pochi vantaggi.
Sì, ma non è necessario apportare modifiche al container di Discourse se non rimuovere i template ssl/let’s encrypt e magari usare un socket. (Quindi, in realtà, non molto di quell’argomento è di grande aiuto.)
Anche il link “Tickets” che ho aggiunto all’intestazione di Discourse funziona, quando è impostato su vuoto NON su self, poiché /tickets viene quindi trattato come una rotta di Discourse e tenta solo di cambiare la vista react. Vuoto forza un ricaricamento completo della pagina.
Se vuoi risolvere questo problema, sono abbastanza sicuro che un componente tema possa farlo aggiungendo una rotta per /tickets e dicendogli di fare… qualcosa (non sono un esperto di Ember). Inoltre, penso che potresti aggiungere un altro sottodominio al tuo server Discourse (come tickets.mydomain.com) usando DISCOURSE_HOST_ALIASES e poi collegarti a quel dominio, che quindi farebbe un reindirizzamento, in modo che Ember non tenti di prendere la rotta.