제 버전은 다음과 같습니다. 거의 포기할 뻔했지만, @tophee 님이 제가 (!?) 작성한 포스트에 링크를 걸어주셨고, 그 덕분에 필요한 마법을 풀 수 있었습니다. 이제 Nginx Proxy Manager를 Discourse에 설정하는 것이 매우 간단해졌습니다. 이는 Run other websites on the same machine as Discourse - #396 와 유사하다고 생각합니다.
해당 지침에 따라 Nginx Proxy Manager 설치
SSL 및 Let’s Encrypt 템플릿 제거:
yml 파일에서 다음 줄들이 주석 처리되어 있거나 삭제되었는지 확인하세요:
## Lets Encrypt(https)를 추가하려면 다음 두 줄의 주석을 해제하세요
#- "templates/web.ssl.template.yml"
#- "templates/web.letsencrypt.ssl.template.yml"
Discourse가 npm-default 네트워크를 사용하도록 설정
Nginx Proxy Manager 설치 지침을 그대로 따를 경우, npm_default라는 이름의 Docker 네트워크가 생성됩니다.
이 스탠스를 yml 파일에 추가하세요. web_only와 data 컨테이너가 분리되어 있다면 각각에 이 내용을 추가해야 합니다. (mail-receiver 컨테이너는 테스트하지 않았습니다.) docker_args는 들여쓰지 않습니다.
docker_args: |
--network npm_default
포트 노출 불필요
yml 파일에서 다음 줄들을 주석 처리하거나 제거하세요:
# expose:
# - "80:80" # http
# - "443:443" # https
이제 컨테이너를 다시 빌드하고 Nginx Proxy Manager를 다음과 같이 설정할 수 있습니다:

두 번째 Discourse 사이트를 시작하는 간단하지만(반드시 권장되지는 않는) 방법은 다음과 같습니다:
cd /var/discourse/containers
cp app.yml othersite.yml
# somehow edit, at a minimum, the hostname in othersite.yml
./launcher rebuild othersite
그런 다음 위와 같이 NPM에 추가하되, app 대신 othersite를 사용하세요.
app.yml과 두 개의 web_only 스타일 컨테이너, 그리고 단일 data 컨테이너, 그리고 data 컨테이너의 복사본으로 redis 템플릿만 포함하는 별도의 othersite-redis 컨테이너로 이 방법을 테스트했습니다. (하지만 더 쉬운 해결책은 추가적인 redis를 web_only 컨테이너에 넣는 것입니다.)