안녕하세요 여러분! ![]()
다들 잘 지내고 계신가요? 디스커스에 대해 질문이 하나 있습니다. 디스커스를 자체 호스팅(self-host)하는 것이 가능한가요? 이 플랫폼에 정말 관심이 많고, 혹시 여기에서 직접 경험해 보신 분이 계신지 궁금합니다. 특별히 유의해야 할 요구 사항이나 팁이 있을까요?
미리 도움 주셔서 감사합니다! ![]()
안녕하세요 여러분! ![]()
다들 잘 지내고 계신가요? 디스커스에 대해 질문이 하나 있습니다. 디스커스를 자체 호스팅(self-host)하는 것이 가능한가요? 이 플랫폼에 정말 관심이 많고, 혹시 여기에서 직접 경험해 보신 분이 계신지 궁금합니다. 특별히 유의해야 할 요구 사항이나 팁이 있을까요?
미리 도움 주셔서 감사합니다! ![]()
답변해 주셔서 정말 감사합니다!
저희 협회에서는 바로 실행해서 사용할 수 있는 독립적인 ‘docker-compose’ 파일을 갖고 싶습니다.
그것이 가능할까요?
알 수 없는 수천 개의 스크립트를 백그라운드에서 실행하는 것은 선호하지 않습니다.
네, 가능은 하지만 직접 작성하고 유지보수해야 합니다.
최근 누군가가 개발용으로 게시한 Dockerfile이 있으니 시작점으로 활용할 수 있을 것입니다.
Discourse는 오픈소스입니다. 런처 스크립트와 템플릿을 읽어보지 않겠습니까? (이것은 또한 Compose 설정에도 도움이 될 것입니다.)
이 기능은 공식적으로 지원되지 않지만, 메인라인 Discourse를 따라잡으려는 시도가 있습니다. 여기서 docker compose로 검색하거나, 다음 두 변형 버전을 방문할 수 있습니다:
다만, Discourse를 여러 버전으로 유지 관리하는 것은 어려울 수 있습니다. 하지만 IndieHosters는 몇 년 동안 이 작업을 수행해 왔습니다.
두 프로젝트 모두 원래의 Discourse/base Docker 이미지를 사용하지만, @sam의 pups가 discourse-docker에 대해 수행하는 것과 같은 방식으로 설치를 맞춤화하는지는 확신할 수 없습니다.
답변 주셔서 감사합니다!
discourse/base 이미지만 설치했는데 로그 없이 컨테이너가 종료되었습니다.

이유를 아시는 분 계신가요?
기본 이미지는 그 자체로 아무 일도 하지 않습니다. 그 안에서 Discourse를 컴파일한 후 실행해야 합니다. 그리고 이는 먼저 이미지 외부에서 ./launcher 스크립트를 실행하는 방식으로 수행됩니다. 따라서 먼저 공식적인 방법으로 설치해 보고, 그 다음 옵션들을 고려해 보시는 것이 좋습니다.
Discourse 설치 절차는 매우 일반적이지는 않지만, 수년간 이 방식을 사용해 온 저로서는 한 가지 이유로 인해 이 접근법을 매우 좋아합니다. 그것은 관리자로서 일정 기간을 거치면 비로소 그 가치를 깨닫게 될 것입니다. 바로 소스 코드의 각 커밋 이후에도 업그레이드가 가능하다는 점입니다. 정말 놀라운 일입니다. #contribute:bug를 보고하면, 1시간 만에 팀이나 커뮤니티에서 해결될 수도 있고, 자동화된 테스트가 실행된 후 커밋이 병합되어 사용 가능해집니다. 그리고 바로 업그레이드를 할 수 있습니다. 최신 소스 코드로 Discourse를 다시 컴파일하기 때문입니다.
따라서 특정 버전이 컴파일된 이미지는 존재하지 않습니다. “빈” 이미지를 받아서 원하는 지점의 버전과 필요한 플러그인 조합으로 컴파일해야 합니다. 그런데도 여전히 잘 작동합니다!
이러한 유연함은 다른 어디에서도 경험할 수 없습니다.
따라서 확실하지는 않지만, docker compose 파일을 작성하려면 compose 파일 내부에서 ./launcher 스크립트의 절차를 재현해야 합니다. 이렇게 하면 다른 이미지로 컴파일한 후 이를 바로 플러그인처럼 사용할 수 있습니다. 하지만 업그레이드가 필요할 때 내장된 절차를 사용할 수는 없습니다. 직접 새로운 버전을 구성해야 합니다.
도와주셔서 감사합니다, 여러분. 저 같은 초보자가 디스코스를 쉽게 사용할 수 있게 해주셔서 정말 감사합니다!
네, 하지만 제 클럽에 디스코스를 공개하기 전에 로컬호스트에서 디스코스를 실행하고 몇 가지 테스트를 해보고 싶었습니다. 이렇게 하면 관리자 인터페이스와 디스코스의 커맨드 라인을 더 잘 익힐 수 있을 것 같아서요. 오류가 발생하면 제가 직접 수정할 수 있도록 하고 싶습니다. ‘지원되는’ 버전을 사용하려면 DNS 항목, 포트 443과 80이 필요하지만, 제 경우에는 불필요한 것 같습니다 — 적어도 그렇게 생각하고 있습니다.
로컬호스트에서 실행하는 방법을 아는 분이 계신가요?
Docker를 설치하고 이대로만 하면 됩니다.
아니면 그건가요. 다만, Max가 프로덕션 환경에서의 동작 방식을 파악하는 데 관심이 있다는 점은 이해합니다. 하지만 호스팅 환경을 구매하기 전에 로컬에서 테스트를 해보고 싶다면, Docker 설정이 더 적합할 것입니다. 실제로 버그를 수정하려면 개발용 설정이 적절한 선택입니다.
여러분의 지원에 진심으로 감사드립니다!
도커를 이용한 “일반” 설치 방식으로 작동하도록 해결했습니다.