Найти тему
Долина Троллей

Как установить Discourse на Ubuntu 16.04 и запустить его в среде production

Все-таки bundle exec rake db:create упорно не хочет работать из-за ошибки permission denied to create database. Ok. Инструкция по ручному созданию базы данных была в статье про запуск в среде development. Теперь по ней имя создаваемой базы данных будет именно discourse. Далее, параметры доступа к базе данных production правим в discourse.conf, а не в database.yml. Это значения db_name, db_username, db_password (два крайних не имеют значений по умолчанию). Также в discourse.conf задаем значение hostname, предварительно создав этот файл с помощью cp config/discourse_defaults.conf config/discourse.conf

2. Затем делаем RAILS_ENV=production bundle exec rake db:migrate. В результате эта команда также у меня выдает `optipng` not found и т.д.

Скриншот 1. Что not found
Скриншот 1. Что not found

Ок, делаем sudo apt install optipng pngquant jhead jpegoptim gifsicle.

3. Теперь в ответ на RAILS_ENV=production bundle exec rake assets:precompile может быть ошибка Not such file or directory - brotli. Устанавливаем sudo apt install brotli и повторяем компиляцию ассетов.

Скриншот 2. Не я первый
Скриншот 2. Не я первый

4. Проверяем nginx, чтобы там для нашего домена был указан верный корневой каталог и чтобы nginx обрабатывал (serve) статические файлы в каталогах /assets/ и /images/. Перезапуск nginx в случае изменений его конфигурации.

5. Наконец, запуск сервера unicorn в среде production.

Скриншот 3. Готово
Скриншот 3. Готово