Skip to content
  • Категории
  • Последние
  • Метки
  • Популярные
  • World
  • Пользователи
  • Группы
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • По умолчанию (Darkly)
  • Нет скина
Collapse

База знаний (кластер NBICS)

  1. Главная
  2. NodeBB
  3. NodeBB - установка на Debian 12

NodeBB - установка на Debian 12

Запланировано Прикреплена Закрыта Перенесена NodeBB
9 Сообщения 1 Posters 3 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • A Не в сети
    A Не в сети
    Admin
    написал отредактировано
    #1

    Содержание

    1 ответ Последний ответ
    0
    • A Не в сети
      A Не в сети
      Admin
      написал отредактировано
      #2

      Установка NodeBB на Debian 12 (Bookworm)

      Эта инструкция адаптирована для Debian 12 (Bookworm) и устанавливает NodeBB с использованием MongoDB 8.0 в качестве базы данных. Предполагается использование полностью обновлённой системы.


      Системные требования

      • Память: Установка зависимостей NodeBB может потребовать более 512 МБ оперативной памяти.
        Рекомендуется включить swap-раздел (например, 1–2 ГБ), если у вас мало RAM.
      # Пример создания swap-файла 2 ГБ (если нет раздела)
      sudo fallocate -l 2G /swapfile
      sudo chmod 600 /swapfile
      sudo mkswap /swapfile
      sudo swapon /swapfile
      echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
      

      Обновление системы

      sudo apt update && sudo apt upgrade -y
      

      1 ответ Последний ответ
      0
      • A Не в сети
        A Не в сети
        Admin
        написал отредактировано
        #3

        Установка Node.js (версия 22 LTS)

        NodeBB требует Node.js 22.x (LTS на ноябрь 2025 года). Устанавливаем из репозитория NodeSource.

        1. Импорт GPG-ключа NodeSource

        sudo apt-get install -y ca-certificates curl gnupg
        sudo mkdir -p /etc/apt/keyrings
        curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
        

        2. Добавление репозитория Node.js 22.x

        echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
        

        3. Установка

        sudo apt update
        sudo apt install nodejs -y
        

        Проверка

        node -v    # должно быть v22.x.x
        npm -v     # должно быть 10.x.x
        

        1 ответ Последний ответ
        0
        • A Не в сети
          A Не в сети
          Admin
          написал отредактировано
          #4

          Установка MongoDB 8.0

          MongoDB 8.0 — официально поддерживаемая версия. Используем репозиторий MongoDB для Debian 12 (bookworm).

          1. Импорт GPG-ключа MongoDB

          sudo apt-get install -y gnupg curl
          curl -fsSL https://pgp.mongodb.com/server-8.0.asc | \
             sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg --dearmor
          

          2. Добавление репозитория (важно: bookworm, а не bullseye)

          echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] http://repo.mongodb.org/apt/debian bookworm/mongodb-org/8.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list
          

          3. Установка

          sudo apt update
          sudo apt install -y mongodb-org
          

          Проверка

          mongod --version
          # db version v8.0.x
          

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

          sudo systemctl start mongod
          sudo systemctl enable mongod
          sudo systemctl status mongod
          

          1 ответ Последний ответ
          0
          • A Не в сети
            A Не в сети
            Admin
            написал отредактировано
            #5

            Настройка MongoDB (с авторизацией)

            1. Подключение к MongoDB Shell

            mongosh
            

            2. Создание администратора (в базе admin)

            use admin
            db.createUser({
              user: "admin",
              pwd: "ВАШ_НАДЁЖНЫЙ_ПАРОЛЬ",
              roles: [ { role: "root", db: "admin" } ]
            })
            

            Замените ВАШ_НАДЁЖНЫЙ_ПАРОЛЬ на сложный пароль (без <>).

            3. Создание базы и пользователя для NodeBB

            use nodebb
            db.createUser({
              user: "nodebb",
              pwd: "ВАШ_ПАРОЛЬ_NODEBB",
              roles: [
                { role: "readWrite", db: "nodebb" },
                { role: "clusterMonitor", db: "admin" }
              ]
            })
            

            4. Выход

            quit()
            

            5. Включение авторизации

            Отредактируйте конфигурацию:

            sudo nano /etc/mongod.conf
            

            Добавьте в конец:

            security:
              authorization: enabled
            

            6. Перезапуск MongoDB

            sudo systemctl restart mongod
            

            7. Проверка подключения с авторизацией

            mongosh "mongodb://localhost:27017" --username admin --authenticationDatabase admin
            

            (Вас попросят ввести пароль admin. Выйдите через quit().)


            1 ответ Последний ответ
            0
            • A Не в сети
              A Не в сети
              Admin
              написал отредактировано Admin
              #6

              Установка NodeBB

              1. Установка Git

              sudo apt install -y git
              

              Важно: Дальше не используйте sudo! Переключитесь на обычного пользователя.

              2. Клонирование репозитория (ветка v4.x — стабильная)

              git clone -b v4.x https://github.com/NodeBB/NodeBB.git nodebb
              cd nodebb
              

              2.5. Запуск настройки

              • Заходим через файловый менеджер mc
              • Выбираем каталог install (получится nodebb/install)
              • Копируем оттуда файл package.json на уровень выше, то есть в каталог nodebb
              • Выходим из mc

              3. Запуск настройки

              ./nodebb setup
              

              Ответы на вопросы:

              • URL сайта: http://ваш-домен.ру (точно так, как будете открывать)
              • Порт: 4567 (по умолчанию)
              • База данных: mongo
              • Хост MongoDB: localhost
              • Порт MongoDB: 27017
              • Имя пользователя: nodebb
              • Пароль: ВАШ_ПАРОЛЬ_NODEBB (из шага выше)
              • Создание администратора: заполните логин, email, пароль

              ПРИМЕР


              Welcome to NodeBB v4.7.0!
              
              This looks like a new installation, so you'll have to answer a few questions about your environment before we can proceed.
              Press enter to accept the default setting (shown in brackets).
              URL used to access this NodeBB (http://localhost:4567) https://pixelfed.nbics.net
              Please enter a NodeBB secret (90ade1b2-f52b-47e2-b3aa-3560c174bfea) 
              Would you like to submit anonymous plugin usage to nbbpm? (yes) no
              Which database to use (mongo) 
              2025-12-05T20:15:09.594Z [5423] - info: 
              Now configuring mongo database:
              MongoDB connection URI: (leave blank if you wish to specify host, port, username/password and database individually)
              Format: mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]] 
              Host IP or address of your MongoDB instance (127.0.0.1) 
              Host port of your MongoDB instance (27017) 
              MongoDB username nodebb
              Password of your MongoDB database 
              MongoDB database name (nodebb) nodebb
              2025-12-05T20:16:31.596Z [5423] - info: [database] Checking database indices.
              2025-12-05T20:16:32.210Z [5423] - info: [database] Checking database indices done!
              2025-12-05T20:16:33.290Z [5423] - verbose: [minifier] utilizing a maximum of 7 additional threads
              Configuration Saved OK
              Populating database with default configs, if not already set...
              2025-12-05T20:16:33.348Z [5423] - warn: [cache-buster] could not read cache buster ENOENT: no such file or directory, open '/nodebb/build/cache-buster' {"code":"ENOENT","errno":-2,"path":"/nodebb/build/cache-buster","stack":"Error: ENOENT: no such file or directory, open '/nodebb/build/cache-buster'\n    at async open (node:internal/fs/promises:641:25)\n    at async Object.readFile (node:internal/fs/promises:1245:14)\n    at async read (/nodebb/src/meta/cacheBuster.js:31:18)\n    at async Configs.init (/nodebb/src/meta/configs.js:90:17)\n    at async setupDefaultConfigs (/nodebb/src/install.js:249:2)\n    at async install.setup (/nodebb/src/install.js:617:3)\n    at async Object.setup (/nodebb/src/cli/setup.js:30:15)","syscall":"open"}
              Enabling default theme: nodebb-theme-harmony
              No categories found, populating instance with default categories
              2025-12-05T20:16:33.760Z [5423] - warn: No administrators have been detected, running initial user setup
              
              Administrator username Admin
              Administrator email address forumbb@rpost.nbics.net
              Password 
              Confirm Password 
              
              

              4. Запуск NodeBB

              ./nodebb start
              

              Проверьте: http://ваш-ip:4567 — должен открыться форум.


              После завершения появится: NodeBB Setup Completed.

              1 ответ Последний ответ
              0
              • A Не в сети
                A Не в сети
                Admin
                написал отредактировано
                #7

                Установка и настройка nginx (обратный прокси)

                1. Установка

                sudo apt install -y nginx
                

                2. Проверка

                sudo systemctl start nginx
                sudo systemctl enable nginx
                sudo systemctl status nginx
                

                3. Создание конфигурации сайта

                cd /etc/nginx/sites-available
                sudo nano forum.ваш-домен.ру
                

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

                server {
                    listen 80;
                    server_name forum.ваш-домен.ру;
                
                    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;
                
                        # Поддержка WebSocket (Socket.IO)
                        proxy_http_version 1.1;
                        proxy_set_header Upgrade $http_upgrade;
                        proxy_set_header Connection "upgrade";
                    }
                }
                

                4. Активация сайта

                cd /etc/nginx/sites-enabled
                sudo ln -s ../sites-available/forum.ваш-домен.ру .
                

                5. Проверка и перезагрузка

                sudo nginx -t
                sudo systemctl reload nginx
                

                (Рекомендуется) Настройка HTTPS через Certbot

                sudo apt install -y certbot python3-certbot-nginx
                sudo certbot --nginx -d forum.ваш-домен.ру
                

                Следуйте инструкциям (включите редирект с HTTP → HTTPS).


                6. Замена конфига Nginx.

                После создания сертификата, затираем предыдущий конфиг Nginx, и подставляем туда следующие строки (заменяя доменное имя и проксируемый IP-адрес на нужные):

                server {
                
                    server_name pixelfed.nbics.net;
                
                    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://10.0.3.110:4567;
                        proxy_redirect off;
                
                        # Socket.IO Support
                        proxy_http_version 1.1;
                        proxy_set_header Upgrade $http_upgrade;
                        proxy_set_header Connection "upgrade";
                    }
                
                    listen 443 ssl; # managed by Certbot
                    ssl_certificate /etc/letsencrypt/live/pixelfed.nbics.net/fullchain.pem; # managed by Certbot
                    ssl_certificate_key /etc/letsencrypt/live/pixelfed.nbics.net/privkey.pem; # managed by Certbot
                    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
                    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
                
                }server {
                    if ($host = pixelfed.nbics.net) {
                        return 301 https://$host$request_uri;
                    } # managed by Certbot
                
                
                    listen 80;
                
                    server_name pixelfed.nbics.net;
                    return 404; # managed by Certbot
                
                
                }
                
                

                7. Повторная проверка и перезагрузка Nginx

                sudo nginx -t
                sudo systemctl reload nginx
                
                1 ответ Последний ответ
                0
                • A Не в сети
                  A Не в сети
                  Admin
                  написал отредактировано
                  #8

                  Управление NodeBB


                  ⚙️ Основные команды NodeBB

                  Команда Описание
                  ./nodebb start Запуск экземпляра NodeBB (в фоновом режиме).
                  ./nodebb stop Остановка запущенного экземпляра NodeBB.
                  ./nodebb restart Перезапуск экземпляра NodeBB.
                  ./nodebb log Просмотр логов в реальном времени (с использованием tail -f).
                  ./nodebb status Проверка статуса запущенного процесса NodeBB.

                  🛠️ Команды для разработки и обслуживания

                  Команда Описание
                  ./nodebb dev Запуск NodeBB в режиме разработки. Включает горячую перезагрузку шаблонов и логов.
                  ./nodebb setup Настройка NodeBB (первоначальная установка или изменение конфигурации).
                  ./nodebb upgrade Выполнение обновления базы данных и файлов NodeBB до последней версии.
                  ./nodebb reset Сброс конфигурации NodeBB (не рекомендуется без необходимости).
                  ./nodebb build Пересборка клиентских скриптов и стилей (обычно требуется после обновления или установки плагинов).
                  ./nodebb activate plugin-name Активация указанного плагина.
                  ./nodebb deactivate plugin-name Деактивация указанного плагина.

                  📂 Команды для базы данных

                  Команда Описание
                  ./nodebb backup Создание резервной копии базы данных (требует дополнительной настройки или внешних утилит в зависимости от используемой БД).
                  ./nodebb restore Восстановление базы данных из резервной копии.

                  Примечание: Все эти команды должны выполняться из корневой директории установки NodeBB.


                  Готово!

                  Перейдите по адресу:
                  https://forum.ваш-домен.ру — ваш форум NodeBB запущен и защищён.


                  Полезные ссылки

                  • Официальная документация NodeBB
                  • MongoDB на Debian 12
                  • Nginx + NodeBB
                  1 ответ Последний ответ
                  0
                  • A Не в сети
                    A Не в сети
                    Admin
                    написал отредактировано
                    #9

                    Создаём и запускаем службу NodeBB в SystemD


                    1. Создаём пользователя

                    NodeBB (как и любой Node.js-сервис) никогда не должен работать от root. Поэтому нужно создать непривелегированного пользователя.

                    adduser --disabled-password --gecos "" nodebb
                    
                    

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


                    2. Меняем владельца каталога nodebb

                    Допустим, вы работаете в LXC-контейнере, и каталог nodebb находится в корневом каталоге виртуальной системы.
                    Заходим туда, и сначала останавливаем форум:

                    cd /nodebb
                    ./nodebb stop
                    

                    Далее меняем владельца каталога

                    chown -R nodebb:nodebb /nodebb
                    
                    
                    • chown: Изменить владельца.
                    • -R: Рекурсивно (применить ко всем файлам и подкаталогам внутри /nodebb).
                    • nodebb:nodebb: Новый владелец (пользователь:группа).
                    • /nodebb: Директория форума NodeBB.

                    После этого пользователь nodebb сможет безопасно запускать приложение, и вы сможете правильно указать его в вашем файле Systemd-службы (например, в директивах User=nodebb и Group=nodebb).


                    3. Создание файла для systemd

                    Заходим в каталог

                    cd /etc/systemd/system/
                    

                    Создаём файл

                    touch nodebb.service
                    

                    Вносим в этот файл следующий текст:

                    # /etc/systemd/system/nodebb.service
                    [Unit]
                    Description=NodeBB Forum
                    Documentation=https://docs.nodebb.org
                    After=network.target mongod.service
                    Wants=mongod.service
                    
                    [Service]
                    Type=simple
                    User=nodebb
                    Group=nodebb
                    WorkingDirectory=/nodebb
                    Environment=NODE_ENV=production
                    
                    # Это самый важный момент — запускаем напрямую loader.js
                    ExecStart=/usr/bin/node /nodebb/loader.js --no-silent --no-daemon
                    ExecStop=/usr/bin/node /nodebb/app.js --stop   # или просто kill, но так аккуратнее
                    
                    Restart=always
                    RestartSec=10
                    
                    # Логи
                    StandardOutput=journal
                    StandardError=journal
                    
                    # Ограничения (по желанию)
                    MemoryMax=600M
                    CPUQuota=90%
                    
                    [Install]
                    WantedBy=multi-user.target
                    
                    

                    4. Запуск сервиса

                    sudo systemctl daemon-reload
                    sudo systemctl enable nodebb
                    sudo systemctl start nodebb
                    
                    
                    1 ответ Последний ответ
                    0
                    Ответить
                    • Ответить, создав новую тему
                    Авторизуйтесь, чтобы ответить
                    • Сначала старые
                    • Сначала новые
                    • По количеству голосов


                    • Войти

                    • Login or register to search.
                    Powered by NodeBB Contributors
                    • Первое сообщение
                      Последнее сообщение
                    0
                    • Категории
                    • Последние
                    • Метки
                    • Популярные
                    • World
                    • Пользователи
                    • Группы