Шаг 1. Скачиваем Discourse
mkdir /usr/local/discourse
git clone https://github.com/discourse/discourse_docker.git /usr/local/discourse
cd /usr/local/discourse
Шаг 2. Меняем переносы строк c Windows на Unix
Если этого не сделать, то в дальнейшем при выполнении, например, команды ./launcher bootstrap app
получим сбой «bad interpreter».
Шаг 3. Указываем в настроечных файлах нашу корневую папку
По умолчанию настройки рассчитаны на папку /var/discourse
Мы же делаем установку в папку /usr/local/discourse.
find . -type f -exec sed -i 's/\/var\/discourse/\/usr\/local\/discourse/g' {} +
Шаг 4. Настраиваем контейнеры
Шаблон-пример для контейнера: samples/standalone.yml
На основе него создаём по контейнеру на каждый сайт:
containers/discourse-forum.ru.yml
Подробная инструкция: Настройка файла YML для сайта
Шаг 5. Выполняем ./launcher bootstrap для каждого контейнера
Формат команды:
./launcher bootstrap <название файла YML без расширения>
Например, если файл с настройками называется discourse-forum.ru.yml, то команда будет такой:
./launcher bootstrap discourse-forum.ru
Эта команда обрабатывается несколько минут.
В результате будет создана папка, которую Вы указали в настройках секции «volumes» (например, /usr/local/discourse/shared/discourse-forum.ru).
Больше внутри папки /usr/local/discourse ничего не изменится.
Шаг 5. Выполняем ./launcher start для каждого контейнера
Формат команды:
./launcher start <название файла YML без расширения>
Например, если файл с настройками называется discourse-forum.ru.yml, то команда будет такой:
./launcher start discourse-forum.ru
Шаг 6. Настраиваем nginx
nginx надо настроить таким образом, чтобы он переадресовывал запросы в контейнер Docker.
У меня для этого сайта настройки следующие:
upstream discourse_forum_ru {
server 127.0.0.1:4579;
}
server {
listen 80;
server_name discourse-forum.ru;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://discourse_forum_ru;
}
}
server {
server_name www.discourse-forum.ru;
rewrite ^ http://discourse-forum.ru$request_uri? permanent;
}
Обратите внимание, что в секции upstream надо указывать тот же порт, который Вы указывали в секции «expose» файла YML.
После такой настройки и перезапуска nginx Ваш новый сайт на движке Discourse должен уже работать!
Шаг 7. Доступ в административную часть
Discourse отсылает пароль первого администратора по адресу, указанному в графе DISCOURSE_DEVELOPER_EMAILS секции «env» файла YML.
Обратите внимание, что если Вы настроили параметры подключения к почтовому серверу неправильно — то письмо с паролем (как и все другие) к Вам не придёт.
Если Вы используете почтовый сервер Яндекса: то письмо с паролем Вы не получите в любом случае, это нормально. Вам надо сейчас (именно после установки Discourse) указать в качестве почтового адреса отправителя писем-уведомлений реально существующий адрес на домене сайта.
Затем надо добавить администратора вручную.