Discourse
Обновлено 6 августа 2019
Введение
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
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-форум будет недоступен.