Гид по технологиям

Установка стека MERN на Debian 11

• 5 min read • DevOps • Обновлено 24 Nov 2025
Установка MERN на Debian 11
Установка MERN на Debian 11

Схема стека MERN

Коротко о MERN: MERN — это набор технологий MongoDB, Express, React и Node. Стек позволяет создавать трёхуровневую архитектуру (frontend, backend, database) целиком на JavaScript и JSON.

Что вам нужно заранее

  • Сервер с Debian 11 (root-доступ или sudo).
  • Настроенный root-пароль или пользователь с sudo.
  • Базовые знания работы с командной строкой Linux.

Начало — обновление и зависимости

Перед установкой обновите кэш пакетов и установите зависимости:

apt-get update -y
apt-get install gnupg2 curl -y

После этого можно переходить к установке компонентов стека.

Установка MongoDB

MongoDB — документно-ориентированная NoSQL СУБД. В Debian 11 пакет MongoDB может отсутствовать в стандартном репозитории, поэтому в примере добавляется внешний репозиторий.

Важно: в примере ниже используется репозиторий для MongoDB 4.4. Для корректности убедитесь, что версия MongoDB и кодовое имя дистрибутива совпадают. Если возникают ошибки при установке, сверяйтесь с официальной документацией MongoDB для вашей версии Debian.

Добавьте GPG-ключ и репозиторий (пример из исходного руководства):

wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | apt-key add -
echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.4 main" | tee /etc/apt/sources.list.d/mongodb-org-4.list

Обновите список пакетов и установите MongoDB:

apt-get update -y  
apt-get install mongodb-org -y

Запустите сервис и включите автозапуск:

systemctl start mongod  
systemctl enable mongod

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

mongod --version

Ожидаемый пример вывода (он может отличаться по версии):

db version v4.4.8
Build Info: {
    "version": "4.4.8",
    "gitVersion": "83b8bb8b6b325d8d8d3dfd2ad9f744bdad7d6ca0",
    "openSSLVersion": "OpenSSL 1.1.1k  25 Mar 2021",
    "modules": [],
    "allocator": "tcmalloc",
    "environment": {
        "distmod": "debian10",
        "distarch": "x86_64",
        "target_arch": "x86_64"
    }
}

Советы и проверка работоспособности:

  • Если служба не запускается: посмотрите логи: journalctl -u mongod –no-pager -n 200.
  • Если apt-key выдаёт предупреждение о депрецированной команде, используйте метод с /usr/share/keyrings и signed-by (см. официальные инструкции MongoDB).
  • Для продакшена включите аутентификацию MongoDB и настройте брандмауэр.

Установка Node.js (v16)

Node.js позволяет выполнять JavaScript на сервере. Для установки в примере используется репозиторий NodeSource для v16.

Добавьте репозиторий NodeSource и установите Node.js:

curl -sL https://deb.nodesource.com/setup_16.x | bash -
apt-get install nodejs -y

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

node --version

Ожидаемая строка в примере:

v16.8.0

Рекомендации:

  • Если вам нужна другая версия Node.js, замените setup_16.x на нужную ветку (например, setup_18.x).
  • Для управления несколькими версиями Node используйте nvm.

Установка React (создание фронтенда)

React — библиотека для построения пользовательских интерфейсов. Для быстрого старта можно использовать create-react-app.

Установка через npm (глобально):

npm install -g create-react-app

Создайте приложение React:

create-react-app reactapp

Ожидаемый вывод при успешном создании проекта (сокращённый):

Success! Created reactapp at /root/reactapp
Inside that directory, you can run several commands:

  npm start
    Starts the development server.

  npm run build
    Bundles the app into static files for production.

  npm test
    Starts the test runner.

  npm run eject
    Removes this tool and copies build dependencies, configuration files
    and scripts into the app directory. If you do this, you can’t go back!

We suggest that you begin by typing:

  cd reactapp
  npm start

Happy hacking!

Запустите приложение:

cd reactapp  
npm start 0.0.0.0

Ожидаемый пример вывода и адрес для просмотра:

> [email protected] start
> react-scripts start "0.0.0.0"
Compiled successfully!

You can now view reactapp in the browser.

  http://localhost:3000

Note that the development build is not optimized.
To create a production build, use npm run build.

Откройте в браузере: http://your-server-ip:3000. Вы должны увидеть стартовую страницу React.

Стартовая страница React

Замечания:

  • Альтернативный современный способ: npx create-react-app reactapp — он использует последнюю версию пакета без глобальной установки.
  • Для продакшена собирайте приложение (npm run build) и раздавайте статические файлы через nginx или другой веб-сервер.

Установка Express (бэкенд)

Express — минималистичный фреймворк для Node.js, удобен для построения API и серверной логики.

Установите генератор Express глобально:

