Как установить NodeBB с MongoDB и прокси Nginx на AlmaLinux 9

NodeBB – это программное обеспечение для форумов с открытым исходным кодом, основанное на Node.js, которое обеспечивает современное и отзывчивое решение для онлайн-сообществ. Работающий под управлением Ubuntu Linux, NodeBB использует надежность и гибкость операционной системы для обеспечения высокой производительности и масштабируемости. Для управления базами данных используется комбинация MongoDB и Redis, что позволяет эффективно обрабатывать большие объемы пользовательского контента.

NodeBB известен своими уведомлениями в реальном времени, легкой интеграцией с различными платформами социальных сетей и обширной экосистемой плагинов, позволяющей администраторам настраивать свои форумы под конкретные нужды. Кроме того, его дизайн, ориентированный на мобильные устройства, обеспечивает последовательный и привлекательный пользовательский опыт на всех устройствах. Стабильность и безопасность Ubuntu дополняют NodeBB, делая его идеальным выбором для хостинга и управления динамичными онлайн-сообществами.

В этом руководстве представлены пошаговые инструкции по установке NodeBB на сервер Alma Linux 9. Вы будете использовать MongoDB в качестве базы данных, Nginx в качестве обратного прокси, а затем защитите NodeBB с помощью HTTPS через Certbot и Letsencrypt.

Установка зависимостей

NodeBB – это программное обеспечение для форумов с открытым исходным кодом, основанное на Node.js. Чтобы установить NodeBB, необходимо убедиться, что установлены следующие пакеты, включая:

  • Системные инструменты, такие как “Средства разработки”, Git и ImageMagick
  • Node.js 18 или выше и NPM (Node Package Manager)
  • Сервер баз данных NoSQL MongoDB
  • Веб-сервер Nginx в качестве обратного прокси-сервера

В этом разделе вы установите эти зависимости на сервер Alma Linux 9.

Сначала выполните приведенную ниже команду, чтобы включить репозиторий Alma Linux CRB (CodeReadyBuild) и установить репозиторий EPEL.

sudo crb enable
sudo dnf install epel-release -y

Затем создайте новый файл репозитория ‘/etc/yum.repos.d/mongodb-org-7.0.repo‘ с ‘nano‘ редактор.

sudo nano /etc/yum.repos.d/mongodb-org-7.0.repo

Введите в файл следующую конфигурацию:

[mongodb-org-7.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/9/mongodb-org/7.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://pgp.mongodb.com/server-7.0.asc

Сохраните файл и выйдите из редактора после завершения работы.

Теперь выполните приведенную ниже команду, чтобы включить репозиторий Node.js 18 для AlmaLinux.

sudo dnf module enable nodejs:18 -y

установить deps

Далее выполните следующую команду ‘dnf‘ команда для установки ‘Средства разработки‘, сервер MongoDB, Node.js, NPM, Git и ImageMagick.

sudo dnf group install "Development Tools" -y
sudo dnf install nodejs npm git ImageMagick mongodb-org -y

установка пакетов

После завершения установки запустите и включите ‘mongod‘ с помощью следующей команды.

sudo systemctl enable --now mongod
sudo systemctl status mongod

Ниже вы можете видеть, что сервер MongoDB запущен и включен.

включить mongodb

И наконец, проверьте версию Node.js с помощью команды ниже. Вы должны увидеть, что на сервере Alma Linux установлен Node.js 18.

node --version
npm --version

проверить nodejs npm

Настройка сервера MongoDB и базы данных для NodeBB

После установки зависимостей вы защитите сервер MongoDB, включив аутентификацию по паролю и установив пароль администратора MongoDB. После этого вы также создадите новую базу данных MongoDB и пользователя для установки NodeBB.

Войдите на сервер MongoDB под именем ‘mongosh‘ команда ниже.

mongosh

войти в mongodb

После входа в систему переключитесь на ‘admin‘ базы данных и выполните приведенный ниже запрос, чтобы установить пароль администратора для MongoDB. Обязательно измените значение ‘MongoDBAdminPass‘ с вашей комбинацией паролей.

use admin
db.createUser( { user: "admin", pwd: "MongoDBAdminPass", roles: [ { role: "root", db: "admin" } ] } )

Теперь выполните следующие запросы для создания новой базы данных и пользователя ‘nodebb‘ с паролем ‘NodeBBPassword’. При необходимости вы можете настроить следующие параметры базы данных.

use nodebb
db.createUser( { user: "nodebb", pwd: "NodeBBPassword", roles: [ { role: "readWrite", db: "nodebb" }, { role: "clusterMonitor", db: "admin" } ] } )

Введите ‘выйти из игры()‘ для выхода из сервера MongoDB.

создание пользователя admin и настройка базы данных

После того как вы настроили пароль администратора для MongoDB, давайте включим аутентификацию MongoDB.

Откройте стандартный файл конфигурации MongoDB ‘/etc/mongod.conf‘ с помощью ‘nano‘ редактор.

sudo nano /etc/mongod.conf

Чтобы включить аутентификацию MongoDB, отмените опцию ‘безопасность‘ и добавьте строку ‘авторизация: включена‘, например, следующим образом:

security:
authorization: enabled

Сохраните и выйдите из файла после завершения работы.

Теперь запустите следующую команду ‘systemctl‘, чтобы перезапустить сервер MongoDB и применить изменения. Теперь аутентификация MongoDB должна быть включена.

sudo systemctl restart mongod

Чтобы проверить конфигурацию, выполните команду ‘mongosh‘ команда ниже, чтобы войти в MongoDB под пользователем ‘nodebb‘. Введите пароль для ‘nodebb‘ пользователь.

mongosh "mongodb://127.0.0.1:27017" --username nodebb --authenticationDatabase nodebb

Установка NodeBB

Теперь, когда вы настроили сервер MongoDB, вы готовы установить NodeBB на сервер Alma Linux.

Добавьте нового системного пользователя и группу ‘nodebb‘ с помощью следующей команды.

sudo adduser -r -M -d /opt/nodebb -U nodebb

Загрузите исходный код NodeBB на ‘/opt/nodebb‘ каталог и измените право собственности на ‘nodebb‘ пользователь.

git clone -b v3.x https://github.com/NodeBB/NodeBB.git /opt/nodebb
sudo chown -R nodebb:nodebb /opt/nodebb

Перейдите на страницу ‘/opt/nodebb‘ каталог и выполните сценарий установки NodeBB следующим образом:

cd /opt/nodebb
sudo su -s /bin/bash -c "./nodebb setup" nodebb

Здесь вас спросят о некоторых конфигурациях NodeBB:

  • Введите ваше доменное имя для NodeBB.
  • Нажмите ENTER на конфигурации секрета NodeBB. Оставьте значение по умолчанию.
  • Введите no, чтобы отключить анонимный доступ к NodeBB.
  • Выберите MongoDB в качестве базы данных.
  • Введите данные о базе данных MongoDB в формате mongodb://nodebb:[email protected]:27017/nodebb.
  • Введите нового пользователя-администратора и адрес электронной почты для NodeBB.
  • Введите пароль для пользователя-администратора NodeBB и повторите.

После завершения процесса вы увидите вывод, похожий на этот:

вход в mongodb

Теперь вы можете запустить или остановить NodeBB вручную, выполнив команду ‘nodebb‘ сценарий, как показано ниже:

sudo su -s /bin/bash -c "./nodebb start" nodebb
sudo su -s /bin/bash -c "./nodebb stop" nodebb

запуск и остановка nodebb

Запуск NodeBB в качестве службы systemd

Чтобы проще управлять NodeBB, вы можете контролировать процесс NodeBB с помощью команды ‘systemctl‘ утилита. Для этого необходимо создать новый служебный файл systemd для запуска NodeBB.

Создание нового файла службы systemd ‘/etc/systemd/system/nodebb.service‘ с помощью ‘nano‘ редактор.

sudo nano /etc/systemd/system/nodebb.service

Введите следующую конфигурацию для запуска NodeBB в качестве службы systemd.

[Unit]
Description=NodeBB
Documentation=https://docs.nodebb.org
After=system.slice multi-user.target mongod.service

[Service]
Type=simple
User=nodebb

StandardError=syslog
SyslogIdentifier=nodebb

Environment=NODE_ENV=production
WorkingDirectory=/opt/nodebb
ExecStart=/bin/env node loader.js –no-silent –no-daemon
Restart=always

[Install]
WantedBy=multi-user.target

Сохраните файл и выйдите из редактора.

Перезагрузите менеджер systemd с помощью команды ‘systemctl‘ команда ниже.

sudo systemctl daemon-reload

Наконец, запустите и включите команду ‘nodebb‘ служба, а затем проверьте ее, чтобы убедиться, что служба запущена:

sudo systemctl enable --now nodebb
sudo systemctl status nodebb

Ниже видно, что NodeBB работает в фоновом режиме как служба systemd.

установить nodebb systemd

Настройка Nginx в качестве обратного прокси-сервера

Теперь, когда NodeBB работает в фоновом режиме как служба, давайте установим Nginx и создадим новый серверный блок, который будет использоваться в качестве обратного прокси для NodeBB.

Сначала запустите команду ‘dnf‘ команда ниже, чтобы установить веб-сервер Nginx.

sudo dnf install nginx -y

установить nginx

Теперь создайте новую конфигурацию Nginx ‘/etc/nginx/conf.d/nodebb.conf‘ с помощью ‘nano‘ редактор.

sudo nano /etc/nginx/conf.d/nodebb.conf

Введите следующую конфигурацию и не забудьте изменить ‘имя_сервера‘ параметр с именем вашего домена.

server {
listen 80;

server_name forum.local;

location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;

proxy_pass http://127.0.0.1:4567;
proxy_redirect off;

# Socket.IO Support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection “upgrade”;
}
}

