Гид по технологиям

Установка Discourse на Ubuntu 22.04

• 4 min read • DevOps • Обновлено 28 Nov 2025
Установка Discourse на Ubuntu 22.04
Установка Discourse на Ubuntu 22.04

Логотип Discourse в стиле минималистичной иконки

Discourse — это свободная платформа для обсуждений с открытым исходным кодом, рассчитанная на современные требования веба. Её можно использовать как список рассылки, форум и площадку для длительных обсуждений. Discourse предоставляет социальные функции, похожие на Twitter и Facebook, и подходит для сообществ команд, клиентов, фанатов или сторонников.

В этом руководстве показано, как установить Discourse на Ubuntu 22.04 и выполнить базовую настройку для публичного доступа.

Что нужно иметь заранее

  • Сервер с Ubuntu 22.04.
  • Доменное имя, указывающее на IP сервера.
  • Настроенный пароль root (или доступ по sudo).

Краткая методология развёртывания

  1. Установить Docker CE и зависимости.
  2. Клонировать официальный репозиторий discourse_docker.
  3. Запустить скрипт настройки ./discourse-setup и ответить на вопросы.
  4. Проверить контейнер и доступ через браузер.

Эта последовательность минимизирует ручные правки конфигурации и использует проверённый контейнерный шаблон.

Установка Docker CE

Сначала установите необходимые пакеты:

apt-get install apt-transport-https ca-certificates git curl gnupg -y

Затем загрузите GPG-ключ Docker и сохраните его в /etc/apt/keyrings:

mkdir -p /etc/apt/keyrings  
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg

Добавьте репозиторий Docker:

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null

Обновите кэш пакетов:

apt update -y

Установите Docker CE:

apt-get install docker-ce docker-ce-cli containerd.io -y

Проверьте установку:

docker --version

Ожидаемый пример вывода (на вашей машине версия может отличаться):

Docker version 20.10.18, build b40c2f6

Важно: если у вас корпоративный прокси или ограниченный доступ к интернету, убедитесь, что сервер может получать пакеты с download.docker.com и github.com.

Установка Discourse

Создайте каталог для Discourse и клонируйте официальный репозиторий с шаблоном контейнера:

mkdir /var/discourse

git clone https://github.com/discourse/discourse_docker.git /var/discourse

Перейдите в каталог и запустите скрипт настройки:

cd /var/discourse
./discourse-setup

Скрипт задаст вопросы. Пример диалога (заполните своими значениями):

Hostname for your Discourse? [discourse.example.com]: discourse.example.com

Checking your domain name . . .
Connection to discourse.example.com succeeded.
Email address for admin account(s)? [[email protected],[email protected]]: [email protected]
SMTP server address? [smtp.example.com]: smtpl.localhost
SMTP port? [587]: 25
SMTP user name? [[email protected]]: root@localhost
SMTP password? [pa$$word]: password
notification email address? [[email protected]]: 
Optional email address for Let's Encrypt warnings? (ENTER to skip) [[email protected]]: [email protected]
Optional Maxmind License key (ENTER to continue without MAXMIND GeoLite2 geolocation database) [1234567890123456]: 

Does this look right?

Hostname          : discourse.example.com
Email             : [email protected]
SMTP address      : smtpl.localhost
SMTP port         : 25
SMTP username     : root@localhost
SMTP password     : jethva1981
Notification email: [email protected]
Let's Encrypt : [email protected]
Maxmind license: (unset)

ENTER to continue, 'n' to try again, Ctrl+C to exit: 

Совет: для публичного сервера используйте рабочие SMTP-данные (например, сервис SendGrid, Mailgun или SMTP-почту хостинга) — иначе регистрация пользователей и уведомления не будут работать.

Проверка контейнера

После успешного запуска проверьте работающие контейнеры:

docker ps

Пример вывода:

CONTAINER ID   IMAGE                 COMMAND        CREATED          STATUS          PORTS                                                                      NAMES
bb5d5d7b3619   local_discourse/app   "/sbin/boot"   44 seconds ago   Up 42 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   app

