Спроектируй деплой для {{stack}}. Масштаб: {{scale}}.
1. Выбор хостинга
| Платформа | Когда | Цена |
|---|---|---|
| Vercel | Next.js — нативная поддержка | 0$ старт, дорого на масштабе |
| Cloudflare Pages | Static + edge functions | дёшево, мощно |
| Fly.io | Контейнеры в разных регионах | средне, гибко |
| Railway / Render | Простой PaaS | предсказуемо |
| Hetzner / DigitalOcean + Docker | VPS с полным контролем | дёшево, но сами всё |
Не выбирай "AWS" потому что "взрослые так делают". Для < 100k MAU — overkill.
2. Окружения
production — main branch, реальный домен
preview — каждый PR, временный URL
staging — main или отдельная ветка, *.staging.app
development — локально
Каждое со своими env vars.
3. Переменные окружения
# .env.example (коммитится)
NEXT_PUBLIC_APP_URL=https://example.com
DATABASE_URL=postgres://...
STRIPE_SECRET_KEY=
SESSION_SECRET=
Правила:
- Префикс
NEXT_PUBLIC_для клиента (раскрытые) - Секреты — в платформенный secret store, не в репо
- Документируй где брать каждый ключ
4. Домены
- Production:
app.com - Preview/staging:
*.app.comили*.vercel.app - SSL: автомат через платформу (Let's Encrypt)
- WWW redirect: на одну версию (с www или без — реши)
5. Кеширование и CDN
- Static assets:
Cache-Control: public, max-age=31536000, immutable - HTML:
Cache-Control: public, max-age=0, must-revalidate - API: подбирай по endpoint
- Image CDN: настрой для оптимизации (AVIF/WebP, размеры)
6. CI/CD
on:
pull_request:
- install
- lint
- typecheck
- test
- build
- deploy preview
push:
- main:
- deploy production
7. Мониторинг (минимум)
- Uptime: Better Stack / Pingdom / cron-job.org
- Error tracking: Sentry / Highlight
- Logs: платформенные + долгое хранение (Logflare / Axiom)
- Real user metrics: Vercel Speed Insights / Cloudflare Web Analytics
8. Откат
- Vercel: 1 клик в дашборде
- Custom:
git revert+ push → CI пересоберёт - Document'ируй процедуру
9. Чек-лист первого деплоя
- Production env vars заполнены
- Health check endpoint работает (
/api/health) - SSL валиден
- Sitemap и robots.txt отдаются
- OG-картинки рендерятся
- Sentry получает события
- Лог-сборщик работает
- Откат проверен (выкатил → откатил → выкатил снова)
Анти-паттерны
- "Сразу AWS" без причины — учиться будешь долго
- Production env vars в git
- Деплой через FTP в 2025 — пора
- Нет staging — будут сюрпризы
Похожие промты
start / glossary
Что такое деплой, хостинг и сервер — для абсолютного новичка
Между «сайт работает у меня в браузере» и «сайт доступен по ссылке всем». Объясняем что в середине, без облака и кластеров.
beginnerstartglossary
Открыть
Начальный15 мин
site / deploy
CI/CD-пайплайн
Шаги от пуша до прода: lint, типы, тесты, превью, прод, нотификации.
cicdautomation
Открыть
Средний30-60 мин
site / deploy
Мониторинг и алёрты
Что мерить, какие алёрты ставить, как не превратить on-call в ад.
monitoringobservabilityalerts
Открыть
Средний30-60 мин