Установка Discourse в Ubuntu 14.04

Discourse – это открытая платформа для коммуникаций и совместной работы. Данное руководство поможет установить Discourse на виртуальный выделенный сервер Ubuntu 14.04.

Требования

  • Предварительно настроенный 64-битный сервер Ubuntu 14.04.
  • Команда Discourse рекомендует использовать 1 Гб RAM для маленьких сообществ и минимум 2 Гб RAM для больших сообществ. В таких случаях в системах, использующих обычные жесткие диски, можно настроить своп. Однако своп на SSD-накопителях может со временем ухудшить работу оборудования. Чтобы добавить своп на Ubuntu 14.04, читайте эту статью.
  • Доменное имя или IP-адрес.
  • Не-root пользователь с доступом к команде sudo.
  • Бесплатный аккаунт Mandrill и учётные данные SMTP.

1: Установка Git

Открытая система управления версиями Git понадобится для загрузки исходных файлов Discourse.

Прежде всего, следует обновить систему.

sudo apt-get update
sudo apt-get upgrade

После этого установите Git:

sudo apt-get install git

2: Установка Docker

После этого нужно установить Docker. Эта программа позволит поместить Discourse в изолированное окружение.

Примечание: Docker – это открытый проект, предназначенный контейнеризации и запуска приложений. Больше информации о Docker можно найти здесь.

Инсталлятор Docker можно найти по этой ссылке:

wget -qO- https://get.docker.io/ | sh

Добавьте учётную запись не-root пользователя в группу docker. Тогда этот пользователь сможет запускать контейнеры Docker:

sudo usermod -aG docker 8host

Выйдите из системы и войдите снова, чтобы обновить настройки:

exit
su - 8host

3: Загрузка Discourse

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

sudo mkdir /var/discourse

Затем клонируйте образ Discourse в этот каталог:

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

4: Настройка Discourse

Теперь нужно выполнить начальную настройку Discourse.

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

cd /var/discourse

Скопируйте файл samples/standalone.yml в каталог containers под названием app.yml:

sudo cp samples/standalone.yml containers/app.yml

Отредактируйте параметры Discourse в файле app.yml:

sudo nano containers/app.yml

Найдите раздел env и укажите в нём свой адрес электронной почты, домен и учётные данные SMTP.

...
env:
LANG: en_US.UTF-8
## TODO: How many concurrent web requests are supported?
## With 2GB we recommend 3-4 workers, with 1GB only 2
#UNICORN_WORKERS: 3
##
## TODO: List of comma delimited emails that will be made admin and developer
## on initial signup example 'user1@example.com,user2@example.com'
DISCOURSE_DEVELOPER_EMAILS: 'me@example.com'
##
## TODO: The domain name this Discourse instance will respond to
DISCOURSE_HOSTNAME: 'discourse.example.com'
##
## TODO: The mailserver this Discourse instance will use
DISCOURSE_SMTP_ADDRESS: smtp.mandrillapp.com         # (mandatory)
DISCOURSE_SMTP_PORT: 587                        # (optional)
DISCOURSE_SMTP_USER_NAME: login@example.com      # (optional)
DISCOURSE_SMTP_PASSWORD: 9gM5oAw5pBB50KvjcwAmpQ               # (optional)
##
## The CDN address for this Discourse instance (configured to pull)
#DISCOURSE_CDN_URL: //discourse-cdn.example.com
...

В частности изменить нужно следующие строки:

  1. Электронный адрес администратора. Выберите адрес администратора Discourse и укажите его в строке DISCOURSE_DEVELOPER_EMAILS. Этот адрес может быть совершенно не связан с вашим доменом Discourse. Пользователь, который зарегистрируется при помощи этого адреса, автоматически станет администратором Discourse.
  2. Доменное имя. В строке DISCOURSE_HOSTNAME укажите доменное имя, по которому будет доступен форум (например, discourse.example.com). Вместо домена можно использовать IP-адрес.
  3. Учётные данные SMTP. В качестве SMTP-сервера рекомендуется использовать Mandrill. Введите учётные данные в DISCOURSE_SMTP_ADDRESS, DISCOURSE_SMTP_PORT, DISCOURSE_SMTP_USER_NAME и DISCOURSE_SMTP_PASSWORD. При необходимости раскомментируйте эти строки. Подробнее о настройке почты для Discourse – здесь.
  4. Настройка памяти (опционально, рекомендуется для серверов с 1 Гб RAM). В разделе env найдите строку db_shared_buffers и укажите в ней 128MB. Измените значение строки UNICORN_WORKERS на 2. Это оптимизирует производительность сервера.

db_shared_buffers: "128MB"
UNICORN_WORKERS: 2

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

Сохраните и закройте app.yml.

5: Запуск Discourse

Для начала нужно обеспечить программе Docker доступ ко всем необходимым внешним ресурсам. Откройте настройки

Docker в файле /etc/default/docker:

sudo nano /etc/default/docker

Раскомментируйте DOCKER_OPTS, чтобы программа Docker использовала DNS Google.

...
# Use DOCKER_OPTS to modify the daemon startup options.
DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4"
...

Перезапустите Docker:

sudo service docker restart

Примечание: Если не внести поправку в настройки DNS, при запуске может возникнуть ошибка:

fatal: unable to access 'https://github.com/SamSaffron/pups.git/': Could not resolve host: github.com"

Затем соберите Discourse и инициализируйтесь при помощи учётных данных, установленных в предыдущем разделе. Перейдите в каталог:

cd /var/discourse

Запустите процесс:

sudo ./launcher bootstrap app

Выполнение данной команды займёт около 8 минут. Если команда предложит создать SSH-ключ, нажмите Y.

После этого запустите Discourse:

sudo ./launcher start app

Установка Discourse завершена.

6: Доступ к Discourse

Откройте домен или IP-адрес, внесённый ранее в настройки Discourse, в браузере. На экране появится приветственная страница Discourse.

Если вместо этого браузер выдаёт ошибку 502 Bad Gateway, подождите пару минут и обновите страницу.

7: Создание учётной записи администратора

Чтобы зарегистрировать новый аккаунт Discourse, нажмите кнопку Sign Up. Введите адрес электронной почты, указанный в строке DISCOURSE_DEVELOPER_EMAILS. После этого аккаунт автоматически получит права администратора.

Зарегистрировав аккаунт, откройте его. На экране появятся Staff topics и Admin Quick Start Guide. В этом мануале можно найти рекомендации по настройке и использованию Discourse.

Чтобы получить доступ к панели администратора, добавьте в ссылку раздел /admin.

Если вы не получили подтвердительного письма при создании аккаунта и не можете зарегистрировать аккаунт администратора, пожалуйста, обратитесь к мануалу по этой ссылке.

Также можно создать аккаунт администратора при помощи консоли (инструкции – здесь), однако это может стать причиной простоя сайта.

Чтобы обновить Discourse, откройте /admin/upgrade и следуйте инструкциям.

Tags: , , ,

Добавить комментарий