Мне наконец удалось успешно настроить свой первый экземпляр Discourse, хотя в процессе возникли некоторые трудности. Я использую Debian Stretch и следовал руководству по установке через Docker.
В ходе настройки скрипт проверяет, действительно ли указанное вами доменное имя указывает на эту машину. Для этого он использует утилиту nc (netcat). Оказалось, что проблема была именно в этом: у меня не был установлен netcat, и простое его устранение решило задачу.
Однако я считаю, что это ошибка в скрипте установки. Простая функция проверки наличия nc могла бы это исправить, или же можно было бы предоставить пользователю возможность полностью пропустить эту проверку, что также решило бы проблему.
Это уже обсуждалось, но netcat discourse-setup не может его найти.
Проверка лишь выдаёт предупреждение, которое вы можете проигнорировать, поэтому я не считаю это ошибкой.
Я рассматривал возможность установки nc через discourse-setup, но установка чего-то, что может никогда не понадобиться, кажется нежелательной.
Возможно, если nc отсутствует, следует пропустить проверку и предложить пользователю установить nc самостоятельно, если проверка необходима, возможно, даже предложив команду apt install nc.
Я вынужден с уважением не согласиться: это очень похоже на баг. Да, вы выводите предупреждающее сообщение, которое можно проигнорировать, но для тех, кто устанавливает Discourse впервые, процесс должен быть максимально простым. Это означает, что пользователю не придётся копаться в исходном коде и выяснять, что для работы без ошибок нужно установить netcat. Любая ошибка запутает пользователя или системного администратора, заставив их тратить время на выяснение причин сбоя и на то, чтобы через git blame найти автора кода.
Это можно легко обойти, добавив простую проверку перед выполнением проверки IP-адреса, например так:
Проверить, установлен ли netcat.
Если установлен — продолжить.
Если нет — вывести предупреждение и предложить пользователю выбор: продолжить без проверки или прервать процесс, чтобы установить netcat (или даже предложить установить его автоматически через apt/yum/pacman).
Другой вариант, который будет работать на большем количестве систем (хотя и не на всех), чем сейчас — использовать стек /dev/tcp. Подробнее о том, как это сделать, можно узнать здесь. Это решит проблему для Debian и работает в Ubuntu; я не проверял это на других дистрибутивах.