Не могу подключиться — новая установка на DO

Я только что предпринял две попытки установить Discourse на Digital Ocean.

Попытка 1:

В первый раз я использовал официальную инструкцию с GitHub, применив образ Ubuntu 22.04 LTS от DO и дроплет с 1 ГБ ОЗУ.

Я использовал поддомен существующего домена и учётные данные существующей учётной записи Mailjet, которая успешно работает уже несколько лет.

Я не знал, что нужно установить Docker, поэтому, когда я ввёл

discourse-setup

установщик выдал сообщение:

Failed to find docker or docker.io on your PATH.

и я нажал Enter, чтобы продолжить установку Docker.

После этого установка, казалось, прошла успешно.

Она завершилась сообщением:

117:M 25 May 2023 01:14:46.500 * DB saved on disk
117:M 25 May 2023 01:14:46.501 # Redis is now ready to exit, bye bye...

и несколькими дополнительными строками.

Я не был уверен, как быстро обновится DNS, поэтому добавил IP-адрес DO в свой файл /etc/hosts.

Я попытался открыть поддомен в браузере — получил сообщение «Не удалось подключиться к серверу».

Я также попытался открыть IP-адрес — снова «Не удалось подключиться к серверу».

Тогда я предпринял вторую попытку.

Попытка 2:
Я последовал инструкциям с сайта linuxhandbook и использовал установку в один клик из раздела Marketplace, что дало мне дроплет с 2 ГБ ОЗУ.

После входа через SSH установщик запустился автоматически и, казалось, прошёл без ошибок. В конце он выдал сообщение:

Discourse is now installed. Log into your admin account in a browser to continue configuring Discourse.

Но снова, когда я попытался открыть поддомен или новый IP-адрес (для второго дроплета) в браузере, подключение не устанавливалось (я пробовал Firefox и Safari).

Выполнение команды

./launcher start app

показывает:

x86_64 arch detected.
cadd91ccd0cd
Nothing to do, your container has already started!

Команда discourse-doctor показывает (среди прочего):

Discourse container app is running

и выдаёт правильное значение:

DISCOURSE_HOSTNAME

Что можно попробовать сделать, чтобы эта установка (любая из двух или обе) начала отвечать браузеру?

(Второй IP-адрес всё ещё есть в моём файле hosts, но он также уже обновился согласно проверкам DNS, поэтому, кажется, должно работать как через поддомен, так и просто через IP-адрес.)

Спасибо за любую помощь.

Ещё несколько деталей:

Насколько я знаю, у меня нет какой-либо панели управления для любого из дроплетов (ни Plesk, ни cPanel).

Обычно в типичной настройке общего хостинга я бы зашёл в папку public_html и создал простой тестовый файл, например testfile.html, чтобы проверить, можно ли хотя бы загрузить обычный HTML-файл, но я не знаю, где это сделать (или можно ли вообще это сделать) на дроплете DO.

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

Обратите внимание, что установка Discourse в один клик через Digital Ocean является unsupported-install, что означает меньшую вероятность получения поддержки здесь. :slight_smile:

Я рекомендую начать заново и использовать стандартную установку.

  1. Создайте дроплет.

  2. Войдите через SSH.

  3. Выполните ping yourdomain.com и проверьте, разрешается ли он в IP-адрес вашего сервера (./discourse-setup в любом случае покажет предупреждение, если это не так).

    • Если нет, подождите, пока это произойдет.
  4. Когда это произойдет, установите Discourse, следуя официальному руководству: discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub

Пожалуйста, отчитайтесь о результатах :slight_smile:

Конечно, я не эксперт, и, возможно, кто-то сможет точно определить вашу текущую проблему.

В этом нет необходимости, и это не поможет. Как уже упоминалось выше, утилита discourse-setup проведёт тест, чтобы убедиться, что сервер может связаться сам с собой, используя имя хоста. Если вы отредактировали файл /etc/hosts до запуска discourse-setup, значит, DNS не работал, вы не получили сертификат от Let’s Encrypt, и именно поэтому веб-сервер не запускается. Если вы будете пытаться слишком часто, ваш IP попадёт в список ограниченных по частоте запросов, и вам придётся ждать неделю или использовать другое поддоменное имя.

Вы можете посмотреть файл /var/discourse/shared/logs/var-log/nginx/access.log (или что-то очень похожее), чтобы увидеть проблему.

Самый простой вариант сейчас — использовать новое поддоменное имя, настроить DNS, дождаться его обновления (существуют инструменты, которые покажут статус), а затем запустить discourse-setup.

Спасибо вам обоим за ответы.

Я создал новую поддомен и новый droplet и использовал их для третьей попытки, и теперь всё работает.

Когда я запускал ./discourse-setup во время первой попытки, в выводе не было никаких указаний на проблемы с доменом или SSL; возможно, об ошибке сообщалось, но я просто пропустил это, но если так, было бы неплохо сделать такие уведомления об ошибках более заметными.

Я рад, что мой новый Discourse настроен и работает. Ещё раз спасибо за помощь новичку.

Возможно ли добавить раздел с советами по устранению неполадок к discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub, и если да, могу ли я помочь внести свой вклад?

Процесс останавливается полностью. Вы бы не пропустили это. Я полагаю, что вы хитро решили проблему с /etc/hosts, что удовлетворило скрипт, но не Let’s Encrypt, когда он попытался получить сертификат. discourse-setup — это shell-скрипт, предназначенный для самых неопытных пользователей, поэтому его проверки довольно наивны.

Может быть, посмотрите стандартную тему установки?

EDIT: Ну, там не так много информации.

Какие советы по устранению неполадок вы хотите добавить? Мне кажется, там есть некоторые подсказки. Предположение, что кто-то создаст запись в /etc/hosts и обойдет проверку DNS, — это то, о чем я никогда не слышал от кого-либо. :slight_smile: