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:

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