После завершения сохраните файл и выйдите из редактора.

Далее выполните приведенную ниже команду, чтобы проверить синтаксис Nginx. В случае успеха вы получите на выходе ‘синтаксис в порядке – проверка успешна‘.

sudo nginx -t

настройка vhost

Наконец, запустите команду ‘systemctl‘ команда ниже, чтобы запустить, включить и проверить веб-сервер Nginx.

sudo systemctl enable --now nginx
sudo systemctl status nginx

Ниже вы можете видеть, что веб-сервер Nginx запущен.

проверить nginx

Защита NodeBB с помощью HTTPS

На этом этапе ваша установка NodeBB готова. Но если вы находитесь на публичном доменном имени, вы должны защитить NodeBB с помощью HTTPS. В этом разделе вы настроите HTTPS для NodeBB с помощью Certbot и Letsencrypt.

Установите Certbot и плагин Certbot Nginx с помощью следующей команды:

sudo dnf install certbot python3-certbot-nginx -y

Теперь запустите команду ‘certbot‘ команда ниже, чтобы защитить вашу установку NodeBB с помощью HTTPS. Обязательно измените доменное имя и адрес электронной почты в этой команде.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d forum.local

После завершения процесса ваши сертификаты SSL/TLS будут доступны по адресу ‘/etc/letsencrypt/live/domain.com‘ каталог и ваша установка NodeBB должна быть защищена HTTPS.

Доступ к NodeBB

Откройте веб-браузер и зайдите на доменное имя NodeBB. Если установка прошла успешно, вы увидите следующую домашнюю страницу NodeBB.

nodebb

Заключение

Поздравляем! Вы завершили установку NodeBB на сервер Alma Linux 9. Форум NodeBB запущен и работает с сервером MongoDB и Nginx в качестве обратного прокси. Вы также защитили установку NodeBB с помощью HTTPS через Certbot и Letsencrypt.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *