Установка NodeBB · 8 min read · Oct 19, 2025
Как установить форум NodeBB с Nginx и SSL Let's Encrypt на Ubuntu 20.04 LTS

NodeBB — это современное программное обеспечение для форумов, основанное на Node.js, которое использует MongoDB/Redis в качестве платформ баз данных. Оно использует веб-сокеты для мгновенного взаимодействия и уведомлений в реальном времени.
В этом руководстве мы научимся устанавливать форум NodeBB на сервере на базе Ubuntu 20.04.
Предварительные требования
- Сервер на базе Ubuntu 20.04 с пользователем, не являющимся root, и правами sudo.
- Минимум 2 ГБ ОЗУ. Если у вашего сервера только 1 ГБ ОЗУ, лучше включить раздел подкачки.
- Убедитесь, что все обновлено.
shell $ sudo apt update && sudo apt upgrade - Несколько необходимых пакетов. Некоторые из них уже могут быть на вашем сервере.
shell $ sudo apt install curl wget nano ca-certificates gnupg2 lsb-release
Шаг 1 - Настройка брандмауэра
Первый шаг — настроить брандмауэр. Ubuntu по умолчанию поставляется с ufw (Uncomplicated Firewall).
Проверьте, работает ли брандмауэр.
$ sudo ufw status
Вы должны получить следующий вывод.
Status: inactive
Разрешите SSH-порт, чтобы брандмауэр не разорвал текущее соединение при его включении.
$ sudo ufw allow OpenSSH
Разрешите порт 27017 для сервера MongoDB и порт 4567 для работы форума NodeBB. Также разрешите порты HTTP и HTTPS.
$ sudo ufw allow 27017
$ sudo ufw allow 4567
$ sudo ufw allow 80
$ sudo ufw allow 443
Включите брандмауэр.
$ sudo ufw enable
Команда может нарушить существующие ssh-соединения. Продолжить операцию (y|n)? y
Брандмауэр активен и включен при запуске системы
Проверьте статус брандмауэра снова.
$ sudo ufw status
Вы должны увидеть аналогичный вывод.
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
27017 ALLOW Anywhere
4567 ALLOW Anywhere
80 ALLOW Anywhere
443 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
27017 (v6) ALLOW Anywhere (v6)
4567 (v6) ALLOW Anywhere (v6)
80 (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
Шаг 2 - Установка Node.js
Мы установим LTS-версию Node.js. Выполните следующие команды для установки Node.js.
$ curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
$ sudo apt install nodejs
Проверьте, правильно ли установлен Node.
$ node --version
Вы должны увидеть аналогичный вывод.
v12.18.3
Проверьте npm также.
$ npm --version
6.14.6
Шаг 3 - Установка MongoDB
MongoDB является базой данных по умолчанию для NodeBB. Вы также можете использовать Redis вместо MongoDB. Мы рассмотрим обе базы данных в нашем руководстве.
Репозиторий MongoDB для Ubuntu 20.04 еще не готов, и сама Ubuntu содержит очень старую версию. Для наших целей мы будем использовать репозиторий MongoDB для 18.04, который работает отлично. Вы можете обновить список пакетов с последним репозиторием, как только официальная поддержка станет доступна.
Импортируйте публичный ключ для MongoDB.
$ wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
Добавьте репозиторий MongoDB.
$ echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
Обновите локальную базу данных пакетов.
$ sudo apt update
Установите MongoDB.
$ sudo apt install mongodb-org
Проверьте установку MongoDB.
$ mongod --version
db version v4.2.8
...
Запустите службу MongoDB.
$ sudo systemctl start mongod
Включите службу MongoDB.
$ sudo systemctl enable mongod
Проверьте статус службы MongoDB.
$ sudo systemctl status mongod
Шаг 4 - Настройка MongoDB
Администрирование MongoDB осуществляется через оболочку MongoDB. Установка MongoDB по умолчанию слушает на порту 27017.
Получите доступ к оболочке MongoDB.
$ mongo
Переключитесь на встроенную базу данных admin.
> use admin
Создайте административного пользователя. Это не то же самое, что и пользователь администратора NodeBB.
> db.createUser( { user: "admin", pwd: "yourpassword", roles: [ { role: "root", db: "admin" } ] } )
Замените заполнители “yourpassword” на ваш собственный пароль.
Добавьте новую базу данных для NodeBB.
> use nodebb
Далее создайте пользователя nodebb для управления базой данных nodebb.
> db.createUser( { user: "nodebb", pwd: "yourpassword", roles: [ { role: "readWrite", db: "nodebb" }, { role: "clusterMonitor", db: "admin" } ] } )
Разрешение readwrite позволяет NodeBB сохранять и извлекать данные из базы данных nodebb. Разрешение clustermonitor позволяет NodeBB получать только для чтения доступ к статистике базы данных, которая видна через его панель администратора.
Выйдите из оболочки Mongo.
> quit()
Откройте файл конфигурации MongoDB для редактирования.
$ sudo nano /etc/mongod.conf
Добавьте следующую строку в конец файла.
security:
authorization: enabled
Перезапустите MongoDB и проверьте созданного ранее административного пользователя.
$ sudo systemctl restart mongod
$ mongo -u admin -p yourpassword --authenticationDatabase=admin
Вы должны увидеть приглашение Mongo, если все было настроено правильно.
Шаг 5 - Установка Git
Прежде чем мы продолжим установку NodeBB, нам нужно установить Git.
Выполните следующую команду для установки Git.
$ sudo apt install git
Выполните следующие команды для первоначальной настройки Git.
$ git config --global user.name "Ваше Имя"
$ git config --global user.email "[email protected]"
Шаг 6 - Установка NodeBB
Не рекомендуется запускать NodeBB от имени пользователя root.
Создайте пользователя без привилегий.
$ sudo adduser nodebb
Установите пароль на ваш выбор и пропустите другие параметры.
Создайте каталог, в котором будет находиться ваш форум NodeBB.
$ sudo mkdir /var/www/nodebb
Измените владельца папки на вновь созданного пользователя.
$ sudo chown -R nodebb:nodebb /var/www/nodebb
Войдите в вновь созданного пользователя.
$ su nodebb
Перейдите в каталог установки NodeBB.
$ cd /var/www/nodebb
Чтобы установить NodeBB, сначала нам нужно клонировать его репозиторий на Github.
Клонируйте NodeBB в каталог /var/www/nodebb. Точка в конце команды относится к текущему каталогу.
$ git clone -b v1.14.2 https://github.com/NodeBB/NodeBB.git .
Здесь мы клонировали v1.14.2 NodeBB, которая была последней стабильной версией на момент написания руководства. Вы можете найти последнюю стабильную ветку на странице последних релизов NodeBB.
NodeBB поставляется с утилитой командной строки. Используйте следующую команду для установки NodeBB.
$ ./nodebb setup
Вы можете нажать Enter, чтобы выбрать значение по умолчанию.
Для значения URL, используемого для доступа к этому NodeBB, выберите окончательный URL, по которому вы хотите получить доступ к форуму. Если вы будете получать доступ к форуму через IP-адрес вашего сервера, введите его или введите полный домен форума. Здесь мы введем http://forum.example.com.
Продолжайте выбирать значения по умолчанию, пока не появится запрос на имя пользователя MongoDB, когда вы введете nodebb и пароль, который вы выбрали ранее для этого имени пользователя при настройке MongoDB. Ваша база данных nodebb должна быть выбрана. Вам также будет предложено создать пользователя администратора и его данные.
После завершения настройки выполните следующую команду, чтобы запустить NodeBB.
$ ./nodebb start
Ваш форум теперь работает. Вы должны иметь возможность получить к нему доступ по адресу http://.

Вы можете увидеть сообщение об ошибке, говорящим Похоже, ваше соединение с NodeBB было потеряно, пожалуйста, подождите, пока мы пытаемся восстановить соединение. Это происходит потому, что мы выбрали URL по умолчанию для NodeBB http://forum.example.com, а не http://
Выйдите из пользователя NodeBB.
$ exit
Шаг 7 - Установка Nginx
Ubuntu 20.04 по умолчанию поставляется с последней стабильной версией Nginx. Мы установим ее.
$ sudo apt install nginx
Проверьте, правильно ли она установлена.
$ nginx -v
nginx version: nginx/1.18.0 (Ubuntu)
Запустите и включите Nginx.
$ sudo systemctl start nginx
$ sudo systemctl enable nginx
Откройте IP-адрес вашего сервера в веб-браузере. Вы должны увидеть следующую страницу, что означает, что ваш сервер работает.

Шаг 8 - Настройка Nginx
Выполните следующую команду, чтобы добавить файл конфигурации для вашего сайта.
$ sudo nano /etc/nginx/sites-available/nodebb.conf
Вставьте следующий код в редактор.
server {
listen 80;
server_name forum.example.com;
access_log /var/log/nginx/forum.example.com.access.log;
error_log /var/log/nginx/forum.example.com.error.log;
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";
}
}
Нажмите Ctrl + X, чтобы выйти из редактора, и введите Y, когда будет предложено.
После завершения проверьте, правильна ли конфигурация Nginx.
$ sudo nginx -t
Перезагрузите службу Nginx, чтобы включить конфигурацию.
$ sudo systemctl reload nginx
Посетите http://forum.example.com в вашем браузере, чтобы открыть форум NodeBB.

