Какой лучший способ установить форум Discourse на виртуальную машину Proxmox и открыть его доступ в интернете

Привет! Я новичок во всём этом серверном деле.

Пожалуйста, помогите мне запустить Discourse на виртуальной машине или контейнере LXC в Proxmox.
Или, может быть, где-то есть уже готовый образ для импорта?

Большое спасибо.

@pfaffman, возможно, у него есть процедура платной установки, которую он может выполнить. Это стоит каждого цента.

Спасибо, Алекс!

Первым делом стоит обратиться к официальной стандартной установке Discourse, но, учитывая, что такое Proxmox, я думаю, правильный ответ — «спросите их». Однако, если поискать, можно найти Trying to install Discourse in an Ubuntu VM on Proxmox

Не совсем понятно, что вы считаете особенным в том, что это запущено на виртуальной машине Proxmox. Установите Ubuntu 18 в виртуальную машину. Откройте порты 80 и 443 для доступа из интернета. Следуйте документации Discourse, ссылка на которую приведена выше. С каким именно этапом вам нужна помощь?

Я совершенно новичок в серверных делах, но учусь.
Как сейчас: → Разницы нет, какой гипервизор я использую. Спасибо.

В руководстве сказано:
У вас должен быть доступ по SSH (у меня есть через локальный IP и PuTTY) к 64-битному серверу Linux с поддержкой Docker.
(Это значит, что Docker не должен быть установлен до начала установки??)

Должна ли это быть виртуальная машина, или также возможен контейнер (CT)?
Что вы рекомендуете?

Какой Linux вы бы порекомендовали?

Думаю, остальное в руководстве понятно, но посмотрим.

Его можно установить, а можно и нет. Если он не установлен, скрипт установки установит его сам.

Не уверен, что Docker будет корректно работать в CT — вы будете запускать контейнер внутри контейнера, что может вызвать проблемы. Лучше выбрать виртуальную машину.

В руководстве сказано:

По умолчанию отлично работает текущая поддерживаемая LTS-версия Ubuntu Server

Если у вас нет возражений против Ubuntu, я бы использовал её (я использую её для своих сайтов Discourse). Текущая LTS-версия — 20.04. В моём предыдущем сообщении было указано «Ubuntu 18», потому что я использую именно её (и она ещё поддерживается в течение трёх лет, так что я не тороплюсь менять), но для новой установки, вероятно, лучше использовать текущую версию.

Затем ВМ будет находиться в моей сети с IP-адресом.
Nginx Reverse Manager указывает домен для Discourse с роутера на IP-адрес ВМ на порту 80?
Каким должно быть настройка?

Думаю, мне нужно получить сертификат Let’s Encrypt до установки, чтобы это соединение работало?

Думаю, вы, скорее всего, правы. Также потребуется отключить встроенную поддержку Let’s Encrypt в установке Discourse. Я знаю, что это возможно, но у меня редко возникала в этом необходимость. Однако, уверен, что поиск по форуму найдёт соответствующие инструкции.

Не уверен, смогу ли я изменить скрипт (звучит опасно для новичка).

Что если я перенаправлю порты 80 и 443 напрямую на виртуальную машину для установки, а после завершения
верну порты 80 и 443 обратно в RevManager?

Или только порт 80?

Также считаю, что для такой ситуации было бы неплохо, если бы у кого-то уже был сертификат, в скрипте был бы простой вопрос (как новичок, я не могу сказать, насколько это сложно) «Получить сертификат? ДА/НЕТ».

Что вы думаете?
Будет ли это идеально?

Именно это вам и придётся сделать. Discourse-setup не подойдёт для вашей конфигурации. Вы выбрали откровенно сложный путь. Существуют руководства по установке с другими веб-серверами.

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

СПАСИБО
Можете, пожалуйста, сказать, как изменить скрипт?
Я попробую.
Мне нужно этому научиться.

Что вы думаете об этом предложении?

Или вот это было бы идеально!

Это сработает и позволит скрипту установки завершиться без проблем. Проблема в том, что теперь ваша установка Discourse будет ожидать управления своим TLS-сертификатом, чего она не сможет делать, как только вы перестанете перенаправлять порты 80 и 443 на эту ВМ. Вам нужно сказать Discourse не пытаться получать сертификат или обрабатывать TLS вообще. И я думаю (хотя я не тестировал это), что это можно сделать, закомментировав строки web.ssl.template.yml и web.letsencrypt.ssl.template.yml в файле app.yml. Run other websites on the same machine as Discourse Также содержит соответствующую информацию и, кажется, согласуется с этим.

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

СПАСИБО, я попробую.
Смысл:
Настроить проброс портов 80 и 443 с роутера на IP-адрес виртуальной машины.
Затем я могу установить с помощью обычного скрипта.
После завершения установки отредактировать файлы?

Другие требования

Имя хоста для вашего Discourse? [discourse.example.com]:
NoIp.domain.com от No-IP

Адрес электронной почты для учетной(ых) записи(ей) администратора? [ me@example.com , you@example.com]:
–>Могу ли я здесь указать адрес электронной почты от 1und1 (IONOS)
me@MY.Domain.com
отличный от NoIp.domain.com?

Адрес SMTP-сервера? [smtp.example.com]: → от IONOS
Порт SMTP? [587]: → от IONOS
Имя пользователя SMTP? [user@example.com]: → это адрес электронной почты
Пароль SMTP? [pa$word]: → ОК
Адрес электронной почты для учетной записи Let’s Encrypt? (нажмите ENTER, чтобы пропустить) [me@example.com]: Адрес электронной почты от учетной записи No-Ip но без пароля?

Нет, я имею в виду отредактировать файл до запуска установки. Как уже говорилось выше, вы не сможете использовать скрипт discourse-setup.

Вы можете использовать любой адрес электронной почты, независимо от домена.

Убедитесь, что этот сервер разрешает массовую рассылку писем, если вы планируете сделать этот форум публичным.

Зачем там нужен пароль? Этот адрес электронной почты нужен Let’s Encrypt только для уведомления о скором истечении срока действия сертификата (что на самом деле никогда не должно происходить). Но ваш контейнер вообще не должен получать сертификат.

СПАСИБО
Думаю, я смогу использовать скрипт после того, как соберу всю необходимую информацию.
Я позже составлю сводку моей конфигурации, которую буду настраивать.

С нетерпением жду ваших успехов.

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

Domain.xx — CNAME на Fritz!Domain.
Fritz!Box пробрасывает порты 80 и 443 на IP Reverse Manager.
Reverse Manager пробрасывает Domain.xx на порты 80 и 443 на IP виртуальной машины (VM IP 2).

На Domain.xx сертификаты не установлены.

На VM IP 2 установлена только свежая Ubuntu.
Как протестировать?
Что вы думаете?