Voici ma version. J’ai presque abandonné, mais @tophee a lié à un post que j’ai (!?) écrit et qui fournissait la magie nécessaire ! C’est maintenant une méthode simple pour configurer Nginx Proxy Manager pour Discourse. Je pense que cela rend cela similaire à Run other websites on the same machine as Discourse - #396.
Installer Nginx Proxy Manager selon leurs instructions sur
Supprimer les modèles SSL et Let’s Encrypt :
Vérifiez que ces lignes dans votre fichier yml sont commentées ou supprimées :
## Décommentez ces deux lignes si vous souhaitez ajouter Lets Encrypt (https)
#- "templates/web.ssl.template.yml"
#- "templates/web.letsencrypt.ssl.template.yml"
Faire en sorte que Discourse utilise le réseau npm-default.
Si vous suivez aveuglément les instructions d’installation de Nginx Proxy Manager, il créera un réseau docker appelé npm_default.
Ajoutez ce bloc à votre(s) fichier(s) yml. Si vous avez des conteneurs web_only et data séparés, vous devrez ajouter ceci à chacun d’eux (je n’ai pas testé le conteneur mail-receiver). docker_args n’est pas indenté.
docker_args: |
--network npm_default
Pas besoin d’exposer de ports
Commentez ou supprimez ces lignes de votre fichier yml :
# expose:
# - "80:80" # http
# - "443:443" # https
Vous pouvez ensuite reconstruire vos conteneurs et configurer Nginx Proxy Manager comme ceci :

Une manière simple (mais pas nécessairement recommandée) de lancer un deuxième site Discourse serait celle-ci :
cd /var/discourse/containers
cp app.yml othersite.yml
# d'une manière ou d'une autre, éditez au minimum le nom d'hôte dans othersite.yml
./launcher rebuild othersite
Ensuite, ajoutez-le à NPM comme ci-dessus, en utilisant othersite au lieu de app.
J’ai testé cela avec un app.yml plus deux conteneurs de style web_only et un seul conteneur data plus un conteneur othersite-redis séparé qui est une copie du conteneur data contenant uniquement les modèles redis. (Mais une solution plus simple consisterait à mettre le redis supplémentaire dans le conteneur web_only).