Этот документ представляет собой перевод страницы по адресу discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub.
Оригинальный текст перевода опубликован на: Discourse 云平台安装 - Discourse - iSharkFly. Приглашаем принять участие в обсуждении.
Установка на облачной платформе
Установка Discourse на облачной платформе обычно занимает не более 30 минут, даже если у вас нет никаких знаний о Rails или Linux shell. Ниже описан процесс установки через провайдера DigitalOcean, однако все шаги могут быть выполнены на любой облачной платформе, совместимой с Docker, а также на локальном сервере.
Если у вас нет даже 30 минут? Вы можете обратиться в сообщество Discourse за помощью в установке. Сообщество Discourse взимает единовременную плату в размере 150 долларов США. Нажмите здесь, чтобы приобрести услугу.
Подготовка перед установкой
Доменное имя
Discourse не может работать по IP-адресу. У вас должно быть доменное имя или поддомен для установки, например
example.com.
- Если у вас уже есть доменное имя, вы можете выбрать любой поддомен для установки, например
discourse.example.com,talk.example.comилиforum.example.com, чтобы развернуть ваш экземпляр Discourse. - Если у вас еще нет доменного имени, вы можете посетить сайт NameCheap для поиска подходящего домена или просто выполните поиск в Google по запросу лучшие регистраторы доменных имен, чтобы выбрать регистратора на свой вкус.
- У вас должен быть доступ к панели управления DNS. После покупки доменного имени вам также потребуется настроить DNS. Для вашего сайта Discourse вам нужно создать
A-запись в вашем DNS, которая будет указывать ваше доменное имя на определенный IP-адрес. Обычно это IP-адрес сервера, который вы приобрели на первом шаге.
Электронная почта
Система электронной почты играет критически важную роль в процессе создания пользователей в Discourse. Если вы не настроили SMTP-сервер электронной почты до установки Discourse, ваш установленный Discourse не сможет работать, и вы не сможете войти в систему (У ВАС БУДЕТ НЕИСПРАВНЫЙ САЙТ)!
- Если у вас уже есть свой SMTP-сервер электронной почты, вы можете сразу использовать имеющиеся у вас данные конфигурации.
- У вас еще нет сервера электронной почты? Посетите страницу Рекомендуемые серверы электронной почты для Discourse.
- Чтобы обеспечить корректную доставку ваших писем, вы должны добавить в DNS действительные записи SPF и DKIM. Обратитесь к документации вашего провайдера электронной почты, чтобы узнать, как настроить эту информацию.
Согласно нашему опыту, для установки Discourse необходимо наличие рабочего доменного имени и сервера электронной почты. В случае использования в Китае вы можете воспользоваться корпоративной почтой, предоставляемой Alibaba Cloud или Tencent Cloud. Обычно мы рекомендуем использовать зарубежные почтовые серверы, такие как AWS SES или MailGun — отличные сервисы, для которых может потребоваться международная кредитная карта для верификации. Однако этот шаг обязателен, иначе установка Discourse не будет завершена.
Установка
Создание нового облачного сервера
Создайте новый облачный сервер, например, на DigitalOcean. Конечно, вы также можете использовать серверы, предоставляемые другими платформами.
Если вы выберете сервер, расположенный внутри материкового Китая, скорее всего, вы столкнетесь с проблемами сети. В этот перевод добавлен отдельный раздел по решению проблем с сетью.
- По умолчанию текущая LTS-версия операционной системы Ubuntu отлично работает. Минимальные требования: 64-битная операционная система Linux с ядром, обновленным до последней версии.
- По умолчанию 1 ГБ оперативной памяти обычно достаточно для небольших сообществ Discourse. Однако для крупных сообществ мы рекомендуем 2 ГБ оперативной памяти.
- По умолчанию центр обработки данных в Нью-Йорке является хорошим географическим выбором для пользователей из Северной Америки и Европы. Если ваши пользователи в основном находятся в других регионах, выберите центр обработки данных, расположенный ближе к ним.
- Введите доменное имя
discourse.example.com, чтобы создать Droplet (так DigitalOcean называет свои серверы) в DigitalOcean. Конечно, вы также можете купить и использовать свое собственное доменное имя. Обычно для установки Discourse требуется настоящее доменное имя, установка по IP-адресу невозможна, поэтому мы рекомендуем сначала приобрести доменное имя или использовать поддомен вашего существующего домена.
Создание нового Droplet — это процесс, аналогичный созданию сервера на DigitalOcean или VPS/сервера на других платформах. После завершения создания вы получите электронное письмо с паролем пользователя root. Однако мы рекомендуем настроить использование SSH-ключей для повышения безопасности доступа к вашему серверу.
Доступ к вашему облачному серверу
Подключитесь к созданному серверу, используя IP-адрес и SSH, или, если вы используете Windows, установите Putty и выполните следующую команду для подключения:
ssh root@192.168.1.1
Если вы не настроили SSH-ключ, вы можете войти, используя пароль, указанный в электронном письме от DigitalOcean, или подключиться, используя ваш локальный SSH-ключ.
Установка Docker / Git (опционально)
sudo apt install docker.io
sudo apt install git
Если вы хотите использовать собственную версию Docker, вы можете установить её на свой новый сервер прямо сейчас. Если Docker не установлен по умолчанию на вашем сервере, утилита discourse-setup автоматически скачает и установит его с get.docker.com.
Установка Discourse
Склонируйте репозиторий официальной Docker-установки Discourse на локальный компьютер в директорию /var/discourse.
sudo -s
git clone https://github.com/discourse/discourse_docker.git /var/discourse
cd /var/discourse
Вам нужно выполнить только вышеуказанные команды. Для установки Discourse требуются права root.
Добавление зеркал Docker (только для серверов в материковом Китае)
Если ваш сервер находится в материковом Китае, на этапе работы с Docker вы, скорее всего, столкнетесь с проблемами. Попробуйте добавить зеркала Docker.
На примере Tencent Cloud: откройте файл /etc/docker/daemon.json в Linux с помощью вашего любимого текстового редактора и добавьте следующее содержимое. Вы можете заменить https://mirror.ccs.tencentyun.com на URL зеркала Docker, предоставляемый вашим провайдером облачных серверов:
{
"registry-mirrors": [
"https://mirror.ccs.tencentyun.com"
]
}
После добавления зеркал Docker перезапустите службу Docker командой sudo systemctl restart docker, чтобы применить изменения.
Редактирование конфигурации Discourse
Запустите утилиту настройки следующей командой:
./discourse-setup
Вам нужно будет ввести все параметры согласно подсказкам:
Hostname for your Discourse? [discourse.example.com]:
Email address for admin account(s)? [me@example.com,you@example.com]:
SMTP server address? [smtp.example.com]:
SMTP port? [587]:
SMTP user name? [user@example.com]:
SMTP password? [pa$word]:
Let's Encrypt account email? (ENTER to skip) [me@example.com]:
Введенные выше данные создадут файл app.yml для вашего экземпляра Discourse, который будет использоваться для конфигурации после завершения установки. Весь процесс запуска установки может занять 2–8 минут. Если возникнет ошибка установки или вам потребуется изменить конфигурацию после её завершения, вы можете снова запустить команду ./discourse-setup (эта команда перезагрузит существующий файл app.yml). Либо вы можете вручную отредактировать файл /containers/app.yml, а затем снова выполнить команду ./launcher rebuild app, иначе ваши изменения не вступят в силу.
Оптимизация для сетевого окружения Китая
Если ваш облачный сервер находится в материковом Китае, вы, скорее всего, столкнетесь с проблемами сети при выполнении команд ./discourse-setup или ./launcher rebuild app. Discourse уже подготовил зеркала для всех образов, кроме Docker. Вам нужно просто добавить одну строку в файл containers/app.yml в следующем месте:
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
- "templates/web.china.template.yml" # Добавьте эту строку для настройки зеркал пакетных менеджеров npm, rubygems и др.
Это решит проблему.
Запуск Discourse
После завершения начальной настройки ваш экземпляр Discourse должен быть доступен в браузере по настроенному вами доменному имени discourse.example.com.
Для серверов, расположенных в материковом Китае, возможно, вам сначала потребуется пройти процедуру ICP-регистрации (备案) согласно инструкциям вашего провайдера облачных услуг, прежде чем продолжить.
Регистрация новой учетной записи администратора
Зарегистрируйте учетную запись администратора, используя адрес электронной почты, указанный вами на этапе начальной настройки.
(Если вы не можете зарегистрировать учетную запись администратора, проверьте логи по пути /var/discourse/shared/standalone/log/rails/production.log или ознакомьтесь со списком проверки проблем с электронной почтой.)
После регистрации учетной записи администратора запустится мастер настройки, который проведет вас через процесс конфигурации вашего экземпляра Discourse.
После завершения всех шагов мастера настройки вы увидите темы для сотрудников (Staff topics) и READ ME FIRST: Admin Quick Start Guide. Этот мастер настройки содержит рекомендации по дальнейшей конфигурации и инструкции по кастомизации вашего экземпляра Discourse.
Обслуживание после установки
- Мы настоятельно рекомендуем включить автоматические обновления безопасности вашей операционной системы. В Ubuntu используйте команду
dpkg-reconfigure -plow unattended-upgrades. В CentOS/RHEL используйте пакетyum-cron. - Если вы входите в операционную систему с помощью пароля, а не SSH-ключа, убедитесь, что вы используете надежный пароль. В Ubuntu установите пакет
apt-get install libpam-cracklib. Мы рекомендуем использоватьfail2ban, который будет блокировать IP-адреса, совершившие 3 неудачные попытки входа, на 10 минут.- Ubuntu:
apt-get install fail2ban - CentOS/RHEL:
sudo yum install fail2ban(требуется EPEL)
- Ubuntu:
- Если вы хотите установить брандмауэр по умолчанию, для Ubuntu включите ufw, а для CentOS/RHEL 7 и более поздних версий используйте
firewalld.
Когда выйдет новая версия Discourse, вы получите уведомление по электронной почте. Всегда обновляйте свой экземпляр Discourse до последней версии, чтобы исправить все проблемы безопасности. You will get email reminders as new versions of Discourse are released. Please stay current to get the latest features and security fixes. Чтобы обновить Discourse до последней версии, откройте в браузере /admin/upgrade и нажмите кнопку обновления.
Команда launcher, находящаяся в директории /var/discourse, используется для выполнения некоторых системных задач обслуживания:
Usage: launcher COMMAND CONFIG [--skip-prereqs] [--docker-args STRING]
Commands:
start: Start/initialize a container (Запуск/инициализация контейнера)
stop: Stop a running container (Остановка работающего контейнера)
restart: Restart a container (Перезапуск контейнера)
destroy: Stop and remove a container (Остановка и удаление контейнера)
enter: Use nsenter to get a shell into a container (Использование nsenter для доступа к оболочке внутри контейнера)
logs: View the Docker logs for a container (Просмотр логов Docker для контейнера)
bootstrap: Bootstrap a container for the config based on a template (Инициализация конфигурации контейнера на основе шаблона)
rebuild: Rebuild a container (destroy old, bootstrap, start new) (Пересборка контейнера: удаление старого, инициализация и запуск нового)
cleanup: Remove all containers that have stopped for > 24 hours (Удаление всех контейнеров, остановленных более чем на 24 часа)
Options:
--skip-prereqs Don't check launcher prerequisites (Пропустить проверку предварительных требований для запуска)
--docker-args Extra arguments to pass when running docker (Дополнительные аргументы, передаваемые при запуске docker)





