Установка NodeBB · 11 min read · Oct 14, 2025
Как установить форум NodeBB на Ubuntu 22.04

NodeBB — это современное программное обеспечение для форумов, основанное на фреймворке Node.js. Оно использует базы данных MongoDB, PostgreSQL или Redis для хранения данных. NodeBB использует веб-сокеты для уведомлений в реальном времени и мгновенных взаимодействий. У него есть современные функции, такие как интеграция с социальными сетями, поддержка плагинов, адаптивный дизайн и полные REST API для чтения/записи.
NodeBB доступен как в виде проекта с открытым исходным кодом для самостоятельного хостинга, так и в виде облачного сервиса. В этом руководстве вы узнаете, как установить форум NodeBB с использованием Nginx на сервере Ubuntu 22.04. Ubuntu 22.04 официально не поддерживает MongoDB; поэтому мы будем использовать PostgreSQL для хранения данных.
Предварительные требования
- Сервер с установленной Ubuntu 22.04 и минимум 1 ГБ оперативной памяти.
- Пользователь без прав root с привилегиями sudo.
- Упрощенный брандмауэр (UFW) включен и работает.
- Полностью квалифицированное доменное имя (FQDN), указывающее на сервер, например,
forum.example.com. - Все обновлено.
$ sudo apt update && sudo apt upgrade
Шаг 1 - Настройка брандмауэра
Перед установкой любых пакетов первым шагом является настройка брандмауэра для разрешения HTTP и HTTPS соединений.
Проверьте статус брандмауэра.
$ sudo ufw statusВы должны увидеть что-то вроде следующего.
Статус: активен
Кому Действие Откуда
-- ------ ----
OpenSSH РАЗРЕШИТЬ Везде
OpenSSH (v6) РАЗРЕШИТЬ Везде (v6)Разрешите порты HTTP и HTTPS.
$ sudo ufw allow http
$ sudo ufw allow httpsПроверьте статус снова, чтобы подтвердить.
$ sudo ufw status
Статус: активен
Кому Действие Откуда
-- ------ ----
OpenSSH РАЗРЕШИТЬ Везде
80/tcp РАЗРЕШИТЬ Везде
443 РАЗРЕШИТЬ Везде
OpenSSH (v6) РАЗРЕШИТЬ Везде (v6)
80/tcp (v6) РАЗРЕШИТЬ Везде (v6)
443 (v6) РАЗРЕШИТЬ Везде (v6)Шаг 2 - Установка PostgreSQL
Первый шаг в установке PostgreSQL — добавить его GPG ключ.
$ curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql-key.gpg >/dev/nullДобавьте APT репозиторий в список источников.
$ sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/postgresql-key.gpg arch=amd64] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'Обновите системный репозиторий.
$ sudo apt updateТеперь вы можете установить PostgreSQL.
$ sudo apt install postgresql postgresql-contribПроверьте статус службы PostgreSQL.
$ sudo systemctl status postgresql
? postgresql.service - PostgreSQL RDBMS
Загружено: загружено (/lib/systemd/system/postgresql.service; включено; предустановлено: включено)
Активно: активно (вышло) с Сб 2022-09-10 06:25:11 UTC; 13с назад
Процесс: 12083 ExecStart=/bin/true (код=вышел, статус=0/УСПЕХ)
Основной PID: 12083 (код=вышел, статус=0/УСПЕХ)
CPU: 1мс
Сен 10 06:25:11 nodebb systemd[1]: Запуск PostgreSQL RDBMS...
Сен 10 06:25:11 nodebb systemd[1]: Завершен PostgreSQL RDBMS.Шаг 3 - Настройка PostgreSQL
Нам нужно установить пароль для административного пользователя по умолчанию postgres. Сначала войдите в оболочку Postgres.
$ sudo -u postgres psqlВведите следующую команду, чтобы изменить пароль.
postgres=# \password postgresВас попросят ввести новый пароль.
Введите новый пароль для пользователя "postgres":
Введите его снова:Создайте нового пользователя для NodeBB.
postgres=# CREATE ROLE nbbuser WITH LOGIN ENCRYPTED PASSWORD 'YourNodeBBPassword';Создайте новую базу данных для NodeBB.
postgres=# CREATE DATABASE nodebbdb OWNER nbbuser;Наберите \q, чтобы выйти из оболочки.
postgres=# \qШаг 4 - Установка Node.js
Поскольку форум NodeBB написан с использованием фреймворка Node.js, нам нужно установить его, чтобы он работал.
Выполните следующие команды для установки LTS (v16.x) версии Node.js.
$ curl -sL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
$ sudo apt install nodejsПроверьте установку Node.js и NPM.
$ node -v
v16.17.0
$ npm -v
8.15.0Шаг 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 --disabled-passwordПропустите все остальные параметры.
Создайте каталог, в котором будет находиться ваш форум NodeBB.
$ sudo mkdir /var/www/html/nodebb -pИзмените владельца папки на вновь созданного пользователя.
$ sudo chown -R nodebb:nodebb /var/www/html/nodebbВойдите в только что созданного пользователя.
$ sudo su - nodebbПерейдите в каталог установки NodeBB.
$ cd /var/www/html/nodebbЧтобы установить NodeBB, сначала нам нужно клонировать его репозиторий GitHub.
Клонируйте NodeBB в каталог /var/www/nodebb. Точка в конце команды указывает на текущий каталог.
$ git clone -b v2.x https://github.com/NodeBB/NodeBB.git .Здесь мы клонировали ветку v2.x NodeBB, которая содержит последнюю стабильную версию NodeBB. Вы можете найти последнюю стабильную ветку на странице последних веток NodeBB.
NodeBB поставляется с утилитой командной строки. Используйте следующую команду для установки NodeBB.
$ ./nodebb setupВы можете нажать Enter, чтобы выбрать значение по умолчанию.
2022-09-10T10:10:27.957Z [2633] - info: Установка NodeBB инициирована через командную строку
Добро пожаловать в NodeBB v2.5.2!
Это выглядит как новая установка, поэтому вам нужно будет ответить на несколько вопросов о вашей среде, прежде чем мы сможем продолжить.
Нажмите Enter, чтобы принять настройки по умолчанию (показаны в скобках).
URL, используемый для доступа к этому NodeBB (http://localhost:4567) https://forum.example.com
Пожалуйста, введите секрет NodeBB (44fd62bc-5047-4414-a4ca-83105740b624)
Хотите ли вы отправить анонимное использование плагинов в nbbpm? (да) нет
Какую базу данных использовать (mongo) postgres
2022-09-10T10:10:43.237Z [2633] - info:
Теперь настраиваем базу данных postgres:
IP-адрес или адрес вашего экземпляра PostgreSQL (127.0.0.1)
Порт хоста вашего экземпляра PostgreSQL (5432)
Имя пользователя PostgreSQL nbbuser
Пароль вашей базы данных PostgreSQL
Имя базы данных PostgreSQL (nodebb) nodebbdb
Включить SSL для доступа к базе данных PostgreSQL (ложь)
........Для значения URL, используемого для доступа к этому NodeBB, выберите окончательный URL, по которому вы хотите получить доступ к форуму. Если вы будете получать доступ к форуму через IP-адрес вашего сервера, введите его или введите полное доменное имя форума. Здесь мы введем https://forum.example.com. Выберите нет в ответ на вопрос о отправке анонимного использования плагинов. Введите postgres в качестве типа базы данных.
Затем выберите IP-адрес хоста и порт по умолчанию, нажав Enter, и введите ваше имя пользователя PostgreSQL, которое вы ввели nbbuser, и пароль, который вы выбрали ранее для этого имени пользователя при настройке MongoDB. Ваша база данных nodebbdb должна быть выбрана.
Вас также попросят создать администратора и его данные.
.....
2022-09-10T10:11:14.121Z [2633] - warn: Не обнаружены администраторы, выполняется начальная настройка пользователя
Имя пользователя администратора navjot
Адрес электронной почты администратора [email protected]
Пароль
Подтвердите пароль
.....
....
2022-09-10T10:14:28.160Z [2633] - info: [build] Компиляция активов успешна. Завершено за 118.777 сек.
=================================================================================================================================================================
Установка NodeBB завершена. Запустите "./nodebb start", чтобы вручную запустить сервер NodeBB.После завершения настройки выполните следующую команду, чтобы запустить NodeBB.
$ ./nodebb start
Запуск NodeBB
"./nodebb stop", чтобы остановить сервер NodeBB
"./nodebb log", чтобы просмотреть вывод сервера
"./nodebb help" для получения дополнительных командВыйдите из пользователя NodeBB.
$ exitШаг 7 - Запуск NodeBB как системной службы
Служба NodeBB не будет работать после перезагрузки системы. Чтобы избежать запуска NodeBB каждый раз, нам нужно установить его как системную службу.
Сначала остановите службу NodeBB. Перейдите в каталог NodeBB и затем выполните команду напрямую, используя команду sudo -u.
$ cd /var/www/html/nodebb
$ sudo -u 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 postgresql.service
[Service]
Type=simple
User=nodebb
StandardError=syslog
SyslogIdentifier=nodebb
Environment=NODE_ENV=production
WorkingDirectory=/var/www/html/nodebb
ExecStart=/usr/bin/env node loader.js --no-silent --no-daemon
Restart=always
[Install]
WantedBy=multi-user.targetЗдесь мы выбрали имя пользователя nodebb, которое мы создали на Шаге 6, и путь, который мы выбрали для установки NodeBB.
Включите службу NodeBB.
$ sudo systemctl enable nodebbЗапустите службу NodeBB.
$ sudo systemctl start nodebbПроверьте статус службы.
$ sudo systemctl status nodebb
? nodebb.service - NodeBB
Загружено: загружено (/etc/systemd/system/nodebb.service; включено; предустановлено: включено)
Активно: активно (работает) с Вс 2022-09-11 21:41:07 UTC; 2с назад
Документы: https://docs.nodebb.org
Основной PID: 26844 (node)
Задачи: 18 (лимит: 2237)
Память: 94.1M
CPU: 2.114с
CGroup: /system.slice/nodebb.service
??26844 node loader.js --no-silent --no-daemon
??26855 /usr/bin/node /var/www/html/nodebb/app.js
Сен 11 21:41:07 forum systemd[1]: Запущен NodeBB.
Сен 11 21:41:07 forum nodebb[26844]: NodeBB v2.5.2 Copyright (C) 2013-2022 NodeBB Inc.
Сен 11 21:41:07 forum nodebb[26844]: Эта программа поставляется БЕЗ ГАРАНТИЙ.
Сен 11 21:41:07 forum nodebb[26844]: Это бесплатное программное обеспечение, и вы можете перераспределять его при определенных условиях.
Сен 11 21:41:07 forum nodebb[26844]: Для получения полной лицензии, пожалуйста, посетите: http://www.gnu.org/copyleft/gpl.html
Сен 11 21:41:07 forum nodebb[26844]: Включено кластерирование: Запуск 1 процесса(ов).
Сен 11 21:41:08 forum nodebb[26855]: 2022-09-11T21:41:08.002Z [4567/26855] - info: Инициализация NodeBB v2.5.2 https://forum.example.comШаг 8 - Установка Nginx
Ubuntu 22.04 поставляется со старой версией Nginx. Чтобы установить последнюю версию, вам нужно загрузить официальный репозиторий Nginx.
Импортируйте ключ подписи Nginx.
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/nullДобавьте репозиторий для стабильной версии Nginx.
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.listОбновите системные репозитории.
$ sudo apt updateУстановите Nginx.
$ sudo apt install nginxПроверьте установку.
$ nginx -v
nginx version: nginx/1.22.0Запустите сервер Nginx.
$ sudo systemctl start nginxШаг 9 - Установка SSL
Нам нужно установить Certbot для генерации SSL сертификата. Вы можете установить Certbot, используя репозиторий Ubuntu, или загрузить последнюю версию с помощью инструмента Snapd. Мы будем использовать версию Snapd.
Ubuntu 22.04 поставляется с установленным Snapd по умолчанию. Выполните следующие команды, чтобы убедиться, что ваша версия Snapd обновлена.
$ sudo snap install core
$ sudo snap refresh coreУстановите Certbot.
$ sudo snap install --classic certbotИспользуйте следующую команду, чтобы убедиться, что команда Certbot может быть выполнена, создав символическую ссылку на каталог /usr/bin.
$ sudo ln -s /snap/bin/certbot /usr/bin/certbotВыполните следующую команду, чтобы сгенерировать SSL сертификат.
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d forum.example.comВышеуказанная команда загрузит сертификат в каталог /etc/letsencrypt/live/forum.example.com на вашем сервере.
Сгенерируйте сертификат группы Диффи-Хеллмана.
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096Чтобы проверить, работает ли автоматическое обновление SSL, выполните пробный запуск процесса.
$ sudo certbot renew --dry-runЕсли вы не видите ошибок, вы готовы. Ваш сертификат будет автоматически обновляться.
Шаг 10 - Настройка Nginx
Откройте файл /etc/nginx/nginx.conf для редактирования.
$ sudo nano /etc/nginx/nginx.confДобавьте следующую строку перед строкой include /etc/nginx/conf.d/*.conf;.
server_names_hash_bucket_size 64;Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Создайте и откройте файл /etc/nginx/conf.d/nodebb.conf для редактирования.
$ sudo nano /etc/nginx/conf.d/nodebb.confВставьте следующий код в него. Замените forum.example.com на ваше доменное имя. Убедитесь, что значение client_max_body_size установлено на 25 МБ, чтобы установить размер загрузки для форума.
server {
listen 80 default_server;
server_name forum.example.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name forum.example.com;
http2_push_preload on; # Включить HTTP/2 Server Push
ssl_certificate /etc/letsencrypt/live/forum.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/forum.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/forum.example.com/chain.pem;
ssl_session_timeout 1d;
# Включить версии TLS (TLSv1.3 требуется для предстоящего HTTP/3 QUIC).
ssl_protocols TLSv1.2 TLSv1.3;
# Включить 0-RTT TLSv1.3. Используйте $ssl_early_data при обратном проксировании, чтобы
# предотвратить атаки повторного воспроизведения.
#
# @see: https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_early_data
ssl_early_data on;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:50m;
# OCSP Stapling ---
# извлекать OCSP записи из URL в ssl_certificate и кэшировать их
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
client_max_body_size 25M;
gzip on;
gzip_min_length 1000;
gzip_proxied off;
gzip_types text/plain application/xml text/javascript application/javascript application/x-javascript text/css application/json;
add_header X-Early-Data $tls1_3_early_data;
location / {
# Поддержка Socket.IO
proxy_set_header Connection "upgrade";
proxy_set_header Upgrade $http_upgrade;
proxy_http_version 1.1;
proxy_set_header Host $http_host;
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 X-NginX-Proxy true;
proxy_set_header X-Frame-Options SAMEORIGIN;
proxy_pass http://127.0.0.1:4567; # без завершающего слэша
proxy_redirect off;
}
location @nodebb {
proxy_pass http://127.0.0.1:4567;
}
location ~ ^/assets/(.*) {
root /var/www/html/nodebb/;
try_files /build/public/$1 /public/$1 @nodebb;
}
}
# Этот блок полезен для отладки TLS v1.3. Пожалуйста, не стесняйтесь удалять это
# и использовать переменную `$ssl_early_data`, предоставленную NGINX, напрямую, если вы
# хотите это сделать.
map $ssl_early_data $tls1_3_early_data {
"~." $ssl_early_data;
default "";
}Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Проверьте вашу конфигурацию Nginx.
$ sudo nginx -tПерезапустите сервер Nginx.
$ sudo systemctl restart nginxШаг 11 - Доступ и настройка форума
Вы можете получить доступ к форуму, посетив URL https://forum.example.com в вашем браузере. Вы увидите следующую страницу.

Нажмите на страницу входа и введите учетные данные администратора, которые вы создали на шаге 6.

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

После установки любой темы и плагина вам необходимо перестроить и перезапустить форум, используя кнопку в правом верхнем углу панели управления администратора, как показано здесь.
Убедитесь, что вы настроили свою почтовую службу, перейдя в Панель управления >> Настройки >> Электронная почта, чтобы ваши пользователи форума могли получать электронные письма. Выберите следующие настройки, чтобы обеспечить оптимальные настройки доставки электронной почты.

Прокрутите вниз до страницы и выберите пользовательский почтовый клиент из выпадающего списка или используйте пользовательский почтовый клиент, если ваша SMTP служба не в списке. Для нашего руководства мы используем службу SES.

Нажмите на значок дискеты в правом нижнем углу, чтобы сохранить настройки.
Прокрутите вниз до конца страницы, чтобы отправить тестовое электронное письмо. По умолчанию оно отправит шаблон запрещенного электронного письма. Вы можете выбрать любой другой шаблон электронной почты для тестирования. Мы отправим приветственное письмо.

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

Заключение
Это завершает наше руководство по установке форума NodeBB с использованием базы данных PostgreSQL и Nginx на сервере Ubuntu 22.04. Если у вас есть какие-либо вопросы, оставьте их в комментариях ниже.
Get new posts in your inbox
No spam. Unsubscribe anytime.