Проблемы с установкой... (Первый опыт установки Discourse)

Привет,

Я впервые пытаюсь установить Discourse официальным способом с помощью скрипта discourse-setup… на VPS под Arch (для тестирования в группе) — там стоит свежая установка nginx, которую я пока остановил и отключил, чтобы получить рабочую сборку.

Скрипт зависает на этапе “Checking your domain Name…” — я посмотрел в код скрипта, и это вызов функции “connect_to_port”. Полагаю, он пытается подключиться к порту 443… netcat установлен. Если я ввожу, например, “nc host 443” в оболочке, вывода нет и ничего не происходит. Думаю, это потому, что внешний nginx не запущен, поэтому на этом порту ничего нет. Не уверен, что именно делает скрипт в этом месте.

Я также пытался пропустить эту проверку, но в итоге, после сборки, он пытается сделать что-то подобное, что тоже не сработало. Поэтому я удалил всё и начал заново. Что я могу сделать, чтобы заставить работать этот тест подключения через netcat? Возможно, это решит и другие проблемы…

(Извините за мой ужасный английский… я не носитель языка…)

Я попробовал снова без netcap, и сборка завершилась с таким сообщением:

docker: Error response from daemon: driver failed programming external connectivity on endpoint app (80e0a31158301339ff7c9567079017bb795b1172ee47e1c6417c29acda3c699a): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 443 -j DNAT --to-destination 172.17.0.2:443 ! -i docker0: Warning: Extension tcp revision 0 not supported, missing kernel module?
Warning: Extension DNAT revision 0 not supported, missing kernel module?
iptables: No chain/target/match by that name.

Это проблема конфигурации Docker?

Для стандартной установки необходимо удалить nginx. Discourse включает собственный nginx, поэтому дополнительный не требуется (если только вы не хотите использовать его по другой причине, что усложнит установку).

Скрипт пытается подключиться к самому себе, используя ваше доменное имя. Если доменное имя указывает на вашу виртуальную машину, то оно должно иметь возможность связаться с собой через это имя хоста, при условии, что DNS настроен правильно и порты 443 и 80 не заняты другими службами.

Если вы несколько раз пропустите проверку, то столкнетесь с ограничениями на количество попыток получения HTTPS-сертификата от Let’s Encrypt.

Спасибо.

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

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

Discourse не должен быть единственным программным обеспечением, которое будет работать на этой машине… и я просто хочу понять, как изолировать его на отдельном уровне, обеспечивая доступ к нему через публичный прокси-слой…

Поскольку эта машина всё равно одноразовая, я обязательно попробую… это первый раз, когда мне приходится делать это для веб-приложения, и только потому, что «чтобы было проще»…

Хорошо, вы настроите виртуальный хост как обычно во внешнем nginx, используя proxy_pass http://unix:/var/discourse/shared/standalone/nginx.http.sock:;, и, конечно же, завершите SSL-соединение там.

Затем в файле app.yml нужно закомментировать перенаправления портов и Let’s Encrypt, а вместо этого использовать сокет.

Перезапуск nginx и пересборка Discourse приведут к открытому форуму :wink:

Инструкции также можно найти здесь.

Мне это кажется очень полезным… спасибо, друг :smiling_face_with_three_hearts: я буду работать с этим…