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
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
VK объявляет о приобретении 40% компании Intickets.ru (Интикетс). Это облачный сервис для контроля и управления продажей билетов на мероприятия. Сумма…
OpenAI готовится запустить собственную поисковую систему на базе ChatGPT. Информацию об этом публикуют западные издания. Ожидается, что новый поисковик может…
Центр управления связью общего пользования (ЦМУ ССОП) Роскомнадзора рекомендовал компаниям из реестра провайдеров ограничить доступ поисковых ботов к информации на российских сайтах.…
Apple возобновила переговоры с OpenAI о возможности внедрения ИИ-технологий в iOS 18, на основе данной операционной системы будут работать новые…
Конкурсный управляющий российской «дочки» Google подготовил 23 иска к участникам рекламного рынка. Общая сумма исков составляет 16 млрд рублей –…
Google завершил обновление основного алгоритма March 2024 Core Update. Раскатка обновлений была завершена 19 апреля, но сообщил об этом поисковик…