Passo 1 - Instalar o Docker no Ubuntu 16.04
Passo 2 - Instalar e configurar o fórum Discourse
Passo 3 - Gerar SSL com Let’s Encrypt no Ubuntu 16.04
Passo 4 - Instalar e configurar o Nginx como proxy reverso para o container do Discourse
Passo 5 - Instalador web do Discourse
Passo 6 - Configurações adicionais do Discourse
A maneira como eu faço isso, já que gosto de simplicidade, é o “método de um contêiner por site web”, onde cada contêiner usa um template web.socketed.template.yml, para que cada aplicativo (contêiner) funcione com o proxy reverso do nginx.
Algo assim, aproximadamente:
Ou, você pode criar todos os seus contêineres primeiro e fazer toda a parte do nginx SSL (LetsEncrypt) por último, se estiver se sentindo sortudo.
Essa abordagem ocupará mais espaço em disco e memória, mas você terá a vantagem de cada site web rodando em seu próprio contêiner isolado.
Acho que esse método não é “oficialmente suportado”, mas, na minha opinião, é fácil o suficiente de configurar e dar suporte a si mesmo. Configurar o contêiner com socket é simples porque você tem um template “oficial” do Discourse para isso; e configurar o proxy reverso do nginx para um socket de domínio Unix também é bem documentado na internet (e há alguns exemplos do Discourse também).