Разработка

AI написал код — кто повезёт его в продакшен?

Никита Литвяков
Никита Литвяков
Senior PHP / Laravel Backend Developer
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/Laravelphp-fpm для веба + supervisor для очередей и Horizon.
  • Node.jspm2 или systemd. pm2 startup + pm2 save — и приложение поднимается после ребута.
  • Pythongunicorn/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-алертами.

#DevOps #AI
Поделиться:

Также может быть интересно