Docker 이미지를 사용하여 자체 호스팅하는 Discourse의 프로덕션 인스턴스에서 코드를 수정하지 않고 상세 로깅(verbose logging)을 활성화할 수 있나요?
여기서 많은 제안들을 다시 읽어 보았지만, 어떤 것도 작동하지 않았거나 추가 정보를 얻지 못했습니다.
그 아픔을 잘 이해합니다 — 물론 제가 직접 겪은 건 아니지만요!
Chatbot 플러그인에서는 상세한 Info 로그를 (설정 옵션을 통해) 프로덕션 환경에서 Warn으로 전환하여 확인할 수 있습니다. AI 문제의 가시성을 확보하는 데 꽤 중요합니다.
… 여러분의 게시물을 확인했습니다 … 제 문제는 SAML 플러그인과 관련이 있으며, SAML과 인증 프로토콜에 대해 잘 알고 있지만 로그 없이는 아무것도 할 수 없습니다. 플러그인이 아예 작동하지 않는 것처럼 보입니다 (플러그인 매개변수에 따라 이상적인 SAML 응답을 생성하는 시도도 해보았지만요). Discourse에는 많은 잠재력이 있다고 보지만, 설치, 구성, 특히 로깅은 매우 이상합니다 (같은 플랫폼을 사용하는 GitLab과 비교할 때요).
제가 겪고 있는 문제를 해결하려면 Ruby 환경을 빨리 배워야 할 것 같습니다 ![]()
SAML 플러그인 문제를 해결했습니다
… 이것은 omniauth나 ruby-saml gem/라이브러리의 문제가 아니라 플러그인 자체의 문제입니다. (제가 무엇을 했는지 문서화를 시도할 것입니다. 기본적으로 불충분하고 오해의 소지가 있는 문서화와, 적절한 디버깅 없이 이루어진 일부 기이한 프로그래밍 솔루션, 그리고 일부 주석 추가가 원인입니다. 하지만 이슈 시스템이 없으면 이해하기 어려운 방식입니다.)
주제를 벗어나지 않기 위해, (제 제한적인 Discourse와 Ruby 지식을 바탕으로) 다음과 같이 진행할 것을 제안합니다:
- 컨테이너 파일(containers/app.yml)을 수동으로 편집합니다.
- 힌트: 컨테이너에 다른 이름을 사용하고 싶다면, containers 디렉터리에서 파일 이름을 변경하고, 해당 경로의 모든 명령을 실행하여 앱을 <your_name>으로 변경할 수 있습니다. (다른 방법으로 가능할 수도 있지만, 조사할 시간이 없었습니다.)
- GitHub에서 플러그인을 자신의 공간으로 포크하여 코드를 조작할 수 있습니다. 컨테이너 구성 파일에서 다른 어떤 플러그인과 동일한 방식으로 항상 호출할 수 있습니다.
- 많은 곳에
File.write('/var/www/discourse/log/production.log', 'Some text', mode: 'a')를 단순히 추가할 수 있으며, 이는 코드 해석이 해당 부분에 도달할 때마다 로그 파일에 기록됩니다. - Discourse를 개선하고 싶다면 GitHub에서 Discourse 프로젝트를 포크하고 자신의 위치에서 클론할 수도 있습니다.
그렇게 하면 될 것 같습니다!
하지만 Rails를 계속 사용하려면 이 옵션이 더 나은 것 같습니다:
(즉, 누군가가 프로덕션용 정보 수준 옵션을 제공해 주기를 기다리는 동안까지는요!)
추가 옵션을 제공해 주셔서 감사합니다 … 제 Ruby/Rails 지식이 그런 일을 하기에 충분하지 않네요
… 여러분의 지식 수준에 도달하려면 더 많이 배워야 할 것 같습니다. SAML 플러그인을 이런 방식으로 개선해 보려고 합니다(가까운 시일 내에 hopefully), 하지만 지금은 디스코스가 하나의 구성 요소인 파일럿 프로젝트 중 하나에 다른 소프트웨어 설치를 마무리해야 합니다.