Привет, это мой первый опыт самостоятельного хостинга Discourse. Я следовал официальной инструкции по установке на GitHub, выполнив команду: wget -qO- https://raw.githubusercontent.com/discourse/discourse_docker/main/install-discourse | sudo bash. Всё шло хорошо, пока не дошло до подключения к поддомену. После завершения проверки я продолжаю получать одни и те же ошибки: «Порт 443 этого компьютера, по-видимому, недоступен по имени хоста: [Поддомен Discourse]» и «Подключение к [Поддомен Discourse] порт 80 также не удаётся».Сначала файла app.yml вообще не существовало, поэтому я поискал информацию в интернете и исправил ситуацию. Я изменил порт на 81, а также поменял 443, и попытался снова, но ошибка осталась той же, как будто я вообще не менял порт.Также я проверил, не вызывает ли проблем raspap, и обнаружил, что он использует порт 80. Я изменил его на 81, но ошибка всё та же.Что я делаю не так? Возможно ли это из-за того, что я использую Raspberry Pi 5? Должен ли я открывать порты в настройках моего роутера? Я в растерянности и прошу прощения, если это глупый вопрос — скорее всего, потому что я новичок в этом.
Хм… вы следуете:
Нет, но обязательно попробую, потому что уверен, что это исправит проблему, с которой я сейчас сталкиваюсь. Спасибо ![]()
Мне удалось исправить ошибку с портом 80, но я всё ещё не могу понять, почему порт 443 по-прежнему не работает. Не уверен, не использует ли его всё ещё raspap, но я не думаю, что смогу его изменить.
После того как я потратил вечность на разбирательство с туннелем Cloudflare, мне наконец удалось заставить его подключиться без ошибок портов 80 и 443, следуя этому руководству: Install Discourse on a residential internet with Cloudflare Tunnel
Затем появился 5-секундный обратный отсчёт, и процесс начал работу, но потом остановился. Я подумал, что, возможно, всё готово, и зашёл на домен, но там написано, что он не отвечает. Локалхост тоже ничего не показывает. Может, я запускаю его неправильно? Я не менял никаких конфигураций, даже удалил и переустановил всё заново, но безрезультатно. Пересборка тоже просто останавливается, а команда discourse doctor сообщает, что контейнерное приложение Discourse запущено. Так как же мне получить доступ к нему в моей локальной сети, чтобы проверить, работает ли он на других устройствах?
Вы можете попробовать выполнить cURL запрос к IP-адресу Raspberry Pi и посмотреть, есть ли ответ.
Также вы можете проверить состояние туннеля на панели управления Cloudflare.
Получаю ошибку curl: (7) Не удалось подключиться к (здесь IP) порт 80 после 0 мс: Не удалось подключиться к серверу
В панели управления Cloudflare указано, что всё в порядке.
Я забыл упомянуть, что также запускаю RaspAP — точку доступа для Raspberry Pi, которая также предоставляет веб-панель управления, но я изменил её порт на 81.
Получается, что Discourse должен быть доступен через порт 80 на вашем Raspberry Pi, но cURL не может подключиться к нему с другого компьютера?
Можете поделиться вашим файлом app.yml?
Я попробовал запустить curl на самом Raspberry Pi. Также я не могу получить доступ к веб-сайту со своего телефона, но могу зайти на другой сайт, который я хостю с IP-адреса Pi через порт 81.
Вот мой файл app.yml:
templates:
- templates/postgres.template.yml
- templates/redis.template.yml
- templates/web.template.yml
- templates/web.ratelimited.template.yml
- templates/web.ssl.template.yml
- templates/web.letsencrypt.ssl.template.yml
expose:
- 80:80
- 443:443
params:
db_default_text_search_config: pg_catalog.english
db_shared_buffers: 4096MB
env:
LC_ALL: en_US.UTF-8
LANG: en_US.UTF-8
LANGUAGE: en_US.UTF-8
DISCOURSE_HOSTNAME: forum.iambest.net
DISCOURSE_DEVELOPER_EMAILS: (private email)
DISCOURSE_SKIP_EMAIL_SETUP: '1'
UNICORN_WORKERS: 8
volumes:
- volume:
host: "/var/discourse/shared/standalone"
guest: "/shared"
- volume:
host: "/var/discourse/shared/standalone/log/var-log"
guest: "/var/log"
hooks:
after_code:
- exec:
cd: "$home/plugins"
cmd:
- git clone https://github.com/discourse/docker_manager.git
run:
- exec: echo "Beginning of custom commands"
- exec: echo "End of custom commands"
Вы вообще не следовали руководству по адресу Install Discourse on a residential internet with Cloudflare Tunnel?
То есть вы не закомментировали порты и шаблоны.
Да, ты прав. Это потому, что во время устранения неполадок я удалил это, так как не был уверен, что именно из-за этого оно раньше не работало.
Также я не был уверен, нужно ли мне закомментировать порты, поэтому попробовал снова без этого, и теперь оно работает… Хотя бы немного, потому что это выглядит неправильно:
Я также отключил Rocket, как сказано в руководстве. Проблема возникает как на домене, так и на localhost.
Похоже, это проблема с CSS, а также с брандмауэром. Есть ли у вашего провайдера какие-либо ограничения брандмауэра?
Я не настраивал никаких ограничений брандмауэра и не трогал CSS. Мой роутер также очень ограничен, поэтому, к сожалению, я не могу изменить какие-либо настройки брандмауэра.
Кроме того, по всей видимости, нет никаких ограничений портов, кроме портов 25 и 455.
Также похоже, что по какой-то причине используется не HTTPS, а HTTP. Как указано в руководстве, я принудительно включил HTTPS в app.yml, поэтому непонятно, почему я не могу получить доступ к сайту через HTTPS.
@Falco Нужен ли сертификат Let’s Encrypt при использовании Cloudflare Tunnels? Или это происходит автоматически через Cloudflare?
