Files
brand_book/docs/DEPLOY.md
T
AR 15 M4 a715503ca5 docs: обновлена проектная документация по деплою на Vercel
- TZ.md: хостинг (Vercel), стек (актуальные версии Next.js 16/NestJS 11/Prisma 7/pnpm 10/Tailwind 4),
  раздел 12.2 с командой деплоя, закрыты ОВ-02 и ОВ-06
- SPRINTS.md: в Sprint 2 — ссылка на production URL; Sprint 12 — уточнены задачи деплоя
- docs/DEPLOY.md: новый файл — инструкция по деплою фронтенда, локальной разработке,
  план автодеплоя через Gitea Actions, варианты хостинга бэкенда

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 18:11:43 +05:00

157 lines
4.7 KiB
Markdown

# Деплой — oclinica-brandbook
## Текущее состояние
| Сервис | Статус | URL | Платформа |
|------------|-------------|----------------------------------------|---------------|
| Фронтенд | ✅ Активен | https://web-oclinica.vercel.app | Vercel Hobby |
| Бэкенд | локально | http://localhost:3001 | Docker Compose |
| База данных | локально | localhost:5433 | PostgreSQL 16 |
---
## Фронтенд — Vercel
### Первоначальная настройка (уже выполнена)
```bash
# 1. Установить Vercel CLI
npm install -g vercel
# 2. Войти в аккаунт (однократно, открывает браузер)
vercel login
# 3. Первый деплой из директории apps/web
cd apps/web
vercel --yes
```
### Деплой обновлений
```bash
cd apps/web
vercel --prod --yes
```
Деплой занимает ~30 секунд. После завершения изменения сразу доступны по адресу:
**https://web-oclinica.vercel.app**
### Как это работает
- Vercel автоматически определяет Next.js и использует pnpm для сборки
- Каждый `vercel --prod` создаёт новый immutable deployment и привязывает его к production URL
- Предыдущие деплои остаются доступны по уникальным preview URL
- Логи билда: https://vercel.com/oclinica/web
### Ограничения Vercel Hobby (бесплатный план)
| Параметр | Лимит |
|-----------------------|-------------------------|
| Bandwidth | 100 GB / месяц |
| Builds | 6000 минут / месяц |
| Serverless Functions | 100 GB-hours / месяц |
| Тип использования | Только некоммерческие |
Для брендбука (внутренний инструмент) лимитов более чем достаточно.
---
## Локальная разработка
### Запуск фронтенда
```bash
# Из корня monorepo
pnpm dev
# Или только фронтенд
cd apps/web && pnpm dev
```
Доступен на: http://localhost:3001
### Запуск бэкенда + БД
```bash
# Запустить PostgreSQL
docker compose up -d
# Запустить NestJS
cd apps/api && pnpm dev
```
### .env файлы
```bash
# Скопировать и заполнить
cp .env.example .env
```
Содержимое `.env.example`:
```
DATABASE_URL="postgresql://brandbook:brandbook@localhost:5433/brandbook"
API_PORT=3001
NEXT_PUBLIC_API_URL=http://localhost:3001
```
---
## Автодеплой через Gitea Actions (планируется в Sprint 12)
Для автоматического деплоя при пуше в ветку `main` создать файл
`.gitea/workflows/deploy-frontend.yml`:
```yaml
name: Deploy Frontend to Vercel
on:
push:
branches: [main]
paths:
- 'apps/web/**'
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'
cache-dependency-path: apps/web/pnpm-lock.yaml
- name: Install Vercel CLI
run: npm install -g vercel
- name: Deploy to Vercel
run: cd apps/web && vercel --prod --yes --token ${{ secrets.VERCEL_TOKEN }}
```
**Настройка:**
1. Получить Vercel Token: https://vercel.com/account/tokens
2. Добавить в Gitea: Settings → Secrets → `VERCEL_TOKEN`
---
## Хостинг бэкенда (планируется к Sprint 11)
Бэкенд (NestJS + PostgreSQL) потребуется для экспериментальной секции (Sprint 11).
Варианты для рассмотрения:
| Платформа | PostgreSQL | Бесплатно | Карта |
|-----------|-----------|-----------|-------|
| Railway | ✅ | $5 кредит / месяц | нужна |
| Supabase | ✅ | ✅ (PostgreSQL managed) | нет |
| Fly.io | ✅ | ✅ ограниченно | нет |
| VPS клиники | ✅ | ✅ (если есть) | нет |
Рекомендация: **Supabase** для БД (бесплатно, managed PostgreSQL) + **Railway** или VPS для NestJS.