Установка 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
Далее выполните следующую команду ‘ 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
После завершения установки запустите и включите службу ‘ mongod ‘ с помощью следующей команды.
sudo systemctl enable --now mongod
sudo systemctl status mongodВы можете увидеть ниже, что сервер MongoDB работает и включен.

Наконец, проверьте версию Node.js с помощью команды ниже. Вы должны увидеть, что Node.js 18 установлен на сервере Alma Linux.
node --version
npm --versionНастройка сервера MongoDB и базы данных для NodeBB
С установленными зависимостями вы обеспечите безопасность сервера MongoDB, включив аутентификацию по паролю и установив пароль администратора MongoDB. После этого вы также создадите новую базу данных MongoDB и пользователя для установки NodeBB.
Войдите на сервер MongoDB с помощью команды ‘ mongosh ‘ ниже.
mongosh
После входа переключитесь на базу данных ‘ 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.

После того как вы настроили пароль администратора для 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 и повторите его.
После завершения процесса вы увидите вывод, подобный этому:

Теперь вы можете вручную запускать или останавливать NodeBB, выполняя скрипт ‘ nodebb ‘ следующим образом:
sudo su -s /bin/bash -c "./nodebb start" nodebb
sudo su -s /bin/bash -c "./nodebb stop" 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.

Настройка Nginx как обратного прокси
Теперь, когда NodeBB работает в фоновом режиме как служба, давайте установим Nginx и создадим новый серверный блок, который будет использоваться в качестве обратного прокси для NodeBB.
Сначала выполните команду ‘ dnf ‘ ниже, чтобы установить веб-сервер Nginx.
sudo dnf install nginx -y
Теперь создайте новую конфигурацию 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
Наконец, выполните команду ‘ systemctl ‘ ниже, чтобы запустить, включить и проверить веб-сервер Nginx.
sudo systemctl enable --now nginx
sudo systemctl status 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.howtoforge.localПосле завершения процесса ваши SSL/TLS сертификаты будут доступны в директории ‘ /etc/letsencrypt/live/domain.com ‘, и ваша установка NodeBB должна быть защищена с помощью HTTPS.
Доступ к NodeBB
Откройте веб-браузер и посетите доменное имя NodeBB, например https://forum.howtoforge.local. Если ваша установка успешна, вы увидите следующую домашнюю страницу NodeBB.

Заключение
Поздравляем! Вы завершили установку NodeBB на сервере Alma Linux 9. У вас есть работающий форум NodeBB с сервером MongoDB и Nginx в качестве обратного прокси. Вы также защитили установку NodeBB с помощью HTTPS через Certbot и Letsencrypt.
Get new posts in your inbox
No spam. Unsubscribe anytime.