Proxmox VM에 Discourse 포럼을 설치하고 인터넷에 공개하는 가장 좋은 방법은 무엇인가요?

안녕하세요, 이런 서버 관련 것들은 처음입니다.

제발 도와주세요.
Proxmox VM이나 컨테이너에서 Discourse를 설치하고 실행하는 방법을 알려주세요.
아니면 어디서 이미 설정된 이미지를 가져와서 바로 사용할 수 있는 방법이 있을까요?

감사합니다.

@pfaffman 이 작업에 대해 유료 설치 절차를 가지고 있을 수 있습니다. 그 비용은 충분히 가치가 있습니다.

고맙습니다, Alex!

가장 먼저 Discourse 공식 표준 설치를 확인해 보시는 것이 좋겠습니다. 다만 Proxmox가 무엇인지 살펴본 결과, 답은 "그들에게 물어보라"일 것 같습니다. 하지만 검색을 잘 해보시면 Trying to install Discourse in an Ubuntu VM on Proxmox 링크를 찾을 수 있습니다.

Proxmox VM에서 실행된다는 점이 특별하다고 생각하는지 잘 모르겠습니다. VM에 Ubuntu 18을 설치하세요. 포트 80과 443을 인터넷에 노출하세요. 위에서 링크한 Discourse 문서를 따르세요. 이 중 어떤 부분이 도움이 필요하신 건가요?

저는 이 서버 관련 일에 완전히 초보이지만 배우고 있습니다.
지금의 생각은: → 어떤 하이퍼바이저를 사용하든 차이가 없습니다. 감사합니다.

가이드에는
Docker 지원이 있는 64비트 Linux 서버에 SSH 접근 권한(로컬 IP와 PuTTY로 이미 확보했습니다)이 있어야 한다고 나와 있습니다.
(설치를 시작하기 전에 Docker가 설치되어서는 안 된다는 뜻인가요?)

VM으로 만들어야 하나요, 아니면 CT도 가능한가요?
무엇을 추천하시나요?

어떤 Linux를 추천하시나요?

나머지는 가이드에서 명확해 보이지만, 지켜보겠습니다.

설치되어 있거나 없거나 둘 다 가능합니다. 설치되어 있지 않다면 설치 스크립트가 자동으로 설치합니다.

Docker가 CT에서 제대로 작동할지 확실하지 않습니다. 컨테이너 안에 컨테이너를 넣는 셈이 되어 문제가 발생할 수 있습니다. VM을 사용하는 것이 좋습니다.

가이드에는 이렇게 나와 있습니다:

현재 지원되는 Ubuntu Server LTS 릴리스 기본값이 잘 작동합니다

Ubuntu에 대해 특별히 반대하는 이유가 없다면, Ubuntu를 사용하시길 권합니다(제 Discourse 사이트에서도 이를 사용하고 있습니다). 현재 LTS 릴리스는 20.04입니다. 이전 게시물에서 "Ubuntu 18"이라고 한 이유는 제가 현재 이를 사용하고 있기 때문이며(아직 3년 더 지원되므로 서두를 이유가 없습니다), 하지만 신규 설치의 경우 최신 버전을 사용하는 것이 더 나을 것입니다.

그럼 VM이 내 네트워크에 IP 주소로 연결되는 건가요?
Nginx 리버스 프록시(Reverse Proxy)가 라우터에서 Discourse 도메인을 VM의 IP 80 포트로 포워딩하는 건가요?
설정은 어떻게 해야 하나요?

이 연결이 정상적으로 작동하려면 설치 전에 Let’s Encrypt 인증서를 발급받아야 한다고 생각합니다.

말씀하신 대로인 것 같습니다. 또한 Discourse 설치에서 내장된 Let’s Encrypt를 비활성화해야 합니다. 그렇게 할 수 있다는 것은 알지만, 제가 직접 해볼 일이 별로 없었습니다. 하지만 여기서 검색해 보면 관련 설명을 찾을 수 있을 것입니다.

스크립트를 수정하는 것이 가능할지 잘 모르겠습니다. (초보자에게는 위험해 보입니다.)

설치를 위해 80번 포트와 443번 포트를 직접 VM으로 포워딩하고, 완료되면 다시 80번과 443번 포트를 RevManager로 변경하는 방식은 어떨까요?

아니면 80번 포트만 변경하는 건가요?

또한, 이 상황에서는 특히 이미 인증서가 있는 경우, 스크립트에 "인증서 가져오기 (Y/N)"라는 질문을 간단히 추가하는 것이 좋을 것 같습니다. (초보자인 저는 그것이 얼마나 복잡한지 정확히 말할 수 없습니다.)

