Это руководство было протестировано на чистой установке Fedora 31 и 33, но может подойти и для более старых версий, которые также используют dnf как инструмент управления пакетами. Это не официальное руководство, но оно может быть полезно другим разработчикам, использующим Fedora. Оно в значительной степени основано на руководстве по разработке для Ubuntu, с изменениями, учитывающими различия в пакетах для dnf. Предполагается, что у вас ещё не установлены ни один из перечисленных пакетов, хотя большинство из них будут пропущены инструментами, если они уже установлены.
Если вы планируете установить Discourse для продакшн-среды, лучше воспользоваться инструкциями по установке через Docker на GitHub.
Установка необходимых системных и разработческих пакетов
sudo dnf update
sudo dnf install -y "@development-tools" git rpm-build zlib-devel ruby-devel readline-devel libpq-devel ImageMagick sqlite sqlite-devel nodejs npm curl gcc g++ bzip2 openssl-devel libyaml-devel libffi-devel zlib-devel gdbm-devel ncurses-devel optipng pngquant jhead jpegoptim gifsicle oxipng
Установка необходимых npm-пакетов
sudo npm install -g svgo pnpm
Установка и настройка PostgreSQL
sudo dnf install postgresql-server postgresql-contrib
sudo postgresql-setup --initdb --unit postgresql
sudo systemctl enable postgresql
sudo systemctl start postgresql
sudo -u postgres -i createuser -s $USER
Установка и настройка Redis
sudo dnf install redis
sudo systemctl enable redis
sudo systemctl start redis
Установка rbenv, ruby-build и Ruby
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
cd ~/.rbenv && src/configure && make -C src
~/.rbenv/bin/rbenv init
printf 'export PATH="$HOME/.rbenv/bin:$PATH"\n' >> ~/.bashrc
printf 'eval "$(rbenv init - --no-rehash)"\n' >> ~/.bashrc
source ~/.bashrc
git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build
# подтвердите корректность установки
curl -fsSL https://github.com/rbenv/rbenv-installer/raw/main/bin/rbenv-doctor | bash
rbenv install 2.7.1
rbenv global 2.7.1
rbenv rehash
Установка зависимостей Ruby
gem update --system
gem install bundler mailcatcher rails
Клонирование кода Discourse
git clone https://github.com/discourse/discourse.git ~/discourse
cd ~/discourse
Установка зависимостей Discourse
bundle install
pnpm install
Создание необходимых баз данных и загрузка схемы
bundle exec rake db:create db:migrate
RAILS_ENV=test bundle exec rake db:create db:migrate
Проверка установки путём запуска тестов
bundle exec rake autospec
Запуск приложения
bundle exec rails server
Теперь вы должны увидеть страницу настройки Discourse по адресу http://localhost:3000.
Для дальнейшей настройки ознакомьтесь с существующими официальными руководствами по установке.
Этот документ находится под контролем версий — предлагайте изменения на GitHub.