Деплой на VPS: Nginx
Платформы типа Vercel отлично деплоят фронт, но backend, базу и процессы — вы держите сами. VPS даёт полный контроль: Nginx отдаёт статику и проксирует API, pm2 держит Node живым.
Схема
--- VPS ---
Порт 80/443 → Nginx
* / статика из dist/ (SPA fallback)
* /api/* → localhost:3001 (Express, pm2)
# /etc/nginx/sites-available/app
server {
listen 80;
server_name app.ru www.app.ru;
root /var/www/app/dist;
location /api/ {
proxy_pass http://127.0.0.1:3001;
proxy_set_header Host $host;
}
location / {
try_files $uri /index.html; # SPA-роутинг
}
}
pm2 и автозапуск
npm i -g pm2
pm2 start server/index.js --name app
pm2 save # зафиксировать список
pm2 startup systemd # поднимать процессы после ребута
💡
После всех шагов: DNS-запись A → IP сервера, затем letsencrypt (certbot) для HTTPS. «Замок» браузера — обязательный элемент продакшена, бесплатные сертификаты ставятся за минуту.
Порядок первого деплоя
- аренда VPS (Ubuntu), вход по SSH-ключу;
- установка Node, nginx, pm2;
- заливка кода (git clone), npm ci, сборка;
- конфиг Nginx + HTTPS;
- проверка: домен открывается, API отвечает, логи чистые.
ℹ️
Деплой по кнопке удобнее — этим займётся CI/CD (урок 44): workflow с ssh-шагами на каждый merge в main. Ручной деплой — для понимания, автоматический — для жизни.