Utilisez Nginx Proxy Manager pour gérer plusieurs sites avec Discourse

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 :

image

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).

2 « J'aime »