Шаг 9 - Запуск NodeBB как системной службы
Служба NodeBB не будет работать после перезагрузки системы. Чтобы избежать запуска NodeBB каждый раз, нам нужно установить его как системную службу.
Сначала остановите службу NodeBB.
$ ./nodebb stop
Выполните следующую команду, чтобы создать и отредактировать файл конфигурации системного юнита nodebb.service systemd.
$ 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=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, которое мы создали на Шаге 6, и путь, который мы выбрали для установки NodeBB.
Включите службу NodeBB.
$ sudo systemctl enable nodebb
Запустите службу NodeBB.
$ sudo systemctl start nodebb
Проверьте статус службы.
$ sudo systemctl status nodebb
Шаг 10 - Получение SSL-сертификата Let’s Encrypt
Защита вашего форума NodeBB с помощью HTTPS — это необходимый шаг для обеспечения безопасности трафика вашего сайта. Для этого руководства мы будем использовать клиент Certbot для установки SSL.
Для этого сначала установите инструмент Certbot.
$ sudo apt install certbot python3-certbot-nginx
Сгенерируйте сертификаты.
$ sudo certbot --nginx -d forum.example.com
Если вы впервые запускаете Certbot на своем компьютере, вас попросят указать адрес электронной почты и согласиться с условиями обслуживания. Вам также будет предложено согласиться на передачу данных в фонд EFF, на что вы можете ответить «нет». После этого Certbot свяжется с серверами Let’s Encrypt и запустит проверку, чтобы подтвердить ваши домены.
Если это будет успешно, вам будет предложено, как обрабатывать HTTPS-перенаправления.
Пожалуйста, выберите, требуется ли HTTPS-доступ или он является необязательным.
-------------------------------------------------------------------------------
1: Легкий - Разрешить как HTTP, так и HTTPS-доступ к этим сайтам
2: Безопасный - Сделать все запросы перенаправленными на безопасный HTTPS-доступ
-------------------------------------------------------------------------------
Выберите соответствующий номер [1-2], затем [введите] (нажмите 'c', чтобы отменить):
Выберите вариант Безопасный и нажмите Enter. Это обеспечит правильное перенаправление всех запросов к http-домену на https-версию. Ваши сертификаты будут созданы, и ваши файлы конфигурации Nginx будут обновлены с настройками SSL.
Ваши сертификаты готовы, и теперь вы можете открыть свой сайт, перейдя по адресу https://forum.example.com
Шаг 11 - Проверка автоматического продления SSL
Это последний шаг перед завершением этого руководства.
Проверьте процесс продления, выполнив пробный запуск процесса продления.
$ sudo certbot renew --dry-run
Если вы не получите ошибок, это означает, что вы готовы. Certbot автоматически продлит ваши сертификаты. Вам будет отправлено электронное письмо с предупреждением о сроке действия сертификата.
Заключение
На этом все в этом руководстве. Настройка вашего форума NodeBB завершена. Если у вас есть вопросы, оставляйте их в комментариях ниже.
Get new posts in your inbox
No spam. Unsubscribe anytime.