Discourse

Обновлено 6 августа 2019

Nextcloud

Введение

Discourse - это интернет-форум с открытым исходным кодом и программное обеспечение для управления списком рассылки.

Заметка

Настраиваемый Docker-контейнер использует порты 80 и 443. Если установка Discourse производится без отдельного LXC-контейнера, убедитесь, что эти порты не использует другое программное обеспечение.

Подготовка LXC-контейнера

Мы рекомендуем выполнить установку Discourse в отдельном контейнере, настроив его согласно инструкции.

Установка Dicourse в Docker-контейнер

Установите Docker:

emerge app-emulation/docker

Запустите Docker и добавьте его в автозагрузку:

/etc/init.d/docker start

rc-update add docker

Склонируйте исходный код для подготовки Docker-образа:

mkdir /var/discourse

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

cd /var/discourse

./discourse-setup
Ports 80 and 443 are free for use
'samples/standalone.yml' -> 'containers/app.yml'
Found 134GB of memory and 8 physical CPU cores
setting db_shared_buffers = 4096MB
setting UNICORN_WORKERS = 8
containers/app.yml memory parameters updated.

Hostname for your Discourse? [discourse.example.com]: discourse.example.org
Email address for admin account(s)? [me@example.com,you@example.com]: admin@example.org
SMTP server address? [smtp.example.com]: mail.example.org
SMTP port? [587]: 25
SMTP user name? [user@example.com]: ''
SMTP password? [pa$$word]: ''
Optional email address for setting up Let's Encrypt? (ENTER to skip) [me@example.com]: 

Does this look right?

Hostname      : discourse.example.org
Email         : admin@example.org
SMTP address  : mail.example.org
SMTP port     : 25
SMTP username : ''
SMTP password : ''

ENTER to continue, 'n' to try again, Ctrl+C to exit:

Configuration file at  updated successfully!

DISCOURSE_SMTP_USER_NAME not present
DISCOURSE_SMTP_PASSWORD left at incorrect default of 

Sorry, these containers/app.yml settings aren't valid -- can't continue!
If you have unusual requirements, edit containers/app.yml and then: 
./launcher bootstrap app

Исправьте app.yml для исключения использования пользователя и пароля почтового сервера:

containers/app.yml

DISCOURSE_SMTP_USER_NAME: ''
DISCOURSE_SMTP_PASSWORD: ''

Добавьте использование сертификата SSL:

containers/app.yml

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"
  - "templates/web.ssl.template.yml"

Запустите подготовку контейнера Docker:

./launcher bootstrap app

Получение сертификата Let's Encrypt

Получите сертификат домена discourse.example.org согласно руководству.

Скопируйте сертификат SSL и ключ для использования в контейнере:

cp fullchain.pem /var/discourse/shared/standalone/ssl/ssl.crt

cp privkey.pem /var/discourse/shared/standalone/ssl/ssl.key

Запустите контейнер Discourse

./launcher start app

Откройте в браузере сайт https://discourse.example.org и завершите настройку.

Обновление Discourse

Обновите исходный код для подготовки образа Docker:

cd /var/discourse

git pull

Пересоберите Docker-контейнер с Discourse

./launcher rebuild app

Предупреждение

Пересборка Docker-контейнера занимает продолжительное время, на протяжении которого Discourse-форум будет недоступен.