AI написал код — кто повезёт его в продакшен?
За выходные с Cursor и Claude вы собрали MVP. На ноутбуке оно работает: бэкенд на Node или Laravel, фронт на Vue/React, база где-то рядом, .env лежит в корне. Хочется показать клиенту — но как только дело доходит до «давай выложим в интернет», начинается ступор. Куда выкладывать? Как настроить SSL? Где база будет жить? А бэкапы? А что, если упадёт ночью? AI это всё писал, но AI не пойдёт ставить вам сервер.
Это не баг — это особенность. AI прекрасно пишет код и плохо понимает инфраструктуру. Он не знает, какой у вас провайдер, какой домен, что у вас уже стоит на сервере, какие правила безопасности приняты в вашей команде. Поэтому MVP остаётся на ноутбуке, а клиент ждёт.
Где запускать
Для большинства AI-сгенерированных проектов хватает обычного VPS:
- Hetzner, Selectel, Timeweb Cloud, Beget — от 300–500 ₽/мес за вменяемую конфигурацию (2 vCPU, 4 ГБ RAM, 40 ГБ SSD).
- Geo: для русскоязычной аудитории — РФ; для глобальной — Германия/Финляндия/Нидерланды.
- OS: Ubuntu 22.04/24.04 LTS. Не экспериментируйте с экзотикой, документации меньше — проблем больше.
Шаред-хостинг (где вам дают только FTP) для современного приложения не подходит — там нельзя ни запустить процесс, ни настроить SSL нормально.
Веб-сервер и SSL
Стандартная связка:
- Nginx как фронт. Принимает HTTPS, проксирует на ваше приложение.
- Let's Encrypt + certbot для бесплатного SSL. Сертификаты живут 90 дней и автоматически продлеваются certbot'ом за месяц до истечения.
Однострочник, который выдаёт работающий сертификат:
sudo certbot --nginx -d example.com -d www.example.com
Без HTTPS сегодня нельзя: браузеры ругаются, поисковики занижают, вебхуки Telegram-ботов и платёжек работают только по HTTPS.
Процесс-менеджер
Приложение не должно «жить, пока открыт SSH». Нужен супервайзер:
- PHP/Laravel —
php-fpmдля веба +supervisorдля очередей и Horizon. - Node.js —
pm2илиsystemd.pm2 startup+pm2 save— и приложение поднимается после ребута. - Python —
gunicorn/uvicornподsystemd.
Главное правило: процесс должен пережить и падение, и ребут сервера. Если он не поднимается сам — это бомба замедленного действия.
База и миграции
- Положите БД на тот же VPS только если проект маленький. Для всего серьёзного — отдельный managed-Postgres/MySQL у провайдера.
- Миграции — только через инструмент фреймворка (
artisan migrate,prisma migrate,alembic). Никаких ручных правок таблиц на проде. - Бэкапы каждый день, хранить минимум неделю, в другом месте (S3/Object Storage). Бэкап на том же диске — не бэкап.
- Раз в месяц проверяйте бэкап восстановлением. Невостребованный бэкап — это шанс 50/50, что он рабочий.
.env, секреты и git
Самая частая ошибка вайбкодера — закоммитить .env с паролями в публичный репозиторий. Через час по нему уже майнят крипту.
.env— в.gitignore, всегда.- В репо —
.env.exampleбез значений. - Секреты на сервере — либо файл
.envс правами600, либо vault (Doppler, Infisical, HashiCorp Vault). - Если что-то утекло — менять все ключи: API, БД, JWT-секреты. Не «поменяю позже».
Логи и мониторинг
Минимум, без которого нельзя:
- Логи приложения ротируются (
logrotate), а не растут до забитого диска. - Uptime-чек снаружи — UptimeRobot, BetterStack, Healthchecks.io. Бесплатных тарифов хватает.
- Telegram-бот для алертов — простейший healthcheck-скрипт по cron + curl в Telegram Bot API. 30 строк кода, но узнаёте о падении вы, а не клиент.
Поднять VPS, накатить nginx + SSL и завести процесс-менеджер по нормальной инструкции — реально за один вечер; могу помочь, если хочется выкатить проект в эти выходные, а не разбираться неделю с тонкостями nginx-конфига, certbot'а и systemd-юнитов.
Что ещё стоит сделать сразу
- Firewall (
ufw): закрыть всё, кроме 22, 80, 443. SSH — только по ключу, пароль выключить. - Fail2ban на SSH и nginx — автоматический бан по перебору.
- Отдельный пользователь под приложение, не
root. - Деплой — не
scp. Минимум —git pull+composer/npm install+ миграции, обёрнутые в скрипт. Лучше — GitHub Actions / GitLab CI.
Запомнить
- AI пишет код, но не запускает его в продакшен. Этим занимаетесь вы.
- VPS + nginx + Let's Encrypt + процесс-менеджер — базовая обвязка для 95% проектов.
- Бэкапы, ротация логов и uptime-чек — не «потом», а в день первого деплоя.
.envникогда не в git. SSH только по ключу. Firewall закрыт по умолчанию.
Если AI собрал вам проект, а в продакшен ехать страшно — напишите. Подниму VPS, настрою nginx + Let's Encrypt, разверну приложение и подключу домены, заведу процесс-менеджер (php-fpm/supervisor, pm2/systemd), настрою firewall, fail2ban и SSH по ключу, подключу ежедневные бэкапы во внешнее хранилище и базовый мониторинг с Telegram-алертами.
Также может быть интересно
Laravel + Vue: когда стек оправдан, а когда нет
Не каждый проект нужно делать на Next.js. Разбираем, когда Laravel + Inertia + Vue — точный выбор, а когда — оверкилл.
Читать далее →