Что установлено на вашем сервере MERN?
- Проект React, созданный через Vite, в /home/app/uygulama/istemci
- Express 5 и Mongoose 9 в sunucu/server.js с маршрутом /api/saglik, который по-настоящему пишет в MongoDB
- Node.js 26 (репозиторий NodeSource) и PM2
- MongoDB 8.0 слушает только 127.0.0.1 и защищена пользователем и паролем
- Caddy, который сам получает HTTPS-сертификат для адреса sslip.io, так что домен необязателен
- Файл подкачки 2 ГБ и брандмауэр с открытыми только портами 22, 80 и 443
Какой размер нужен для MERN?
Официальной цифры RAM для MERN нет. На этом сервере Node.js, MongoDB и сборки React делят одну память, а кэш MongoDB составляет 512 МБ при 2 ГБ и 1,5 ГБ при 4 ГБ. Ориентир такой: 2 ГБ — хорошее начало для демо или небольшого проекта, 4 ГБ — для проекта с реальными пользователями. Самый маленький размер — 2 ГБ RAM, 1 CPU и диск 20 ГБ. RAM и CPU можно увеличивать и уменьшать, диск только растёт, а данные и IP-адрес остаются прежними.
| Применение | Размер | Цена | Выбрать |
|---|---|---|---|
| Стартовый | 2 GB RAM · 1 vCore · 40 GB NVMe | $4.01/мес. | |
| Средний | 4 GB RAM · 2 vCore · 60 GB NVMe | $6.89/мес. | |
| Мощный | 8 GB RAM · 4 vCore · 120 GB NVMe | $13.62/мес. |
Кому подходит?
- Тем, кому нужен фронтенд на React и API на Express на одном сервере
- Разработчикам, которые публикуют на собственном сервере приложение на React, созданное с помощью ИИ-инструментов
- Небольшим командам, которые выпускают демо, первую версию или внутренний инструмент
Что будет после заказа?
- Задайте размер и оплатите заказ.
- Сервер запускается, и стек MERN устанавливается сам. В наших проверках на настоящих серверах это заняло около 4 минут.
- Откройте «Адрес сайта» на вкладке «Обзор». На примере страницы написано MongoDB: OK.
- Подключитесь по SSH и введите su - app. Положите проект в ~/uygulama: React в istemci, Express в sunucu.
- Соберите проект из папки istemci: npm run build -- --outDir ../sunucu/public --emptyOutDir
- Выполните pm2 restart uygulama и проверьте изменение по своему «Адресу сайта».
С каждым сервером
- Ежедневные бэкапы входят в цену
- Безлимитный трафик
- Полный root-доступ
- Позже можно увеличить или уменьшить RAM и CPU, а диск увеличить
- Расположение: Istanbul · IST-1.
Полезно знать
- Оформляя заказ, вы принимаете условия лицензии MongoDB Server Side Public License (SSPL).
- Caddy передаёт запросы на 127.0.0.1:3000. Слушайте этот порт в своём серверном файле, а адрес базы читайте из MONGO_ADRES в sunucu/.env.
- Переменные, начинающиеся с VITE_, при сборке записываются в код и видны в браузере. Не кладите в них секреты и пересобирайте проект при каждом изменении значения.
- Если ваш входной файл называется не server.js, задайте процесс заново: pm2 delete uygulama, pm2 start FILE --name uygulama, pm2 save.
- MongoDB здесь один узел. Для транзакций или потоков изменений в Mongoose настройте набор реплик.
- Обновление Node.js, MongoDB и пакетов npm остаётся на вас.
MERN: вопросы и ответы
Как развернуть проект на стеке MERN?
Переключитесь командой su - app и положите код Express в ~/uygulama/sunucu, а код React в ~/uygulama/istemci. Выполните npm install в обеих папках, соберите проект из istemci командой npm run build -- --outDir ../sunucu/public --emptyOutDir, затем выполните pm2 restart uygulama.
Сколько RAM нужно стеку MERN?
Официальной цифры RAM для MERN нет. Ориентир такой: 2 ГБ — хорошее начало для демо или небольшого проекта, 4 ГБ — для проекта с реальными пользователями.
Нужно ли настраивать CORS?
При такой схеме нет. React собирается, Express отдаёт результат, а API находится по тому же адресу, поэтому фронтенд обращается напрямую к путям, начинающимся с /api. Если фронтенд размещён в другом месте, CORS в Express вы настраиваете сами.
Выдаёт ли React Router ошибку 404 при обновлении страницы?
Нет. Пример server.js на любой неизвестный путь возвращает index.html, а дальше всё делает React Router. Если вы пишете собственный серверный файл, сохраните это поведение и объявите маршруты API раньше него.
Можно ли подключиться к MongoDB снаружи?
На этом сервере MERN MongoDB слушает только внутри сервера. Чтобы пользоваться Compass, откройте SSH-туннель командой ssh -L 27017:127.0.0.1:27017 root@IP.
Вернётся ли приложение после перезагрузки?
Да. PM2 работает как служба pm2-app, которая при запуске восстанавливает сохранённый список процессов. После изменения процессов сохраните список командой pm2 save.