Установка Discourse на CloudPanel

Я оформил это как вики-страницу. Вы можете обновить исходный пост (OP), чтобы детально описать всё. Поскольку у вас есть здесь экспертиза, я надеюсь, что вы будете следить за этой темой, чтобы помогать другим, кто хочет последовать вашему пути.

Тем не менее, никто из регулярных участников здесь не использует Cloud Panel, а автор руководства не участвует в его поддержке. Поддержка только стандартной установки, где мало что может пойти не так, занимает довольно много времени.

:+1: Если никто не возражает, я включу свои предложения, когда у меня будет время, чтобы убедиться, что они логичны (и работают). Я знаю, что как минимум потребуется запуск discourse-setup с флагом --skip-connection-test.

Думаю, это, вероятно, несправедливо: они обновляли руководство на основе отзывов, и, возможно, другие люди просто быстрее отвечали на вопросы.

5 лайков

Скорее всего, так и есть. Эта история началась всего день или два назад. Возможно, в данном случае мне лучше промолчать и позволить другим разобраться в ситуации.

5 лайков

Привет!! Я здесь и с радостью помогу! Именно поэтому я создал это руководство и пригласил вас оставить обратную связь!

Я добавил тег unsupported-install и дисклеймер в начале с рекомендацией вернуться к стандартной установке для тех, кто не любит рисков. :slight_smile:

Я также предложил тег #here-be-dragons, но он всё ещё находится на рассмотрении… :slight_smile:

5 лайков

Однако в итоге, более внимательно изучив то, что здесь сообщается, и проведя поиск на других форумах, мне удалось установить всё необходимое. Спасибо всем за помощь.

2 лайка

Будет ли найденная вами информация полезной для текущего руководства?

2 лайка

В то время я не понимал, что также необходимо изменить другие пункты файла app.yml, такие как почтовый сервер и другие настройки, поскольку руководство здесь было составлено для экспертов: для них были указаны только самые очевидные вещи, а не также те, которые важны для неопытных пользователей, таких как я. Затем у меня возникли трудности с настройкой почты, так как мой провайдер использует порт 587 в TLS.

3 лайка

Привет, @denvergeeks :blob_wave:

Я изучаю это руководство. :slight_smile:

Раздел

Подготовьте домен и настройте SSL

где вы используете Cloudflare, является обязательным? Стоит ли мне использовать аналогичный сервис или SSL будет работать без привлечения сторонних сервисов?


В таких разделах:

Было бы здорово кратко объяснить, зачем это нужно (подстрочные примечания тоже подойдут) :slight_smile:

@Canapin, инструкции по использованию встроенного SSL в CloudPanel можно найти здесь…

Использование Cloudflare — это просто моё предпочтение как для DNS-серверов, так и для SSL.

Многие используют Cloudflare. Поскольку я применяю Cloudflare в своём процессе, именно это я указал в своём руководстве для тех, кто использует (или хочет использовать) Cloudflare для этих целей.

Вам не обязательно использовать Cloudflare. Вы можете использовать любые DNS-серверы, которые обычно применяете для привязки вашего домена к IP-адресу вашего CloudPanel. Я просто обычно использую Cloudflare.

Кроме того, вы можете использовать любого поставщика SSL вместо Cloudflare или в дополнение к нему.

Если хотите, вы можете добавить инструкции для других DNS-серверов и провайдеров SSL.

Надеюсь, это проясняет ситуацию!

3 лайка

Я внимательно следовал вашей инструкции по использованию Cloudflare в качестве обратного прокси с моим тестовым доменом canapin.ovh, но сейчас возникает ошибка Cloudflare:

https://canapin.ovh

Помимо следования вашей инструкции, я оставил все остальные настройки Cloudflare по умолчанию и изменил только те, что упомянуты в руководстве.

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

3 лайка

@Canapin, вы не забыли (в конце) выполнить:

./launcher start app

(Это одна из многих возможных причин.)

:grey_question: Я мог бы помочь больше, если бы вы предоставили больше информации. :grey_question:

1 лайк

Да, мой контейнер запущен, и проблема может заключаться во многом… Но я не хочу добавлять шум в вашу тему, особенно будучи человеком, не знакомым с установками без поддержки :stuck_out_tongue:

