В статье рассматриваются установка discourse в среде разработки, затем в среде эксплуатации, запуск sidekiq и начальная настройка (кроме настройки электронной почты, необходимой для активации аккаутнов по е-мэйл и рассылки уведомлений, а также https).

Установка в среде разработки

1. Подключаемся к СУБД PostgreSQL с помощью psql -U postgres и создаем базу данных discourse_development и пользователя discourse_user, которому даем права доступа к этой базе данных.

create database discourse_development;
create user discourse_user;
alter user discourse_user with encrypted password 'your_preferred_password';
alter database discourse_development owner to discourse_user;

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

c discourse_development;
create extension hstore;
create extension pg_trgm;
q

2. Клонируем файлы discourse. Если у Вас версия PostgreSQL ниже 12 (psql –version), откатываем их к версии 2.4.0.beta11, которая вышла 13 февраля 2020 года (если я правильно прочитал git log).

Для этого. во-первых, есть команда

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

Для отката к февральской версии вводим

git checkout 2136d4b5d535ca1fb83bd015502741d53301a61f

3. Устанавливаем гемы командой bundle install, предварительно удалив/переименовав Gemfile.lock

4. В config/database.yml добавляем значения username и password, а также строки encoding: utf8 и template: template0 и запускаем bundle exec rake db:migrate.

5. Запускаем веб-сервер для Rails командой

UNICORN_PORT=3002 bundle exec unicorn -c config/unicorn.conf.rb

6. Настраиваем обратный прокси-сервер nginx, добавляем в config/environments/development.rb строку config.hosts << "discourse.domain.name"


Скриншот 1. Содержимое файла /etc/nginx/sites-enabled/discourse.conf

Прим.1 Строки location /assets/ {… и location /images/ { … нужны для запуска в среде эксплуатации, для запуска в среде разработки их добавлять вообще-то еще рано.

Перезапускаем nginx командой /etc/init.d/nginx restart

7. Перезапускаем unicorn: для остановки вводим kill -QUIT `cat tmp/pids/unicorn.pid`, для повторного запуска вводим команду из п.5. Готово.

Установка в среде разработки

1. Создаем базу данных аналогичным образом, только имя базы данных указываем не discourse_development, а discourse.

2. Создаем файл config/discourse.conf командой

cp config/discourse_defaults.conf config/discourse.conf

Затем указываем в нем значения db_name, db_username, db_password, а также hostname (discourse, discourse_user, your_preferred_password, discourse.domain.name соответственно).

3. Устанавливаем необходимые пакеты командой

sudo apt install optipng pngquant jhead jpegoptim gifsicle 

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

RAILS_ENV=production bundle exec rake db:migrate 

4. Устанавливаем еще один необходимый для следующей команды пакет с помощью

sudo apt install brotli

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

RAILS_ENV=production bundle exec rake assets:precompile

5. Добавляем строки location /assets/ { … и location /images/ { … (см. скриншот 1) в конфигурационный файл nginx, если их там еще нет и перезапускаем nginx.

6. Остановка unicorn (см. команду выше) и запуск его в среде эксплуатации командой

RAILS_ENV=production UNICORN_PORT=3002 bundle exec unicorn -c config/unicorn.conf.rb

Запуск sidekiq

1. Создаем учетную запись администратора командой

RAILS_ENV=production bundle exec rake admin:create

и перезапускаем unicorn.

2. Для запуска sidekiq в файле config/sidekiq.yml копируем строки конфигурации для среды разработки для среды эксплуатации (см. скриншот 2) и добавляем в config/environments/production.rb строку (в случае когда в ОС установлена Redis 3.0.6)

Redis.exists_returns_integer = false


Скриншот 2.

После этого запускаем sidekiq командой

bundle exec sidekiq -C config/sidekiq.yml

3. Проверяем существование запущенного процесса sidekiq командой

ps aux | grep sidekiq

Начальная настройка

Открыв в браузере адрес Вашего форума и авторизовавшись на нем с учетными данными из п.1 части «Запуск sidekiq», Вы можете увидеть темы, посвященные начальной настройке, и прочитать их.


Скриншот 3. После авторизации в discourse

Используемая при написании статьи инструкция:

Install Discourse Forum Software on Ubuntu 18.04 Without Docker

Let’s block ads! (Why?)

Read More

Recent Posts

VK купила 40% билетной платформы Intickets.ru

VK объявляет о приобретении 40% компании Intickets.ru (Интикетс). Это облачный сервис для контроля и управления продажей билетов на мероприятия. Сумма…

2 дня ago

OpenAI готовится запустить поисковую систему на базе ChatGPT

OpenAI готовится запустить собственную поисковую систему на базе ChatGPT. Информацию об этом публикуют западные издания. Ожидается, что новый поисковик может…

2 дня ago

Роскомнадзор рекомендовал хостинг-провайдерам ограничить сбор данных с сайтов для иностранных ботов

Центр управления связью общего пользования (ЦМУ ССОП) Роскомнадзора рекомендовал компаниям из реестра провайдеров ограничить доступ поисковых ботов к информации на российских сайтах.…

3 дня ago

Apple возобновила переговоры с OpenAI и Google для интеграции ИИ в iPhone

Apple возобновила переговоры с OpenAI о возможности внедрения ИИ-технологий в iOS 18, на основе данной операционной системы будут работать новые…

1 неделя ago

Российская «дочка» Google подготовила 23 иска к крупнейшим игрокам рекламного рынка

Конкурсный управляющий российской «дочки» Google подготовил 23 иска к участникам рекламного рынка. Общая сумма исков составляет 16 млрд рублей –…

1 неделя ago

Google завершил обновление основного алгоритма March 2024 Core Update

Google завершил обновление основного алгоритма March 2024 Core Update. Раскатка обновлений была завершена 19 апреля, но сообщил об этом поисковик…

1 неделя ago