Установка NodeBB · 8 min read · Oct 19, 2025

Как установить форум NodeBB на Ubuntu 18.04 LTS

NodeBB — это программное обеспечение форума на основе Node.js, созданное для современного веба. Оно построено на базе MongoDB или Redis. Использует веб-сокеты для мгновенных взаимодействий и уведомлений в реальном времени. NodeBB имеет множество современных функций из коробки, таких как интеграция с социальными сетями и потоковые обсуждения. Дополнительная функциональность обеспечивается с помощью сторонних плагинов. NodeBB — это проект с открытым исходным кодом, который можно найти на Github. В этом руководстве мы шаг за шагом проведем вас через процесс установки NodeBB на операционной системе Ubuntu 18.04 LTS, используя Nginx в качестве обратного прокси, MongoDB в качестве базы данных и acme.sh и Let’s Encrypt для HTTPS.

Требования

NodeBB требует установки следующего программного обеспечения:

  • Node.js версии 6 или выше
  • MongoDB версии 2.6 или выше или Redis версии 2.8.9 или выше
  • Nginx версии 1.3.13 или выше
  • Git

ПРИМЕЧАНИЕ: Установка зависимостей NodeBB может потребовать более 512 мегабайт системной памяти. Рекомендуется включить раздел подкачки, чтобы компенсировать, если в вашей системе Linux недостаточно памяти.

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

  • Рабочая система Ubuntu 18.04 с как минимум 1 ГБ ОЗУ.
  • Доменное имя с установленными записями A / AAAA.
  • Пользователь без прав root с правами sudo.

Начальные шаги

Проверьте вашу версию Ubuntu:

lsb_release -ds  
# Ubuntu 18.04.1 LTS

Настройте часовой пояс:

sudo dpkg-reconfigure tzdata

Обновите пакеты вашей операционной системы (программного обеспечения). Это важный первый шаг, так как он гарантирует, что у вас есть последние обновления и исправления безопасности для стандартных пакетов программного обеспечения вашей операционной системы:

sudo apt update && sudo apt upgrade -y

Установите некоторые основные пакеты, которые необходимы для базового администрирования операционной системы Ubuntu:

sudo apt install -y curl wget vim git unzip socat bash-completion  

Шаг 1: Установите Node.js и npm

NodeBB построен на Node.js. Мы собираемся установить рекомендуемую версию для NodeBB, которая составляет версию 8 ** на момент написания. В Linux у вас есть несколько вариантов установки Node.js: бинарные файлы Linux (x86/x64), исходный код или через менеджеры пакетов. Мы будем использовать вариант управления пакетами, который упрощает установку и обновление Node.js.

Скачайте и установите последнюю версию Long-Term Support (LTS) Node.js из репозитория Nodesource:

curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -  
sudo apt install -y nodejs  

Чтобы скомпилировать и установить нативные дополнения из npm, вам также может понадобиться установить инструменты сборки:

sudo apt install -y build-essential

ПРИМЕЧАНИЕ: npm распространяется вместе с Node.js — это означает, что когда вы загружаете Node.js, вы автоматически получаете npm, установленный на вашей системе.

Проверьте версии Node.js и npm:

node -v && npm -v  
# v10.15.1  
# 6.4.1

Npm — это отдельный проект от Node.js и обновляется чаще. В результате, даже если вы только что загрузили Node.js (а значит, и npm), вам, вероятно, потребуется обновить ваш npm. К счастью, npm знает, как обновить себя! Чтобы обновить ваш npm, введите это в вашем терминале:

sudo npm install -g npm@latest

Эта команда обновит npm до последней стабильной версии.

Проверьте версию npm снова:

npm -v  
# 6.7.0  

И она должна вернуть последние номера версий.

Шаг 2: Установите и настройте MongoDB

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

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

sudo apt install -y mongodb

Проверьте версию MongoDB:

mongo --version | head -n 1 && mongod --version | head -n 1  