1 лайк

Я использую Fastpanel, где одного параметра достаточно для работы с Discourse. Fastpanel предлагает больше возможностей (PostgreSQL, автоматическое резервное копирование в облако, Apache/Nginx и др.) для установки более сложных приложений, чем WordPress. Discourse отлично работает в Fastpanel!

1 лайк

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

Посмотрев на урок, я заметил, что шагов не так много, и решил попробовать сам, поэтому считаю, что я близок к успеху.

Но я не справился на этапе bootstrap:

Status: Downloaded newer image for discourse/base:2.0.20250129-0720
docker.io/discourse/base:2.0.20250129-0720
2.0.20250129-0720: Pulling from discourse/base
Digest: sha256:01b8516e5504c0e9bc3707773015ff4407be03a89154194ff3b5b8699291bc26
Status: Image is up to date for discourse/base:2.0.20250129-0720
docker.io/discourse/base:2.0.20250129-0720
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2025-02-05T01:45:55.552861 #1]  INFO -- : Reading from stdin
I, [2025-02-05T01:45:55.600413 #1]  INFO -- : File > /etc/runit/1.d/remove-old-socket  chmod: +x  chown:
I, [2025-02-05T01:45:55.612817 #1]  INFO -- : File > /etc/runit/3.d/remove-old-socket  chmod: +x  chown:


FAILED
--------------------
Errno::ENOENT: No such file or directory @ rb_sysopen - /etc/nginx/conf.d/discourse.conf
Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/replace_command.rb:11:in `read'
replace failed with the params {"filename"=>"/etc/nginx/conf.d/discourse.conf", "from"=>"/listen 80;/", "to"=>"listen unix:/shared/nginx.http.sock;\nset_real_ip_from unix:;\n"}
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
70d853c5066a283a84838676ef16a243cc6f418cee8802eb34b1edfc598a7bd9
root@Vultr2409:/var/discourse# 

Я попробовал попросить Deepseek решить эту проблему, и он предложил мне вручную создать файл /etc/nginx/conf.d/discourse.conf со следующим содержимым:

server {
    listen 80;
    server_name <mydomain.com (замените на свой домен)>;
    location / {
        proxy_pass http://unix:/shared/nginx.http.sock;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
root@Vultr2409:/var/discourse# ./launcher rebuild app
x86_64 arch detected.
Ensuring launcher is up to date
Launcher is up-to-date
2.0.20250129-0720: Pulling from discourse/base
Digest: sha256:01b8516e5504c0e9bc3707773015ff4407be03a89154194ff3b5b8699291bc26
Status: Image is up to date for discourse/base:2.0.20250129-0720
docker.io/discourse/base:2.0.20250129-0720
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2025-02-05T02:21:24.487508 #1]  INFO -- : Reading from stdin
I, [2025-02-05T02:21:24.505619 #1]  INFO -- : File > /etc/runit/1.d/remove-old-socket  chmod: +x  chown:
I, [2025-02-05T02:21:24.510777 #1]  INFO -- : File > /etc/runit/3.d/remove-old-socket  chmod: +x  chown:


FAILED
--------------------
Errno::ENOENT: No such file or directory @ rb_sysopen - /etc/nginx/conf.d/discourse.conf
Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/replace_command.rb:11:in `read'
replace failed with the params {"filename"=>"/etc/nginx/conf.d/discourse.conf", "from"=>"/listen 80;/", "to"=>"listen unix:/shared/nginx.http.sock;\nset_real_ip_from unix:;\n"}
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
1c7c2a9d055439d23b9300f77e4bc6e912d4db5cf372ea1261e7b8bccb1be3ee

Я также попробовал некоторые решения, предложенные GPT, включая закомментирование строки templates/web.template.yml, но это не помогло. Буду очень признателен за любую помощь!

В конфигурации nginx произошли значительные изменения. Это тесты прошли успешно или что-то другое?

Но вы можете просто попробовать снова сейчас.

Можете подсказать, где находятся самые свежие конфигурационные файлы nginx? Сейчас мой Discourse подключен к FastPanel с настройками по умолчанию. Всё работает, но я хотел бы более точную конфигурацию для оптимальной работы Discourse.