Installation multisite... dans des sous-répertoires ?

Bonjour !

Je configure Discourse dans un environnement où j’ai besoin de plusieurs forums distincts, et où l’ensemble des forums doit pouvoir évoluer au fil du temps. (Oui, j’ai bel et bien besoin de plusieurs forums ; ils servent des communautés différentes.)

La réponse semble être une installation multi-sites, et j’ai réussi à la faire fonctionner : j’ai actuellement une configuration fonctionnelle pour le multi-sites, avec des conteneurs de données et de web séparés, conformément à Multisite configuration with Docker. (J’ai deux noms d’hôte, $hostname.$domain et discourse.$domain, ce qui a fonctionné lors de mes tests jusqu’à présent.)

Cependant, il y a un problème : je n’ai pas un contrôle facile sur le DNS, je ne peux donc pas ajouter facilement plusieurs noms d’hôte « réels ». Toute la documentation que j’ai consultée jusqu’ici suggère que cela est nécessaire pour le multi-sites, et une rapide exploration du mécanisme par lequel la prise en charge du multi-sites est implémentée semble confirmer ce point.

Ma configuration idéale consisterait à placer chaque forum dans son propre sous-répertoire : discourse.$domain/forum1, …, discourse.$domain/forumN ; et, dans l’idéal, à pouvoir servir ces forums depuis un seul et même conteneur web, comme le font les mécanismes de multi-sites existants.

Empiriquement, je parviens à déplacer le forum « principal » dans un sous-répertoire, en le plaçant dans discourse.$domain/forum, conformément à Serve Discourse from a subfolder (path prefix) instead of a subdomain — mais cela semble lier le conteneur web à ce sous-répertoire précis et, selon mes expériences, perturbe gravement le multi-sites.

J’ai également tenté des astuces comme la manipulation de l’en-tête Host: entrant dans le conteneur web, en fonction du chemin au niveau du serveur web frontal de l’hôte, sans succès — j’obtiens un étrange mélange de plusieurs forums.

Donc : existe-t-il une méthode élégante pour y parvenir ? Puis-je me contenter d’un seul conteneur web, comme dans le cas du multi-sites ? Ou devrai-je utiliser un deuxième conteneur web ? Cela se comportera-t-il mal étant donné que ces deux conteneurs seraient tous deux pointés vers le même conteneur de données sans connaissance l’un de l’autre ? Ou suis-je complètement dans une impasse ?

1 « J'aime »

Pour le moment, nous ne prenons pas en charge simultanément les sites multiples et les sous-dossiers. C’est une fonctionnalité que nous pourrions envisager si un client en fait la demande à l’avenir, mais nous estimons que son développement nécessiterait un effort considérable.

6 « J'aime »

Si tous pointent vers le même domaine de base, mon astuce consisterait à utiliser *.forum.example.com. De cette façon, une seule entrée DNS suffirait.

3 « J'aime »

Merci à tous les deux ! Malheureusement, je ne pense pas pouvoir mettre en place un sous-domaine étoilé pour le moment, donc je vais probablement opter pour une configuration sans multi-site et avec plusieurs conteneurs de frontend web. (Si j’avais réalisé cela plus tôt, j’aurais insisté pour obtenir un sous-domaine étoilé.)

Je serais vraiment ravi de voir un support des multi-sites ou des sous-dossiers — dans l’éventualité (peu probable) où je me retrouverais avec un peu de temps, je pourrais peut-être jeter un coup d’œil à cela.

1 « J'aime »