Установка Discourse на бесплатном тарифе Oracle Cloud

--- Oracle предлагает бесплатный тарифный план, включающий два виртуальных сервера низкой конфигурации, способных запускать Discourse. Эта пробная версия не имеет ограничения по времени.

:warning: Эти виртуальные машины работают очень медленно, и я не рекомендую использовать их для размещения сообщества.
Тем не менее, этого может быть достаточно для размещения очень небольшого сообщества, которому не важна скорость, или для личных проектов/тестов.


Требования

  • Номер кредитной карты — списания не произойдет, но она необходима для регистрации бесплатного аккаунта
  • Доменное имя
  • Провайдер электронной почты
  • Установка Discourse будет идентична официальному руководству, однако в этом уроке мы подробно разберем интерфейс и настройку Oracle.

В этом уроке мы будем исходить из того, что вы используете Windows 10, и для подключения к серверу по SSH будем использовать PuTTY.

Создание бесплатной пробной версии

Сначала создайте пробный аккаунт на Oracle Cloud Free Tier | Oracle
Регистрация аккаунта происходит не мгновенно, и вам, возможно, придется подождать несколько минут, часов (а в некоторых случаях и дней), пока ваш аккаунт не будет подтвержден.

После создания аккаунта перейдите на https://cloud.oracle.com и войдите в систему.

Создание сервера

Нажмите «Create a VM Instance» (VM означает «Виртуальная машина»):

Настройка сервера

(Необязательно) переименуйте свой экземпляр во что-то осмысленное, чтобы вы понимали, что он означает в списке ваших виртуальных машин:

Я назову свой так же, как доменное имя, которое буду использовать: «Canapin.win»:
image

В разделе Image and shape измените операционную систему по умолчанию на Ubuntu, нажав «edit»:

Выберите Canonical Ubuntu, затем нажмите Select Image в нижней части страницы:

В разделе Add SSH keys доступно несколько вариантов:

Нажмите Save Private Key и Save Public Key.
Это загрузит публичный ключ .pub и приватный ключ .key. Сохраните их в какой-либо папке.

Преобразование приватного ключа для PuTTY

:raised_hand: На время мы прекратим работу с интерфейсом Oracle и вернемся к нему позже.

В этом уроке мы будем подключаться к серверу с помощью PuTTY. Поскольку сгенерированный приватный ключ несовместим с PuTTY, мы воспользуемся утилитой Puttygen для преобразования ключа в совместимый формат.

Установите PuTTY с официального сайта: Download PuTTY: latest release (0.83)

После установки PuTTY вы сможете найти PuTTYgen через поиск Windows:


Если он не отображается здесь, вы можете найти его по адресу: C:\Program Files\PuTTY\puttygen.exe

Запустите PuTTYgen.
Выберите Конвертация (Conversions) → Импорт ключа (Import key):
Найдите ваш файл .key, загруженный с интерфейса Oracle, и нажмите Open, чтобы подтвердить выбор файла.

Появятся некоторые поля, которые будут автоматически заполнены. Не изменяйте их, если не знаете, что делаете.

(Необязательно) добавьте парольную фразу (passphrase) к вашему ключу. Представьте её как пароль для повышения безопасности, который будет запрашиваться при каждом входе на сервер.
Затем нажмите Save private Key и сохраните его в папку:

Завершение создания сервера

:point_right: Время вернуться к интерфейсу Oracle.

Прокрутите страницу вниз до конца и нажмите кнопку Create:

Подождите около минуты, пока сервер не будет создан. Страница и её информация будут обновляться в реальном времени. Обновлять страницу вручную не нужно:

Убедитесь, что ваш домен указывает на IP-адрес вашего нового сервера

Настройте указание вашего домена на IP-адрес сервера и подождите распространения DNS.
:information_source: Это не объясняется в данном уроке и должно быть выполнено в настройках DNS у вашего провайдера доменного имени.

Запишите имя пользователя, созданное сервером

Запишите имя пользователя, которое сервер создал автоматически. Здесь имя пользователя — ubuntu.

Настройка брандмауэра Oracle

Теперь перейдем к очень специфичному разделу настройки Oracle, необходимому для работы Discourse. Мы откроем некоторые порты в брандмауэре.
Нажмите Public Subnet в разделе Primary VNIC:

Нажмите ссылку Security list в разделе Security Lists:

Нажмите Add Ingress Rules в разделе Ingress Rules:

Заполните правила следующим образом:

  • Установите SOURCE CIDR в 0.0.0.0/0
  • Установите DESTINATION PORT RANGE в 80, 443
    Нажмите «Add Ingress Rules»:

Проверьте, что ваши правила были корректно добавлены:

Подключение к серверу по SSH с помощью PuTTY

Запустите PuTTY и в поле Host Name (or IP address) введите IP-адрес вашего newly созданного сервера:

В левом дереве меню перейдите в ConnectionSSHAuth.
В разделе «Authentification parameters» найдите ваш приватный ключ (файл с расширением .ppk, сгенерированный в PuTTYgen), нажав Browse…:

Нажмите Open:

Нажмите Accept:

Войдите в систему, введя ваше имя пользователя (ubuntu) и нажав Enter:


Введите парольную фразу, если вы задали её в PuTTYgen.

PuTTY проверит ваш приватный ключ, и вы должны быть авторизованы:

Настройка брандмауэра Ubuntu (iptables)

На этом этапе мы всё ещё не можем установить Discourse. Нам нужно открыть некоторые порты непосредственно в Ubuntu.

Войдите как root, введя sudo su и нажав Enter.

Добавьте следующие правила в iptables, введя:

iptables -I INPUT 5 -i ens3 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I INPUT 5 -i ens3 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT

Примечание: число “5” означает, что оба правила будут добавлены, начиная с 5-й строки, сразу перед правилом брандмауэра DENY ALL. Номер строки может потребоваться изменить в будущем, если Oracle изменит конфигурацию iptables по умолчанию на своём образе Ubuntu

image

Сохраните обновленные правила командой:

netfilter-persistent save

image

Установка Discourse

Теперь ваш сервер должен быть готов к установке Discourse.
Просто следуйте официальным инструкциям: discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub

(40 минут компиляции спустя… :snail:)


:warning: Напомню ещё раз: бесплатные серверы Oracle работают медленно. Установка и пересборка занимают вечность.
Даже установка тем или компонентов через интерфейс иногда приводит к тайм-ауту.
Будьте предупреждены… И наберитесь терпения. :person_in_lotus_position:


Связанное обсуждение с различной информацией и ресурсами: Self hosting for free (with caveats!) with Oracle Cloud

9 лайков