Запустите и включите ( установите его для автоматического запуска при перезагрузке) службу MongoDB:

sudo systemctl start mongodb.service  
sudo systemctl enable mongodb.service

Проверьте статус сервера базы данных MongoDB, выполнив:

sudo systemctl status mongodb.service  
# active (running)

Далее создайте базу данных MongoDB и пользователя для NodeBB.

Сначала подключитесь к серверу MongoDB.

mongo

Переключитесь на встроенную базу данных admin.

> use admin

Создайте административного пользователя.

> db.createUser( { user: "admin", pwd: "<Введите надежный пароль>", roles: [ { role: "readWriteAnyDatabase", db: "admin" }, { role: "userAdminAnyDatabase", db: "admin" } ] } )

ПРИМЕЧАНИЕ: Замените заполнитель <Введите надежный пароль> на свой собственный выбранный пароль.

Добавьте новую базу данных с именем nodebb.

> use nodebb

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

> db.createUser( { user: "nodebb", pwd: "<Введите надежный пароль>", roles: [ { role: "readWrite", db: "nodebb" }, { role: "clusterMonitor", db: "admin" } ] } )

ПРИМЕЧАНИЕ: Снова замените заполнитель <Введите надежный пароль> на свой собственный выбранный пароль.

Выйдите из оболочки Mongo.

> quit()

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

sudo systemctl restart mongodb.service  
mongo -u admin -p your_password --authenticationDatabase=admin

Если все прошло хорошо, ваша MongoDB должна быть установлена и подготовлена для NodeBB. На следующем шаге мы займемся установкой и настройкой веб-сервера.

Шаг 3 - Установите клиент acme.sh и получите сертификат Let’s Encrypt ( по желанию)

Защита вашего форума NodeBB с помощью HTTPS не является обязательной, но это хорошая практика для защиты трафика вашего сайта. Чтобы получить сертификат TLS от Let’s Encrypt, мы будем использовать клиент acme.sh. Acme.sh — это чистое программное обеспечение unix shell для получения сертификатов TLS от Let’s Encrypt без зависимостей.

Скачайте и установите acme.sh:

sudo su - root  
git clone https://github.com/Neilpang/acme.sh.git  
cd acme.sh   
./acme.sh --install --accountemail [email protected]  
source ~/.bashrc  
cd ~

Проверьте версию acme.sh:

acme.sh --version  
# v2.8.0

Получите RSA и ECC/ECDSA сертификаты для вашего домена/имени хоста:

# RSA 2048  
acme.sh --issue --standalone -d example.com --keylength 2048  
# ECDSA  
acme.sh --issue --standalone -d example.com --keylength ec-256

Если вы хотите получить фальшивые сертификаты для тестирования, вы можете добавить флаг --staging к вышеуказанным командам.

После выполнения вышеуказанных команд ваши сертификаты и ключи будут находиться в:

  • Для RSA: директория /home/username/example.com.
  • Для ECC/ECDSA: директория /home/username/example.com_ecc.

Чтобы перечислить ваши выданные сертификаты, вы можете выполнить:

acme.sh --list

Создайте директорию для хранения ваших сертификатов. Мы будем использовать директорию /etc/letsencrypt.

mkdir -p /etc/letsecnrypt/example.com  
sudo mkdir -p /etc/letsencrypt/example.com_ecc

Установите/скопируйте сертификаты в директорию /etc/letsencrypt.

# RSA  
acme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"  
# ECC/ECDSA  
acme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"

Все сертификаты будут автоматически обновляться каждые 60 дней.

После получения сертификатов выйдите из пользователя root и вернитесь к обычному пользователю с правами sudo:

exit

Шаг 4: Установите и настройте Nginx

NodeBB может хорошо работать с многими веб-серверами. В этом учебнике мы выбрали Nginx.

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

sudo apt install -y nginx

После установки вы можете проверить версию Nginx, выполнив:

nginx -v  

Запустите и включите ( установите его для автоматического запуска при перезагрузке) службу Nginx:

sudo systemctl start nginx.service  
sudo systemctl enable nginx.service

Проверьте статус веб-сервера Nginx, выполнив:

sudo systemctl status nginx.service  
# active (running)

NodeBB по умолчанию работает на порту 4567. Чтобы избежать ввода http://example.com:4567, мы настроим Nginx как обратный прокси для приложения NodeBB. Каждый запрос на порту 80 или 443 ( если используется SSL) будет перенаправлен на порт 4567.

Запустите sudo vim /etc/nginx/conf.d/nodebb.conf и настройте Nginx как HTTPS обратный прокси.

server {  
  listen [::]:443 ssl http2;  
  listen 443 ssl http2;  
  listen [::]:80;  
  listen 80;  
  
  server_name example.com;  
  
  client_max_body_size 50M;  
  
  # RSA  
  ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;  
  ssl_certificate_key /etc/letsencrypt/example.com/private.key;  
  # ECDSA  
  ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;  
  ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;  
  
  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

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

sudo systemctl reload nginx.service

Шаг 5: Установите и настройте NodeBB

Создайте директорию корня документа, где должен находиться NodeBB:

sudo mkdir -p /var/www/nodebb

Перейдите в директорию корня документа:

cd /var/www/nodebb

Измените владельца директории /var/www/nodebb на вашего пользователя.

sudo chown -R [your_user]:[your_user] /var/www/nodebb

ПРИМЕЧАНИЕ: Замените your_user в вышеуказанной команде на вашего пользователя без прав root, которого вы должны были создать в качестве предварительного условия для этого учебника.

Клонируйте последний репозиторий NodeBB в папку корня документа:

git clone -b v1.11.x https://github.com/NodeBB/NodeBB.git .

Запустите скрипт настройки, выполнив приложение с флагом setup. Ответьте на каждый из вопросов:

./nodebb setup

После завершения настройки NodeBB выполните ./nodebb start, чтобы вручную запустить ваш сервер NodeBB:

./nodebb start

После выполнения этой команды вы должны иметь возможность получить доступ к вашему новому форуму в веб-браузере:

NodeBB в браузере

Шаг 6: Запустите NodeBB как системную службу

Когда NodeBB запускается через ./nodebb start, он не будет автоматически запускаться снова при перезагрузке системы. Чтобы избежать этого, нам нужно настроить NodeBB как системную службу.

Если он запущен, остановите NodeBB:

./nodebb stop

Создайте нового пользователя nodebb:

sudo useradd nodebb

Измените владельца директории /var/www/nodebb на пользователя nodebb:

sudo chown -R nodebb:nodebb /var/www/nodebb

Создайте файл конфигурации юнита systemd nodebb.service. Этот юнит будет управлять запуском демона NodeBB. Запустите sudo vim /etc/systemd/system/nodebb.service и добавьте следующее содержимое:

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

[Service]
Type=forking
User=nodebb

StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=nodebb

Environment=NODE_ENV=production
WorkingDirectory=/var/www/nodebb
PIDFile=/var/www/nodebb/pidfile
ExecStart=/usr/bin/env node loader.js
Restart=always

[Install]
WantedBy=multi-user.target

ПРИМЕЧАНИЕ: Установите имя пользователя и пути к директориям в соответствии с вашими выбранными именами.

Включите nodebb.service при перезагрузке и немедленно запустите nodebb.service:

sudo systemctl enable nodebb.service  
sudo systemctl start nodebb.service

Проверьте статус nodebb.service:

sudo systemctl status nodebb.service  
sudo systemctl is-enabled nodebb.service

Поздравляем! Вы успешно установили и развернули платформу обсуждений NodeBB на системе Ubuntu 18.04. Вы должны иметь возможность получить доступ к вашему форуму на вашем домене и взаимодействовать с вашим форумом.

Ссылки

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.