Установка NodeBB · 7 min read · Sep 09, 2025

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

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

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

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

Предварительные требования

Перед тем как начать, убедитесь, что у вас есть следующее:

  • Сервер Alma Linux 9
  • Непривилегированный пользователь с правами администратора
  • Доменное имя, указывающее на IP-адрес сервера
  • SELinux со статусом разрешающим и включенным

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

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

  • Системные инструменты, такие как “Development Tools”, 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

install deps

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

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

installing packages

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

sudo systemctl enable --now mongod  
sudo systemctl status mongod

Вы можете увидеть ниже, что сервер MongoDB работает и включен.

enable mongodb

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

node --version  
npm --version

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

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

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

mongosh

login 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" } ] } )

Введите ‘ quit() ‘, чтобы выйти из сервера MongoDB.

create admin user and setup database

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

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

sudo nano /etc/mongod.conf

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

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

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

login to mongodb

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

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

nodebb start and stop

Запуск 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.

setup nodebb systemd

Настройка Nginx как обратного прокси

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

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

sudo dnf install nginx -y

install nginx

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

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

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

server {  
listen 80;  
  
server_name forum.howtoforge.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  
proxy_http_version 1.1;  
proxy_set_header Upgrade $http_upgrade;  
proxy_set_header Connection "upgrade";  
}  
}

Когда закончите, сохраните файл и выйдите из редактора.

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

sudo nginx -t

setup vhost

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

sudo systemctl enable --now nginx  
sudo systemctl status nginx

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

check 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.howtoforge.local

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

Доступ к NodeBB

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

nodebb

Заключение

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

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.