Usa Nginx Proxy Manager para gestionar múltiples sitios con Discourse

Aquí está mi versión de esto. Casi me rendí, pero @tophee enlazó a una publicación que yo (!?) escribí y que proporcionó la magia necesaria. Ahora esta es una forma directa de configurar Nginx Proxy Manager para Discourse. Creo que esto lo hace similar a Run other websites on the same machine as Discourse - #396.

Instalar Nginx Proxy Manager siguiendo sus instrucciones en

Eliminar las plantillas de SSL y Let’s Encrypt:

Asegúrate de que estas líneas en tu archivo yml estén comentadas o eliminadas:

## Descomenta estas dos líneas si deseas agregar Lets Encrypt (https)
#- "templates/web.ssl.template.yml"
#- "templates/web.letsencrypt.ssl.template.yml"

Hacer que Discourse use la red npm-default.

Si sigues ciegamente las instrucciones de instalación de Nginx Proxy Manager, se creará una red Docker llamada npm_default.

Agrega este bloque a tu archivo(s) yml. Si tienes contenedores web_only y data separados, necesitarás agregar esto a cada uno de ellos (no probé el contenedor mail-receiver). docker_args no está indentado.

docker_args: |
  --network npm_default

No es necesario exponer ningún puerto

Comenta o elimina estas líneas de tu archivo yml:

# expose:
#  - "80:80"   # http
#  - "443:443" # https

Luego puedes reconstruir tu(s) contenedor(es) y configurar Nginx Proxy Manager de la siguiente manera:

image

Una forma sencilla (pero no necesariamente recomendada) de levantar un segundo sitio de Discourse sería esta:

cd /var/discourse/containers
cp app.yml othersite.yml
# de alguna manera edita, como mínimo, el nombre de host en othersite.yml
./launcher rebuild othersite

Luego agrégalo a NPM como se indicó anteriormente, usando othersite en lugar de app.

Probé esto con un app.yml más dos contenedores estilo web_only y un único contenedor data más un contenedor othersite-redis separado que es una copia del contenedor data que contiene solo las plantillas de redis. (Pero una solución más sencilla sería colocar el redis adicional en el contenedor web_only).

2 Me gusta