development
Deploy

Deploy

@dev-deploy

1,000,000 tokens free
on sign-up — yours to try the agent
1 installsupdated todayPublic
About

Deploys the finished project to the internet so it opens by URL: picks hosting for the stack (Vercel/Netlify/GitHub Pages/Render/PythonAnywhere/Timeweb/Amvera), prepares .gitignore and environment variables, publishes, verifies with curl. Use when the user says «выложи в интернет», «задеплой», «опубликуй сайт/бота», «как развернуть», «нужен хостинг». Do NOT use for writing code (dev-build), testing (dev-test), requirements (dev-spec), or project tracking (dev-project).

Instructions

Деплой: выложить MVP в интернет

Последний шаг цикла SPEC → BUILD → TEST → DEPLOY: сделать так, чтобы проект открывался по URL, а не только на машине пользователя. Локально работающий код — полдела; польза появляется, когда по ссылке может зайти другой человек.

Когда активирован

  • «Выложи в интернет / задеплой / опубликуй / как развернуть».
  • «Нужен хостинг», «куда это поставить», «как показать сайт заказчику».
  • Проект прошёл dev-test (критерий приёмки зелёный) и пользователь хочет его «вживую».

Не активируй, пока нет работающего кода (сначала dev-build/dev-test), и не активируй для выбора стека или ТЗ (dev-spec).

Главный принцип: деплой — только с согласия, секреты — только через окружение

Публикация в интернет — необратимое действие: код становится доступен снаружи. Никогда не публикуй без явного согласия пользователя. Секреты (ключи API, токены, пароли БД) никогда не кладутся в код/репозиторий и не показываются в чате — только переменные окружения (env) на стороне хостинга.

Процесс

  1. Согласие. Спроси: «выложить в интернет?» и какой хостинг предпочитает (иностранный бесплатный / российский платный). Покажи 2–3 варианта с ценами.
  2. Подготовка (критично).
    • git init (если нет) и .gitignore: node_modules/, .venv/, __pycache__/, .env, файлы ключей, собранные артефакты. Проверь: git status не должен показывать ничего похожего на секреты.
    • Вынеси все ключи/пароли в переменные окружения (os.environ / process.env), добавь .env.example с названиями (без значений) и инструкцией.
    • Проверь, что есть команда запуска в проде (npm run start / uvicorn ... / python app.py) и она задокументирована в SPEC.md.
  3. Выбери хостинг по таблице ниже. Условия тарифов меняются — проверь актуальность через web_search/web_reader перед советом, не цитируй по памяти.
  4. Задеплой. Дай пользователю точные шаги (регистрация, загрузка, команды); сам регистрируй аккаунты только с явного разрешения и данными пользователя.
  5. Проверь (обязательно). curl -s -o /dev/null -w '%{http_code}' <URL> → 200; прогони ключевой путь пользователя (критерий приёмки) на живом URL; убедись, что env-переменные подхватились (функция, которой нужен ключ, работает).
  6. Зафиксируй. URL, хостинг, как обновлять (git push / re-upload), где лежат env — в журнал DEV-JOURNAL.md (dev-project). Расскажи пользователю, как вносить изменения после деплоя.

Хостинг под стек (RU-рынок: карты РФ часто не работают на зарубежных сервисах)

СтекВариантыЗамечания
Статика (HTML/CSS/JS)GitHub Pages, Vercel, Netlify, Timeweb (RU), Beget (RU)GitHub Pages — бесплатно и просто; RU-хостинг — если нужны карты РФ/домен .ru
Node / Next.jsVercel (Hobby), Render (free), Timeweb CloudRender free «засыпает» через ~15 мин простоя; для демо ок, для боевого — Vercel/платный
Python (Flask/FastAPI/Django)PythonAnywhere (free), Render (free), Amvera (RU PaaS), Timeweb CloudPythonAnywhere — самый дружелюбный для новичка; Amvera/Timeweb — RU-оплата
Telegram-ботPythonAnywhere/Render (webhook или polling) или локально у пользователяДля личного бота честный ответ — «можно запускать у себя»; для 24/7 нужен хостинг
БДSQLite (MVP), Postgres на Render/Supabase/TimewebSQLite на serverless (Vercel) не работает — файл эфемерный; нужен Postgres

Правила выбора: самый дешёвый вариант, который реально запускается; для MVP не тащить Docker/K8s; у пользователя из РФ — предлагай RU-варианты наравне с зарубежными, предупреждай про оплату иностранной картой. Сроки простоя и лимиты free-тарифов называй только после проверки документации.

Границы (✅ / ⚠️ / 🚫)

  • Всегда: деплой только с согласия; секреты через env; .gitignore до push; проверить живой URL curl'ом; записать URL и способ обновления в журнал.
  • ⚠️ Спросить: какой хостинг (показать варианты и цены); перед регистрацией аккаунта за пользователя; перед подключением платного тарифа/домена.
  • 🚫 Никогда: не публиковать без согласия; не коммитить/не показывать секреты; не пушить node_modules//.venv//данные пользователей; не обещать «бесплатно навсегда» без проверки тарифа; не деплоить то, что не прошло dev-test.

Отговорки и почему они не работают

ОтговоркаПочему мимо
«Локально же работает»Цель деплоя — URL, по которому зайдёт другой человек. Это и есть «рабочее состояние».
«Скину пользователю zip»Zip = пересборка вручную при каждом изменении. Деплой — повторяемый процесс (git push).
«Ключ в коде, так проще»Ключ в репозитории = утечка при первом же push. env — это 5 строк.
«Пользователь сам разберётся»Тогда дай проверенную пошаговую инструкцию под его ОС — не брось на полпути.

Выходные критерии

  • Пользователь согласился на публикацию и выбранный хостинг.
  • .gitignore на месте, git status чист от секретов и мусора.
  • Секреты только в env; есть .env.example + инструкция.
  • Живой URL отвечает 200; ключевой путь проверен на живом URL.
  • URL, хостинг и способ обновления записаны в DEV-JOURNAL.md.

До деплоя: прогони тесты (dev-test). После: обнови журнал (dev-project).

Comments (0)

Log in to leave a comment

Loading comments...

Deploy