npm install -g express-generator

Создайте шаблон приложения:

express mearnapp

Ожидаемый вывод генератора (сокращённый):

   create : mearnapp/
   create : mearnapp/public/
   create : mearnapp/public/javascripts/
   create : mearnapp/public/images/
   create : mearnapp/public/stylesheets/
   create : mearnapp/public/stylesheets/style.css
   create : mearnapp/routes/
   create : mearnapp/routes/index.js
   create : mearnapp/routes/users.js
   create : mearnapp/views/
   create : mearnapp/views/error.jade
   create : mearnapp/views/index.jade
   create : mearnapp/views/layout.jade
   create : mearnapp/app.js
   create : mearnapp/package.json
   create : mearnapp/bin/
   create : mearnapp/bin/www

   change directory:
     $ cd mearnapp

   install dependencies:
     $ npm install

   run the app:
     $ DEBUG=mearnapp:* npm start

Установите зависимости и запустите приложение:

cd mearnapp  
npm install
npm start 0.0.0.0

Ожидаемый вывод при старте:

> [email protected] start
> node ./bin/www "0.0.0.0"

Откройте в браузере: http://your-server-ip:3000. Вы увидите стартовую страницу Express.

Стартовое приложение Express

Быстрая шпаргалка — основные команды

  • Обновление и зависимости: apt-get update -y; apt-get install gnupg2 curl -y.
  • MongoDB: apt-get install mongodb-org -y; systemctl start mongod; systemctl enable mongod.
  • Node.js: curl -sL https://deb.nodesource.com/setup_16.x | bash -; apt-get install nodejs -y.
  • React: npm install -g create-react-app; create-react-app reactapp; cd reactapp; npm start.
  • Express: npm install -g express-generator; express mearnapp; cd mearnapp; npm install; npm start.

Критерии приёмки

  • mongod работает и отвечает: systemctl status mongod активен.
  • Команды node и npm возвращают ожидаемые версии.
  • React-приложение доступно по порту 3000 в браузере.
  • Express-приложение стартует и отдаёт страницу по порту 3000.

Тестовые сценарии и проверки

  • Проверка MongoDB: подключитесь через mongo shell или драйвер и создайте тестовую коллекцию.
  • Проверка API: создайте простой маршрут в Express и сделайте curl-запрос.
  • Проверка фронтенда: убедитесь, что статические ассеты загружаются, а dev-server обслуживает страницу.

Роли и чек-листы

  • Для разработчика: установить Node.js, npm; создать React и Express проекты; настроить подключение к базе.
  • Для DevOps/администратора: установить MongoDB, настроить systemd, bрандмауэр, SSL и reverse proxy.
  • Для QA: проверить маршруты API, CRUD-операции в MongoDB, загрузку страницы React.

Рекомендации для продакшена

  • Не запускайте dev-серверы (react-scripts) в продакшене. Соберите фронтенд (npm run build) и раздавайте через nginx.
  • Запускайте Node/Express через менеджер процессов (pm2) или systemd.
  • Настройте обратный прокси (nginx) и TLS (Let’s Encrypt).
  • Включите аутентификацию и бэкап для MongoDB.

Important: В продакшене убедитесь, что MongoDB не слушает 0.0.0.0 без ограничения доступа. Ограничьте подключение по IP или используйте приватную сеть.

Три альтернативных подхода

  • Использовать Docker: развернуть MongoDB, Node и nginx в контейнерах для изоляции и простоты развёртывания.
  • Использовать managed DB: заменить MongoDB на облачный MongoDB Atlas и сократить операционные задачи.
  • Использовать Next.js вместо CRA для SSR (server-side rendering) и SEO.

Частые ошибки и как их исправить

  • Приложение не стартует на порту 3000 — проверьте, не занят ли порт и нет ли активного firewall (ufw/iptables).
  • npm install падает — проверьте версию npm/node, удалите node_modules и package-lock.json, затем npm install.
  • MongoDB не запускается — смотрите логи journald и файл mongod.log, проверьте права на данные и доступность диска.

Короткий словарь (1 строка каждый)

  • MongoDB — документная NoSQL база данных.
  • Node.js — среда выполнения JavaScript вне браузера.
  • npm — менеджер пакетов для Node.js.
  • React — библиотека для построения UI.
  • Express — минималистичный фреймворк для Node.js.

Итоги

Вы установили и проверили компоненты MERN на Debian 11: MongoDB, Node.js, React и Express. Для разработки у вас есть рабочая среда. Для продакшена следуйте рекомендациям: соберите фронтенд, используйте менеджер процессов и настройте безопасный доступ к БД.

Ключевые шаги: добавить репозиторий MongoDB, установить Node.js из NodeSource, создать React-приложение и Express-шаблон. Проверьте сервисы и логи при ошибках.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро