🇨🇳 Установка окружения разработки Discourse на Ubuntu

:warning: Данное руководство предназначено только для настройки среды разработки Discourse. Если вам необходимо установить Discourse в производственной среде, перейдите на страницу: Install Discourse in production with the official supported instructions.

:information_source: Для получения оригинального текста на английском языке о настройке среды разработки см. страницу: Set up a local Discourse Development Environment?.


Это руководство предназначено исключительно для настройки разработки в среде Ubuntu, поскольку Discourse написан на Ruby, а настройка среды разработки Ruby в Ubuntu является наиболее простой. Кроме того, официальная рекомендация для производственной среды Discourse — использование Ubuntu. Хотя наше сообщество работает в среде RHEL без проблем благодаря использованию контейнеров Docker, если вы планируете разрабатывать для Discourse, рекомендуется использовать среду Ubuntu.

Если вы используете Windows, вам необходимо установить среду WSL. WSL — это среда на базе Ubuntu, предоставляемая Windows, которая в основном решает проблемы разработки Linux-приложений в Windows.

В этой статье предполагается, что вы еще не установили среды Ruby/Rails/Postgres/Redis в Ubuntu. Давайте приступим к настройке среды разработки!

Хотя данное руководство по разработке предполагает использование среды разработки Ubuntu, его можно применять к любой Linux-системе на базе дистрибутивов Debian.

Это руководство по разработке было проверено на Ubuntu 18, и для настройки среды разработки не требовались дополнительные шаги.

:exclamation: Из-за различий в использовании сред разработки на базе Ubuntu/Debian, при разработке на Ubuntu/Debian вам может потребоваться ознакомиться со следующей информацией:

Информация об установке тестовой среды Discourse на Ubuntu 20.04 и более новых версиях

По умолчанию в Ubuntu 20.04 и более новых версиях устанавливается OpenSSL 3.0.2. Возможно, потребуется скомпилировать более раннюю версию OpenSSL и заменить её на установленную (официально рекомендуется использовать OpenSSL 1.1.1n). Кроме того, проверьте установленную версию Ruby, используя команду ruby --version. На данный момент Discourse использует Ruby 2. Если вы используете Ruby 3.x или более новую версию, вам необходимо понизить версию Ruby. Официально рекомендуется использовать инструмент управления версиями Ruby для понижения версии. Для текущей среды выполнения Discourse официальная рекомендация — Ruby 2.7.6 как наиболее подходящая версия. Дополнительные сведения см. на странице: Notes about Installing Discourse on Ubuntu 20.04 - #2 by SaraDev.

Информация об установке тестовой среды Discourse на версиях Ubuntu ниже 20.04

Следующая часть была добавлена пользователем @pfaffman 22.05.16. Возможна эта ошибка, но вы можете с ней не столкнуться.

ПРИМЕЧАНИЕ: См. страницу: Failed to build ruby 2.7.5 on ubuntu 22.04 · rbenv/ruby-build · Discussion #1940 · GitHub для получения соответствующей информации.

Конец добавлений от @pfaffman.

Согласно нашему опыту тестирования, в версии Ubuntu 22 могут возникать проблемы с компиляцией и отсутствием пакетов. Мы пока завершили настройку локальной среды разработки только на Ubuntu 20.04.

Установка зависимостей Discourse

Как обычный пользователь, вы можете выполнить следующую команду в консоли: этот скрипт. Эта команда поможет быстро настроить Rails в вашей локальной среде разработки.

Команда для запуска:

bash <(wget -qO- https://raw.githubusercontent.com/discourse/install-rails/master/linux)

Эта команда установит следующие пакеты в вашу локальную систему:

Если в вашей локальной операционной системе уже установлены некоторые программы или вы не хотите устанавливать все перечисленные, обратитесь к содержимому скрипта и выберите программы, которые не нужно устанавливать. Приведенный скрипт установки установит все необходимые для работы Discourse программы, которые обеспечат поддержку его функционирования.

После завершения установки всех зависимостей Discourse можно приступать к установке самого Discourse.


На изображении показан процесс установки в Ubuntu. Весь процесс установки программ занимает довольно много времени, возможно более 5 минут, в зависимости от вашей системы.

Клонирование (Clone) Discourse

Склонируйте Discourse в папку ~/discourse:

git clone https://github.com/discourse/discourse.git ~/discourse

~ обозначает текущую домашнюю папку, то есть программа Discourse будет скопирована в вашу домашнюю папку.

Поскольку мы используем подсистему WSL, фактически файлы будут клонированы на наш диск D.

Настройка (Setup) базы данных

Создайте пользователя с именем, совпадающим с именем пользователя вашей системы Ubuntu:

sudo -u postgres createuser -s "$USER"

Если при выполнении вышеуказанной команды появляется ошибка:

createuser: error: could not connect to database template1: could not connect to server: No such file or directory

обратитесь к странице: iSharkFly - 飞鲨.

Запуск Discourse

Перейдите в каталог клонирования Discourse:

cd ~/discourse

Установите необходимые gems:

source ~/.bashrc
bundle install

Также установите необходимые зависимости JS:

yarn install

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

bundle exec rake db:create 
bundle exec rake db:migrate
RAILS_ENV=test bundle exec rake db:create db:migrate

Если при выполнении возникают ошибки, обратитесь к странице: iSharkFly - 飞鲨.

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

bundle exec rake autospec

Ваш проект должен пройти все тесты.

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

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

bundle exec rails server

После завершения вышеуказанных шагов установки вы должны получить доступ к локально установленному Discourse по адресу http://localhost:3000.

Начиная с версии Discourse 2.5+, для локальной среды разработки обязательным является использование EmberCLI:

Если вы попытаетесь получить доступ через интерфейс к порту 3000, вы увидите следующее сообщение:


В терминале консоли перейдите в папку (cd ~/discourse) и выполните:

bin/ember-cli

Теперь вы можете просмотреть вашу локальную установку Discourse по адресу http://localhost:4200.

:warning: Обратите внимание, что оба сервера должны быть запущены одновременно; ember-cli получает доступ к порту 3000 через обратный прокси.

Создание новой учетной записи администратора

Перед входом в среду разработки необходимо создать учетную запись администратора. Выполните следующую команду:

RAILS_ENV=development bundle exec rake admin:create

Следуйте инструкциям командной строки для создания учетной записи администратора.

Вам потребуется ввести адрес электронной почты и пароль.

Настройка почты

Запустите MailHog:

mailhog

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

Если вы хотите разрабатывать плагины для Discourse, обратитесь к руководству на странице: Developing Discourse Plugins - Part 1 - Create a basic plugin.


2 лайка

Здравствуйте, о каком именно пользователе системы Ubuntu идёт речь?

Вам не нужно искать это самостоятельно; смысл этой команды заключается в том, чтобы установить переменную окружения $USER равной имени пользователя. Просто выполните её. Это предложение объясняет, что делает команда.

3 лайка

Да, спасибо.

Именно так.

1 лайк

Хорошо, спасибо за ваш терпеливый ответ.

Удивительно, что перевели на китайский, специально ставлю лайк.