Проблема после пересборки Discourse на Droplet Digital Ocean

Мне удалось успешно развернуть Discourse на Droplet от Digital Ocean, но после запуска пересборки возникли проблемы.

Сталкивался ли кто-нибудь с подобной проблемой? Буду признателен за любые разъяснения или решения.

Строки 99–101 имеют неверный уровень отступа, им нужен ещё один. Посмотрите здесь правильный пример:

Готово! Однако у меня по-прежнему возникает та же проблема.

Вы можете попробовать пропустить весь YAML-файл через линтер, чтобы проверить наличие дополнительных проблем.

У меня возникли проблемы с настройкой Discourse:

  1. Файл YAML и синтаксис:

    • Я проверил конфигурацию YAML с помощью YamlLint; он не выявил никаких проблем.
    • Однако из директории Ruby возникла ошибка синтаксиса:
      /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.1.1/lib/pups/config.rb:148:in `block (2 levels) in run_commands': Invalid run command cd (SyntaxError)
      ...
      from /usr/local/bin/pups:25:in `<main>'
      
  2. Пересборка и доступ:

    • Я вернулся к файлу app.yml по умолчанию и внес некоторые изменения. Пересборка прошла успешно.
    • Однако при попытке доступа к сайту я столкнулся с этими ошибками:

  3. Тест в браузере W3M:

    • Для дальнейшего анализа я установил w3m, терминальный браузер, на дроплет.
    • При доступе к localhost возникла ошибка «502 bad gateway»:
  4. Проблемы с SSL

    • Я подумал, что это может быть проблема с SSL, и сейчас обновляю SSL-сертификаты.

Любые советы или помощь будут очень кстати!

Мой форум не работает уже два дня.

Это возможно, если вы достигли лимита запросов. Чем закончился ваш обзор?

Есть ли у вас резервная копия вашего форума, и пробовали ли вы восстановить её на другом сервере? Если бы мой форум был недоступен в течение двух дней, я бы потратил 30 минут на попытку этого сделать.

У меня нет резервной копии моего форума, я очень новичок в настройке Discourse.

Если вы начинаете с нуля, попробуйте установить новую копию на поддомен. Это поможет обойти ограничение Let’s Encrypt, если вы его достигли. :+1:

Наличие Cloudflare перед вашим сайтом — один из способов, из-за которого может не работать Let’s Encrypt. Я рекомендую использовать режим DNS-only, пока вы не убедитесь, что Let’s Encrypt работает корректно.

У меня уже есть пользователи и данные, я не хочу терять всё и начинать с нуля

Спасибо за подсказку! Теперь только DNS! :slightly_smiling_face:

Редактирование: Теперь я также получаю ошибку image,

Похоже, что простое решение — переехать на другой поддомен или подождать неделю, пока Let’s Encrypt выдаст вам сертификат. Более сложный вариант — добавить второй поддомен, указывающий на ваш сервер, и изменить файл app.yml, чтобы запросить сертификат для обоих поддоменов. Настройка Let’s Encrypt с несколькими доменами. Поскольку, судя по всему, ваши проблемы начались из-за ошибок в форматировании YML, такое довольно сложное решение может вам не подойти.

Тогда вам абсолютно необходимо убедиться, что у вас есть резервная копия, и хранить её в надёжном месте.

Спасибо за идею. Я теперь использую другой поддомен, но у меня та же проблема.

Ошибка «502» и «Connection Refused».

Указан ли DNS вашего поддомена на этот IP-адрес сервера? И нет ли у вас других записей A или AAAA для этого поддомена?

Рекомендую запустить ./discourse-setup, который проверит, достигают ли входящие соединения с вашего домена вашего сервера.

Можете ли вы подключиться к серверу по имени хоста с помощью ssh user@subdomain.yoursite.com (или вашего поддомена)?

Да, я убедился, что DNS для поддомена указывает на IP-адрес сервера, и других конфликтующих записей A или AAAA для него нет.

Я выполнил команду, и вот вывод:

Последнее обновление: После выполнения discourse-setup переход по адресу home.techwithanirudh.com приводит к ошибке «502 Bad Gateway». Вот снимок ошибки (см. приложенное изображение).

Безусловно, подключение к серверу по имени хоста через SSH работает безупречно.

Я работал с @techwithanirudh в офлайне, чтобы решить эту проблему… @techwithanirudh не был осведомлён об инструкциях по удалению чат-бота.

Причиной возникновения (на данный момент) ошибки 502 было некорректное запуск контейнера из-за того, что индекс оставался в базе данных, хотя поддерживающий код в библиотеке postgres отсутствовал. Инструкции по удалению удаляют индекс из базы данных, что позволяет безопасно собирать проект без необходимости сборки библиотеки индексов.

Сайт @techwithanirudh теперь работает.