Установка NodeBB · 8 min read · Sep 10, 2025

Как установить NodeBB с прокси Nginx на сервере Ubuntu 24.04

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

В этом руководстве вы узнаете, как установить NodeBB на сервер Ubuntu 24.04 с базой данных MongoDB и веб-сервером Nginx. Вы также узнаете, как защитить NodeBB с помощью HTTPS через Certbot и Letsencrypt.

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

Чтобы начать с этого руководства, убедитесь, что у вас есть:

  • Сервер Ubuntu 24.04.
  • Непривилегированный пользователь с правами администратора.
  • Доменное имя, указывающее на IP-адрес сервера.

Установка сервера MongoDB

NodeBB написан на Node.js и использует MongoDB в качестве базы данных. Чтобы установить NodeBB, вам необходимо установить сервер MongoDB на вашу систему. В этом разделе вы установите сервер MongoDB 7 на сервер Ubuntu 24.04.

Сначала выполните команду ниже, чтобы установить пакеты gnupg и curl на вашу систему Ubuntu.

sudo apt install gnupg curl

установка curl

Теперь добавьте GPG-ключ и репозиторий для MongoDB, используя команду ниже. В данный момент MongoDB 7.0 доступен только для Ubuntu 22.04, поэтому мы будем использовать это на нашем сервере Ubuntu 24.04.

curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc |  
sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg  
–dearmor
echo “deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse” | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list

добавить репозиторий mongodb

Затем выполните следующую команду apt, чтобы обновить индекс пакетов Ubuntu и установить пакет mongodb-org. Введите Y, чтобы подтвердить установку.

sudo apt update  
sudo apt install mongodb-org

установка mongodb

После завершения установки выполните команду systemctl ниже, чтобы перезагрузить менеджер systemd. Это связано с тем, что новый файл службы mongod был добавлен в вашу систему.

sudo systemctl daemon-reload

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

sudo systemctl enable --now mongod  
sudo systemctl status mongod

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

проверка службы mongod

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

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

Войдите в оболочку MongoDB с помощью команды клиента mongosh ниже.

mongosh

В оболочке mongosh переключитесь на базу данных admin и создайте нового администратора для MongoDB. В этом примере вы создадите пользователя MongoDB admin с паролем MongoDBAdminPass. Убедитесь, что вы изменили данные пользователя на свои.

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

После этого переключитесь и создайте базу данных nodebb, а затем создайте нового пользователя nodebb с паролем NodeBBPassword. База данных и пользователь nodebb будут использоваться для установки NodeBB.

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

Теперь введите quit(), чтобы выйти из оболочки mongosh.

quit()

создание пользователя и базы данных mongodb

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

sudo nano /etc/mongod.conf

Распакуйте опцию security и измените authorization на enabled. Это включит аутентификацию на вашем сервере MongoDB.

security:  
  authorization: enabled

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

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

sudo systemctl restart mongod

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

mongosh “mongodb://127.0.0.1:27017” --username nodebb --authenticationDatabase nodebb

Теперь выполните следующие запросы, чтобы проверить ваше соединение с сервером MongoDB.

db.runCommand( { connectionStatus: 1, showPrivileges: false } )

Ниже вы аутентифицированы как пользователь nodebb к базе данных nodebb.

Введите quit() для выхода из оболочки MongoDB.

проверка пользователей

Установка NodeBB

Теперь, когда вы настроили сервер MongoDB, вы установите Node.js через официальный репозиторий Ubuntu, а затем загрузите и установите NodeBB на вашу систему Ubuntu.

Перед установкой NodeBB выполните следующую команду apt, чтобы установить пакеты Node.js и NPM на вашу систему Ubuntu. Введите Y, чтобы подтвердить установку.

sudo apt install nodejs npm

установка nodejs

После установки проверьте версии Node.js и NPM с помощью следующей команды - Вы можете увидеть, что установлены Node.js 18 и NPM 9.

node --version  
npm --version

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

sudo adduser --system --no-create-home --home=/opt/nodebb --group nodebb

Выполните команду git ниже, чтобы загрузить исходный код NodeBB в каталог /opt/nodebb, а затем измените его владельца на пользователя nodebb.

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

добавить пользователя и загрузить nodebb

Перейдите в каталог /opt/nodebb и выполните команду настройки nodebb, чтобы начать установку NodeBB.

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

Вас спросят о следующих конфигурациях NodeBB:

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

После завершения установки вы увидите вывод Установка NodeBB завершена.

установка завершена

Чтобы запустить NodeBB из командной строки, выполните следующую команду nodebb start:

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

Чтобы остановить процесс NodeBB, используйте команду nodebb stop ниже.

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

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

Запуск NodeBB как службы systemd

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

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

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

Вставьте следующий файл службы для NodeBB. В этом примере вы будете запускать службу nodebb как пользователь nodebb.

[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=/usr/bin/env node loader.js --no-silent --no-daemon  
Restart=always  
  
[Install]  
WantedBy=multi-user.target

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

Теперь выполните команду systemctl ниже, чтобы перезагрузить менеджер systemd и применить ваши изменения.

sudo systemctl daemon-reload

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

sudo systemctl enable --now nodebb  
sudo systemctl status nodebb

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

служба nodebb

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

В этом учебном пособии вы будете использовать веб-сервер Nginx в качестве обратного прокси для NodeBB. Теперь вы установите Nginx и создадите новый серверный блок для обратного прокси. Убедитесь, что ваше доменное имя указывает на IP-адрес сервера.

Установите веб-сервер Nginx на вашу систему с помощью следующей команды apt install.

sudo apt install nginx -y

установка nginx

После завершения установки создайте новую конфигурацию серверного блока /etc/nginx/sites-available/nodebb с помощью редактора nano.

sudo nano /etc/nginx/sites-available/nodebb

Вставьте следующую конфигурацию и убедитесь, что вы изменили forum.howtoforge.local на ваше доменное имя. С этим вы настроите обратный прокси для NodeBB, который работает в фоновом режиме на порту 4567.

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";  
 }  
}

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

Теперь выполните команду ниже, чтобы активировать файл серверного блока nodebb и проверить вашу конфигурацию Nginx. Если вы все сделали правильно и у вас правильная конфигурация Nginx, вы увидите вывод синтаксис в порядке - тест успешен.

sudo ln -s /etc/nginx/sites-available/nodebb /etc/nginx/sites-enabled/  
sudo nginx -t

настройка nginx

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

sudo systemctl restart nginx  
sudo systemctl status nginx

Как вы можете видеть в выводе ниже, служба Nginx работает.

проверка nginx

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

В этом разделе вы защитите NodeBB с помощью HTTPS через Certbot и Letsencrypt. В сочетании с Certbot и Nginx вы можете настроить автоматический HTTPS на вашем веб-сервере.

Установите пакеты certbot и python3-certbot-nginx с помощью следующей команды:

sudo apt install certbot python3-certbot-nginx -y

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

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

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

Доступ к NodeBB

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

домашняя страница

Нажмите на ссылку Войти, и вы увидите страницу входа NodeBB. Затем введите своего администратора и пароль и нажмите Войти, чтобы подтвердить. Если у вас правильные учетные данные, вы увидите следующую панель администратора.

вход

В настройках администратора NodeBB вы увидите следующее:

настройки администратора

Заключение

Поздравляем! Вы установили программное обеспечение для форумов с открытым исходным кодом NodeBB на сервере Ubuntu 24.04. Вы запустили NodeBB с MongoDB в качестве базы данных и Nginx в качестве обратного прокси. Вы также защитили NodeBB с помощью HTTPS через Certbot и Letsencrypt. Теперь вы можете добавить SMTP-сервер для настройки регистрации и подтверждения по электронной почте.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.