J’essaie de confirmer l’architecture correcte pour servir une application personnalisée à un sous-chemin tout en gardant Discourse à la racine (/), sans modifier les internes de Discourse.
Ce que je veux (objectif final)
https://mondomaine.com/ → Discourse
https://mondomaine.com/tickets → Système de tickets personnalisé (Go + Gin)
Exigences :
Discourse doit rester à / et l’application personnalisée doit vivre à /tickets
Même domaine
Aucun plugin Discourse
Environnement actuel
VPS OVH (Ubuntu) Discourse fonctionnant dans Docker (/var/discourse)
Application Go personnalisée fonctionnant sur le même serveur à 127.0.0.1:8080
Nginx externe installé sur l’hôte (pas à l’intérieur du conteneur)
Je n’essaie PAS d’exécuter Discourse dans un sous-dossier comme /forum. Ah, et avant que quelqu’un ne le demande, oui, j’ai essayé d’utiliser le plugin de tickets Discourse - il ne fonctionne pas comme je le souhaite.
Vous pouvez le faire facilement avec nginx, bien que ce ne soit pas recommandé, je ne suis pas au courant que discourse utilise la route /tickets pour quoi que ce soit.
Je pense que ce sont probablement vos meilleures instructions, cependant. Vous suivrez ces instructions, mais en quelque sorte à l’envers. Vous ferez en sorte que votre proxy inverse externe serve / à Discourse et /tickets à votre application.
Je pense que le nginx externe est la manière la plus simple de le faire. Il serait possible de créer un modèle qui permettrait à celui en interne de le faire, mais c’est plus compliqué et, je pense, pour peu de gain.
Oui, mais vous n’avez pas besoin d’apporter de modifications au conteneur Discourse autres que de supprimer les modèles ssl/let’s encrypt et peut-être d’utiliser une socket. (Donc, en réalité, peu de choses dans ce sujet sont vraiment utiles.)
Le lien « Tickets » que j’ai ajouté à l’en-tête de Discourse fonctionne également, lorsqu’il est défini sur vide et NON sur lui-même, car /tickets est alors traité comme une route Discourse et tente simplement de changer la vue react. Le vide force un rechargement complet de la page.
Si vous souhaitez corriger cela, je suis presque certain qu’un composant de thème le fera en ajoutant une route pour /tickets et en lui disant de faire… quelque chose (je ne suis pas très doué avec Ember). De plus, je pense que vous pourriez ajouter un autre sous-domaine à votre serveur Discourse (comme tickets.mondomaine.com) en utilisant DISCOURSE_HOST_ALIASES et ensuite lier à ce domaine, ce qui effectuerait une redirection, afin qu’Ember n’essaie pas de s’approprier la route.