Установка Discourse в Ubuntu 14.04
Ubuntu | Комментировать запись
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
...
В частности изменить нужно следующие строки:
- Электронный адрес администратора. Выберите адрес администратора Discourse и укажите его в строке DISCOURSE_DEVELOPER_EMAILS. Этот адрес может быть совершенно не связан с вашим доменом Discourse. Пользователь, который зарегистрируется при помощи этого адреса, автоматически станет администратором Discourse.
- Доменное имя. В строке DISCOURSE_HOSTNAME укажите доменное имя, по которому будет доступен форум (например, discourse.example.com). Вместо домена можно использовать IP-адрес.
- Учётные данные SMTP. В качестве SMTP-сервера рекомендуется использовать Mandrill. Введите учётные данные в DISCOURSE_SMTP_ADDRESS, DISCOURSE_SMTP_PORT, DISCOURSE_SMTP_USER_NAME и DISCOURSE_SMTP_PASSWORD. При необходимости раскомментируйте эти строки. Подробнее о настройке почты для Discourse – здесь.
- Настройка памяти (опционально, рекомендуется для серверов с 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: Discourse, Docker, Git, Ubuntu 14.04