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

Коротко о MERN: MERN — это набор технологий MongoDB, Express, React и Node. Стек позволяет создавать трёхуровневую архитектуру (frontend, backend, database) целиком на JavaScript и JSON.
Что вам нужно заранее
- Сервер с Debian 11 (root-доступ или sudo).
- Настроенный root-пароль или пользователь с sudo.
- Базовые знания работы с командной строкой Linux.
Начало — обновление и зависимости
Перед установкой обновите кэш пакетов и установите зависимости:
apt-get update -yapt-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.

Замечания:
- Альтернативный современный способ: 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 installnpm start 0.0.0.0Ожидаемый вывод при старте:
> [email protected] start
> node ./bin/www "0.0.0.0"
Откройте в браузере: http://your-server-ip:3000. Вы увидите стартовую страницу 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-шаблон. Проверьте сервисы и логи при ошибках.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента