Помощь в настройке 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", но в консоли ничего не выводится.

/EDIT: Извините, я не упомянул, что это не активировало и не создало ничего. При попытке включить Discourse ID у меня по-прежнему появляется то же сообщение об ошибке.

Вам нужно сделать следующее:

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

Ох. Похоже, что именно это и делает rails r. Извините, я об этом не знал. Но судя по выводу, который я только что получил, маловероятно, что в консоли Rails, по крайней мере, можно получить пустой вывод.

Да. И я пробовал rails r, и он не выдаёт никакого вывода, так что вам действительно нужно запустить rails console, как указано в инструкции.

Вам нужно зайти через консоль, как отметил Паффман. 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\"}"

Как я уже сказал, у меня Discourse стоит за веб-сервером Apache. Для проверки сертификата Letsencrypt у меня есть исключение для запросов к директории .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:

Я создал PR, чтобы гарантировать логирование всех ошибок, которые могут возникнуть за кулисами при включении discourse-id, а также обновил сообщение об ошибке, отображаемое в интерфейсе настроек сайта, сделав его более описательным.