어떻게 생각하시나요?
완벽할까요?

그렇게 해야 합니다. Discourse-setup은 현재 설정에 적용할 수 없습니다. 꽤 어려운 길을 선택하신 셈이죠. 다른 웹 서버를 사용하여 설치하는 방법에 대한 howto 가이드가 있습니다.

먼저 더 간단한 설치를 시도해 보시는 것을 추천합니다.

감사합니다
스크립트를 어떻게 수정해야 하는지 알려주실 수 있나요?
제가 직접 시도해볼게요.
이런 것들을 배워야 하거든요.

이 제안은 어떨까요?

아니면 이쪽이 완벽할 것 같습니다!

이렇게 하면 스크립트 기반 설치가 문제없이 완료될 것입니다. 문제는 이제 Discourse 설치 환경이 자체적으로 TLS 인증서를 관리하려 한다는 점인데, 80번과 443번 포트를 해당 VM으로 포워딩을 중단하게 되면 이를 수행할 수 없게 됩니다. 해야 할 일은 Discourse가 인증서를 발급받거나 TLS를 처리하려는 시도를 하지 않도록 설정하는 것입니다. 그리고 app.yml 파일에서 web.ssl.template.yml과 web.letsencrypt.ssl.template.yml 줄을 주석 처리하면 그렇게 할 수 있다고 생각합니다(테스트는 해보지 않았지만). Run other websites on the same machine as Discourse 링크에도 관련 정보가 있으며, 이 의견과 일치하는 것 같습니다.

그렇게 할 실질적인 이유는 없습니다. 새 인증서를 발급받는 것은 매우 간단하기 때문입니다(현재처럼 과도하게 복잡하게 만들지 않는다면요). 기존 인증서가 있다는 사실은 사실상 중요하지 않습니다. 의도한 설정에서 복잡성을 만드는 요인은 이미 인증서를 가지고 있다는 것이 아니라, 이 구성 방식이 Discourse가 자체 인증서를 처리하지 못하게 한다는 점입니다.

감사합니다. 시도해 보겠습니다.
의미하는 바는 다음과 같습니다:
라우터에서 포트 80과 443을 VM의 IP로 포워딩합니다.
그 후 일반 스크립트로 설치할 수 있습니다.
설치가 완료되면 파일을 편집하는 것이죠?

기타 요구 사항

Discourse의 호스트명은 무엇입니까? [discourse.example.com]:
→ No-IP의 NoIp.domain.com

관리자 계정의 이메일 주소는? [ me@example.com , you@example.com]:
→ 여기에도 1und1 (IONOS)의 이메일 주소인
me@MY.Domain.com을 사용할 수 있나요? NoIp.domain.com과 다르게요.

SMTP 서버 주소? [smtp.example.com]: → IONOS에서
SMTP 포트? [587]: → IONOS에서
SMTP 사용자 이름? [user@example.com]: → 이메일 주소입니다
SMTP 비밀번호? [pa$word]: → OK
Let’s Encrypt 계정 이메일? (ENTER를 누르면 건너뜁니다) [me@example.com]: No-Ip 계정의 이메일 하지만 비밀번호는 없이?

아니요, 제 말은 설치가 실행되기 전에 파일을 편집하라는 것입니다. 위에서 언급했듯이 discourse-setup 스크립트를 사용할 수 없습니다.

도메인과 무관하게 원하는 이메일 주소를 자유롭게 사용할 수 있습니다.

이것이 공개 포럼이 될 계획이라면 해당 서버가 대량 이메일 전송을 허용하는지 확인하십시오.

비밀번호가 왜 필요하나요? 그 이메일의 유일한 용도는 Let’s Encrypt가 인증서 만료 예정을 알려주기 위한 것입니다(이것은 실제로는 거의 발생하지 않아야 합니다). 하지만 컨테이너는 애초에 인증서를 발급받아서는 안 됩니다.

감사합니다.
모든 정보를 수집한 후에는 스크립트를 사용할 수 있을 것 같아요.
나중에 설정할 구성 요약을 작성할게요.

진행 상황을 기대하고 있습니다.

이 스크립트와 함께 작동해야 합니다.
임대 VPS 대신 네트워크 내 VM을 사용합니다.

Domain.xx를 Fritz!Domain으로 CNAME 설정
Fritz!Box에서 포트 80 및 443을 Reverse Manager의 IP로 포워딩
Reverse Manager에서
Domain.xx의 포트 80 및 443을 VM IP 2의 IP로 포워딩

Domain.xx에는 인증서가 없습니다.

VM IP 2에는 새 Ubuntu만 설치되어 있습니다.
테스트 방법은 어떻게 되나요?
어떻게 생각하시나요?