Discourse ID 설정 방법 도움 요청

네, 죄송합니다. 여기의 오류 메시지는 개선이 필요합니다. 이 오류 메시지를 보게 되면 자동 등록 과정에서 무언가 실패했다는 뜻입니다. 코어에서 해당 오류가 무엇이었는지 사용자에게 표시하도록 수정해야 합니다.

ID를 활성화하려고 다시 시도한 후 인스턴스의 /logs로 이동하면, 거기서 보고된 오류가 보이나요?

아니요, 아무것도 없습니다. 방금 시도해 보았는데요. 마지막 로그는 일요일 것입니다.

인스턴스의 Rails 콘솔을 열고 다음 명령어를 실행해 보시겠어요?

DiscourseId::Register.call

실행이 실패할 가능성이 높지만, 더 유용한 오류 메시지를 확인할 수 있을 것입니다.

구체적으로 어떤 명령어를 말씀하시는 건가요?

rake DiscourseId::Register.call을 시도해 보았습니다.

root@prometheus-discourse-concarne:/var/www/discourse# rake DiscourseId::Register.call
rake aborted!
Don't know how to build task 'DiscourseId::Register.call' (See the list of available tasks with `rake --tasks`)
Did you mean?  discourse_calendar:install:migrations
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
(See full trace by running task with --trace)

그리고 rails r "DiscourseId::Register.call"도 시도해 보았는데, 콘솔에 아무 반응도 없습니다.

/수정: 죄송합니다. 언급하지 못했는데, 활성화되거나 생성된 것이 아무것도 없습니다. Discourse ID를 활성화하려고 하면 여전히 동일한 오류 메시지가 표시됩니다.

아래와 같이 실행해야 합니다:

./launcher enter app
rails c
DiscourseId::Register.call

아, rails r이 바로 그 동작을 수행하는 명령이군요. 죄송합니다. 그 명령을 몰랐습니다. 하지만 방금 받은 출력을 보면, 적어도 rails 콘솔에서는 출력이 전혀 없다는 것은 불가능해 보입니다.

네. 그리고 rails r을 실행해 보았는데 출력이 나오지 않으니, 지시받은 대로 rails 콘솔을 실행해야 합니다.

Pfaffman이 지적했듯이, 콘솔을 통해 실행해야 합니다. DiscourseId::Register.call은 rake 태스크가 아닙니다.

@pfaffman님과 @pmusaraj님 감사합니다. 이제 작동합니다. 그리고 여기서 무슨 일이 일어나고 있는지(모든 인스턴스가 동일한 구성을 사용하므로) 아이디어를 떠올렸습니다…

"Registration failed: 400\nError: {\"errors\":[\"You supplied invalid parameters to the request: Domain validation failed: Failed to fetch https://forum.concarne.org/.well-known/discourse-id-challenge with error code: 404\"],\"error_type\":\"invalid_parameters\"}"

말씀드렸듯이 저는 Apache 웹서버 뒤에 Discourse를 실행하고 있습니다. Let’s Encrypt 인증서 챌린지를 위해 .well-known 디렉토리에 대한 쿼리에 예외를 설정해 두었습니다.

잠시만요, 그 부분을 수정해 보겠습니다.

네, 바로 그거였어요!

지금까지는 ProxyPass /.well-known !을 사용했는데, 이를 ProxyPass /.well-known/acme-challenge !로 변경했습니다.

셀프호스팅 Discourse 인스턴스를 설정하는 방법(현재 찾을 수 없는데…)에 이 내용이 추가되어야 하지 않을까요?

RequestHeader set X-Forwarded-Proto "https"
ProxyPreserveHost On
ProxyRequests Off
ProxyPass /.well-known/acme-challenge !
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/

이렇게 인내심을 갖고 도와주셔서 감사합니다. :slight_smile:

먼저, @Roi 님, 최전선에서 discourse-id 를 시도해 주셔서 감사합니다. :+1:

두 번째로, 이렇게 번거로움을 겪으셨다니 죄송합니다. 관리자 경험은 우리가 원하는 수준에 훨씬 못 미칩니다. :frowning:

discourse-id 를 활성화할 때 _백엔드_에서 발생할 수 있는 모든 오류가 기록되도록 PR을 생성했으며, 사이트 설정 UI에 표시되는 오류 메시지도 더 자세한 내용으로 업데이트했습니다.