Если контейнер не запускается, смотрите раздел «Отладка и распространённые ошибки» ниже.

Доступ к веб-интерфейсу

Откройте браузер по адресу http://discourse.example.com (замените на ваш домен). Вы увидите страницу приветствия.

Главная страница установки Discourse с формой регистрации

Нажмите кнопку Register и заполните форму администратора.

Форма создания аккаунта администратора с полями логина, электронной почты и пароля

После регистрации система отправит на указанный e‑mail письмо для подтверждения:

Пример письма подтверждения регистрации с кнопкой активации

Подтвердите адрес, чтобы завершить создание аккаунта администратора.

Базовая настройка безопасности и сети

  • Откройте порты 80 и 443 в брандмауэре (ufw):
ufw allow 80,443/tcp
ufw enable
  • Включите Let’s Encrypt в диалоге ./discourse-setup, чтобы получить бесплатный сертификат.
  • Для корпоративной среды рекомендуется запустить Discourse за обратным прокси (nginx) только при необходимости. Стандартный шаблон уже настраивает порты 80/443.

Важно: резервное копирование — настраивайте автоматическое резервное копирование и храните его вне сервера.

Отладка и распространённые ошибки

  1. DNS не указывает на сервер — проверьте A/AAAA записи у регистратора.
  2. SMTP не доставляет письма — проверьте логины, порты и политику провайдера (часто блокируют порт 25).
  3. Контейнер падает при старте — смотрите логи:
docker logs app
  1. Ошибки Let’s Encrypt — убедитесь, что домен доступен по HTTP и порты 80/443 не блокируются.

Ручное восстановление или откат

Если настройка ./discourse-setup прошла некорректно, можно пересоздать контейнеры:

cd /var/discourse
./launcher rebuild app

Это восстанавливает контейнер с текущей конфигурацией в файле containers/app.yml.

Рекомендации по безопасности

  • Используйте отдельный почтовый SMTP-аккаунт с сильным паролем.
  • Ограничьте доступ к серверу по SSH ключам. Отключите вход по паролю.
  • Включите регулярные обновления ОС и Docker.
  • Настройте резервное копирование базы данных и загрузок на внешнее хранилище (S3 или другое).

Роли и чеклисты (быстро)

Администратор:

  • Зарегистрировать домен и привязать DNS.
  • Установить Docker и Discourse.
  • Настроить SMTP.
  • Активировать Let’s Encrypt.

Оператор (DevOps):

  • Настроить бэкапы и мониторинг.
  • Обновлять Docker и контейнеры.
  • Автоматизировать восстановление.

Модератор:

  • Настроить правила сообщества.
  • Проверить настройки уведомлений и входа.

Критерии приёмки

  • Сайт доступен по указанному домену и отдаёт страницу Discourse.
  • Административная регистрация проходит и подтверждается по e‑mail.
  • Контейнер app отображается в docker ps и слушает порты 80/443.
  • Ежедневное резервное копирование настроено и тестировано.

Тесты и приёмочные сценарии

  • Открыть главную страницу — ожидается HTTP 200.
  • Зарегистрировать нового пользователя и подтвердить почту.
  • Отправить тестовое письмо через SMTP и убедиться в доставке.
  • Проверить доступность статических файлов и изображений.

Короткий план действий для быстрой установки (playbook)

  1. Настроить сервер и DNS.
  2. Установить Docker (команды выше).
  3. Клонировать /var/discourse и запустить ./discourse-setup.
  4. Проверить docker ps и открыть сайт.
  5. Настроить резервное копирование.

Заключение

Поздравляем — вы установили Discourse на Ubuntu 22.04. Теперь можно настраивать категории, права доступа и темы сообщества. Регулярно проверяйте логи, обновляйте компоненты и делайте резервные копии.

Важно: если планируете крупное сообщество, рассмотрите выделение отдельной базы данных и вертикальное масштабирование (больше CPU/памяти, быстрые диски).

Ключевые ресурсы: официальный репозиторий https://github.com/discourse/discourse_docker и документация Discourse.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро