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

Как установить NodeBB с прокси Nginx на Debian 12

NodeBB — это программное обеспечение для форумов с открытым исходным кодом, написанное на JavaScript и Node.js. Оно использует MongoDB в качестве базы данных по умолчанию. NodeBB предлагает множество функций, таких как уведомления в реальном времени через веб-сокеты, интеграция с социальными сетями и полные REST API.

Этот гид покажет вам, как установить NodeBB на сервер Debian 12 с MongoDB в качестве базы данных и Nginx в качестве обратного прокси.

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

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

  • Сервер Debian 12.
  • Пользователь без прав root с правами sudo.
  • Доменное имя, указывающее на IP-адрес сервера.

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

Чтобы начать процесс, вам нужно установить зависимости для NodeBB. Это включает Node.js, NPM (менеджер пакетов Node.js) и веб-сервер Nginx из репозитория Debian. Что касается MongoDB, вы установите его через официальный репозиторий MongoDB.

Сначала выполните следующую команду для установки пакетов gnupg и curl на вашу систему Debian.

sudo apt install gnupg curl -y

Добавьте GPG-ключ и репозиторий MongoDB с помощью следующей команды:

curl -fsSL https://pgp.mongodb.com/server-7.0.asc | \  
sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg \  
--dearmor
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] http://repo.mongodb.org/apt/debian bookworm/mongodb-org/7.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list

Теперь обновите индекс пакетов Debian и установите MongoDB, Node.js, NPM, Nginx и Git. Введите Y для подтверждения установки.

sudo apt update  
sudo apt install mongodb-org nodejs npm git nginx

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

После завершения установки перезагрузите менеджер systemd с помощью следующей команды:

sudo systemctl daemon-reload

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

sudo systemctl enable --now mongod  
sudo systemctl status mongod

Следующий вывод подтверждает, что MongoDB работает.

проверка mongodb

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

sudo systemctl is-enabled nginx  
sudo systemctl status nginx

проверка nginx

Наконец, проверьте версию Node.js и NPM с помощью следующей команды:

sudo node -v  
sudo npm -v

Вы можете увидеть ниже, что установлены Node.js 18 и NPM 9.

проверка node.js и npm

Настройка сервера MongoDB

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

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

mongosh

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

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

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

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

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

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

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

sudo nano /etc/mongod.conf

Включите аутентификацию MongoDB, добавив следующую конфигурацию.

security:  
 authorization: enabled

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

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

sudo systemctl restart mongod

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

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

После входа выполните запрос ниже, чтобы проверить ваше соединение и выйти из MongoDB.

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

В следующем выводе вы можете увидеть, что вы аутентифицированы как ‘ nodebb ‘ в базе данных ‘ nodebb ‘.

проверка соединения пользователя mongodb

Установка NodeBB

С завершением конфигурации MongoDB вы будете загружать и устанавливать NodeBB. Вы создадите отдельного пользователя для NodeBB, загрузите и установите зависимости NodeBB, а затем создадите файл службы для вашей установки NodeBB.

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

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

Теперь загрузите исходный код NodeBB v3 в каталог ‘ /opt/nodebb ‘ с помощью git и измените владельца каталога ‘ /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.
  • Введите no, чтобы отключить использование анонимного плагина.
  • Выберите базу данных как MongoDB.
  • Введите базу данных MongoDB с URL-строкой: mongodb://nodebb: [email protected]:27017/nodebb.
  • Введите вашего администратора и адрес электронной почты для NodeBB.
  • Введите ваш пароль и повторите его.

После завершения процесса вы увидите вывод ‘ Настройка NodeBB завершена ‘. Вы также можете увидеть команду для запуска NodeBB.

завершение настройки

Далее выполните команду ниже, чтобы запустить или остановить 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 ‘ /etc/systemd/system/nodebb.service ‘ с помощью команды редактора nano.

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

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

[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

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

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

sudo systemctl daemon-reload

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

sudo systemctl start nodebb  
sudo systemctl enable nodebb

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

sudo systemctl status nodebb

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

настройка nodebb systemd

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

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

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

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

Добавьте следующую конфигурацию, чтобы настроить Nginx как обратный прокси для NodeBB. Убедитесь, что вы изменили параметр 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";  
 }  
}

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

Теперь активируйте файл блока сервера ‘nodebb’ и протестируйте синтаксис Nginx с помощью следующей команды:

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

Если у вас правильный синтаксис Nginx, вы увидите вывод ‘синтаксис в порядке - тест успешен’.

настройка nginx

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

sudo systemctl restart nginx

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

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

Установите Certbot и плагин Certbot Nginx с помощью следующей команды apt. Введите Y, чтобы продолжить установку.

sudo apt install certbot python3-certbot-nginx

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

sudo certbot --nginx --agree-tos --no-eff-email --redirect --hsts --staple-ocsp --email [email protected] -d forum.hwdomain.i

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

Доступ к NodeBB

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

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

С главной страницы нажмите меню Вход, и вы увидите страницу входа NodeBB. Введите своего администратора и пароль, а затем нажмите Войти.

страница входа

Если все прошло успешно, вы увидите следующую панель управления пользователя.

панель управления пользователем

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

панель управления администрированием

Заключение

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

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.