Получение ошибки '500' при попытке установки

Привет. Когда я пытаюсь установить через раздел «Рекомендуемое», где указан плагин, получаю ошибку «500». При переходе в предпросмотр в центре страницы отображается следующее:

Есть ли какие-то идеи, почему это происходит?
Я предполагаю, что доступ к сервису действительно запрещён, но… почему?

Похоже, что это не та ссылка. Если вы используете ту, что из первого сообщения, всё должно работать — GitHub - discourse/discourse-custom-header-links · GitHub

Если вы сможете сказать, откуда вы пытались установить эту ссылку, я проверю, можем ли мы её обновить.

Когда я пробую с gitGitHub - discourse/discourse-custom-header-links · GitHub, получаю ту же ошибку «500».

Хм. :thinking: У меня всё работает отлично (как из раздела «Популярное», так и при вставке ссылки https://github.com/discourse/discourse-custom-header-links).

Можете попробовать вместо этого кнопку «Установить этот компонент темы» в первом сообщении?

Я не могу этого сделать, так как, насколько я понимаю, мой сайт, который является тестовой лабораторией, должен быть общедоступным, верно?

Это может объяснить старые ссылки. Актуальна ли она?

Я думаю, что альтернативным вариантом может быть загрузка ZIP-архива и его загрузка таким образом:

Всё вроде работает нормально, sidekiq без явных ошибок или предупреждений.
Некоторые другие компоненты, например баннеры категорий, установлены через popular без проблем.
Версия 3.0.5 / 461966e028
Попробую zip.

Кстати, последняя версия stable — 3.1 (а tests-passed как минимум 3.2.0.beta1-dev), так что, думаю, вам нужно обновиться. :+1:

Не уверен, помогло ли это — возможно, уничтожение и создание контейнера сработало, но теперь после обновления до версии 3.0.6 Discourse может установить CHL через popular.

Теперь я получаю эту ошибку для любой темы и/или компонента.
Они работают? Когда я перехожу в «Предпросмотр», меня перенаправляет на Theme Creator, где появляется всплывающее окно с кнопкой «Просмотреть тему». Если нажать на неё, я попадаю на discourse - Theme Creator.

Как вы установили Discourse? Это стандартная установка? Вы обновились до текущей версии 3.1?

Да. Кстати, должно ли «стандартное» установочное окружение заканчиваться на релиз для разработчиков (у меня отображается 3.2.0.beta1-dev)?

В некоторых логах я вижу:

Started POST "/admin/themes/import" for 10.3.9.144 at 2023-09-09 14:53:29 +0000
Processing by Admin::ThemesController#import as */*
  Parameters: {"remote"=>"https://github.com/discourse/discourse-category-banners"}
  Rendered text template (Duration: 0.0ms | Allocations: 1)
Completed 418  in 2ms (Views: 0.4ms | ActiveRecord: 0.0ms | Allocations: 1273)
Failed to process hijacked response correctly : Timeout::Error : Timeout::Error

Может ли тот факт, что у меня есть внешний для хоста/ноды прокси Nginx, играть здесь роль? (Всё остальное, кажется, работает нормально)
Изнутри контейнера я могу curl-ить эти URI — вид какого-то компонента, который падает с ошибкой 500, — просто ок.
Есть ли способ получить более подробную отладочную информацию для этих частей?
Компоненты, установленные через zip, вроде работают нормально.

Да, ветка по умолчанию — это «тесты пройдены» (см. также Understanding Discourse release channels).
Суффикс «dev» был добавлен недавно.
From Discourse 3.2: adding -dev suffix to beta versions under active development

Возможно, проблема в производительности. Достаточно ли оперативной памяти? Не загружает ли процессор что-то другое?

Думаю, что нет. У меня 4 ядра и 8 ГБ ОЗУ, и это только что установленная лаборатория. В тот самый момент, когда Discourse так отказывает, я могу curl этот же URI внутри контейнера без проблем.

Что, на мой взгляд, было бы здесь полезно, так это узнать, как сделать логи более подробными/отладочными. Если devel читает это, возможно, сможет посоветовать что-то в этом отношении.

tail -f /var/discourse/shared/standalone/log/rails/production.log

или внутри контейнера

/shared/log/rails/production.log

Вспоминая всё это, я предполагаю, что у вас проблема с конфигурацией Docker, из-за которой невозможно получить доступ к GitHub. Однако я не уверен, как это возможно при стандартной установке, так как плагины должны были быть клонированы изнутри контейнера.

Это те логи, которые я уже вставлял ранее — я всё ещё надеюсь, что их можно сделать более подробными и информативными.

Также я отмечал в своём последнем комментарии, что могу успешно выполнить curl для тех самых URI компонента (а это URI GitHub) прямо внутри контейнера. Вы полагаете, что проблема действительно может быть в конфигурации Docker?

Должно быть, было несколько факторов — пересборка контейнера, DNS хоста и т. д. — теперь всё работает, ошибок 500 больше нет.