Установка Discourse

Установка DISCOURSE под Ubuntu 16.04

Требования

  1. Сервер Ubuntu 16.04
  2. Пользователь с доступом к sudo.
  3. Предварительно установленное приложение Docker.
  4. SMTP-сервер.
  5. Рекомендованный объем оперативки – 2 Гб.

Если у вас 1 Гб оперативной памяти, для корректной работы Discourse нужно создать своп-файл. Своп рекомендуется использовать на обычных жёстких дисках. На работе SSD-накопителей своп сказывается негативно и может привести к ухудшению производительности базового оборудования.

Загрузка Discourse

Чтобы начать загрузку Discourse, нужно развернуть оболочку root.

sudo -s

Создайте каталог /var/discourse для хранения всех файлов Discourse.

mkdir /var/discourse

Клонируйте официальный образ Discourse в этот каталог:
git clone https://github.com/discourse/discourse_docker.git /var/discourse

Настройка и запуск Discourse

Откройте каталог /var/discourse:

cd /var/discourse

Запустите встроенный сценарий настройки:

./discourse-setup

Программа задаст вам несколько вопросов. Ответьте на них.
Если в дальнейшем вам понадобится изменить или исправить эти параметры, отредактируйте файл /containers/app.yml и запустите ./launcher rebuild app. В противном случае изменения не вступят в силу.

Настраиваем nginx

nginx надо настроить таким образом, чтобы он переадресовывал запросы в контейнер Docker.
У меня для этого сайта настройки следующие:

upstream app {
    server 127.0.0.1:4579;
}
server {
    listen 80;
    server_name toxu.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://app;
    }
}
server {
    server_name www.toxu.ru;
    rewrite ^ http://toxu.ru$request_uri? permanent;
}

Обратите внимание, что в секции upstream надо указывать тот же порт, который Вы указывали в секции «expose» файла YML. После такой настройки и перезапуска nginx Ваш новый сайт на движке Discourse должен уже работать!

Посетите домен где установлен Discourse в браузере. И создайте пароль админ. аккаунт.

См: Установка Discourse под Windows 7

2 симпатии

Еще важное в Discourse, вот что:

Перезапуск Discourse в контейнере Docker

./launcher stop <имя приложения> && ./launcher start <имя приложения>

Шаг 1 (выполняется только перед первым удалением)

apt-get autoclean
apt-get autoremove

Шаг 2 В корневой папке Discourse выполняем:

./launcher cleanup

5 симпатий

Важное добавление.
Возможно, пригодится…

gzip  on;
gzip_http_version 1.0;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 9;
gzip_types
    application/atom+xml
    application/javascript
    application/json
    application/rss+xml
    application/vnd.ms-fontobject
    application/x-font-ttf
    application/x-web-app-manifest+json
    application/xhtml+xml
    application/xml
    font/opentype
    image/svg+xml
    image/x-icon
    text/css
    text/plain
    text/x-component;
gzip_disable "msie6";
4 симпатии

Будет полезно посмотреть имена инфу о контейнерах в

docker ps -a

Для настройки nginx, если в Discourse несколько контейнеров лишние можно удалить (команда выше).

4 симпатии

Перевод сайта на https

Для движка Discourse это услуга бесплатно.

Что надо сделать для перевода?
1. В файл: containers/app.yml добавить недостающие шаблоны:

templates:

  • “templates/web.template.yml”
  • “templates/web.ssl.template.yml”
  • “templates/web.letsencrypt.ssl.template.yml”

2. В этот же файл добавить порт: 443

expose:

  • “80:80”
  • “443:443”

3. В этот же файл добавить свой Email для привязки

LETSENCRYPT_ACCOUNT_EMAIL: ‘you@example.com’

4. Пересобрать контейнер

./launcher rebuild имя_контейнера

Далее, посмотреть какие порты есть в nginx и есть ли http:// - изменить.
Рестарт nginx

Готово!

5 симпатий

Данная документация есть по ссылкам выше, на официальном сайте поддержки.

4 симпатии

А разве в базе принудительно не надо ни чего менять? Там данные домена после 1 пункта изменятся?

1 симпатия

Сообщение перенесено в новую тему: Как на сервер установить Ruby on Rails?

Можно чуть подробнее описать переход на https. Что это должен быть Email для привязки? Свою любую почту указать можно или что при установке почта админа в discourse? Или еще какая то…
Почитал немного на офсайте по https… что то дофига проблем с картинками, с социальной авторизацией, с SDN. Хотелось бы получить более исчерпывающую информацию по этому вопросу.

Многие сталкиваются при установки Discourse, с изначальной ошибкой занесение данных о SMTP. В результате будучи администратором, они не могут получить письмо, ссылку на активации учетной записи и приступить к дальнейшей настроки платформы.

Выход:

./launcher enter app

Затем выполняем консольную команду для контейнера Discourse:

rake admin:create

5 симпатий

Перенос домен

1. изменить все упоминания о старом домене тут: /admin/site_setting
2. Изменить данные тут: app.yml
3. Изменить данные в Nginx
4. Выполнить команду: ./launcher rebuild app

Сайт работает на новом домене.

7 симпатий

Меня интересует документация по Discourse API.
Т.к. назрели вопросы для сторонних разработчиков.

5 симпатий