You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
4.7 KiB
4.7 KiB
Деплой — oclinica-brandbook
Текущее состояние
| Сервис | Статус | URL | Платформа |
|---|---|---|---|
| Фронтенд | ✅ Активен | https://web-oclinica.vercel.app | Vercel Hobby |
| Бэкенд | локально | http://localhost:3001 | Docker Compose |
| База данных | локально | localhost:5433 | PostgreSQL 16 |
Фронтенд — Vercel
Первоначальная настройка (уже выполнена)
# 1. Установить Vercel CLI
npm install -g vercel
# 2. Войти в аккаунт (однократно, открывает браузер)
vercel login
# 3. Первый деплой из директории apps/web
cd apps/web
vercel --yes
Деплой обновлений
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 / месяц |
| Тип использования | Только некоммерческие |
Для брендбука (внутренний инструмент) лимитов более чем достаточно.
Локальная разработка
Запуск фронтенда
# Из корня monorepo
pnpm dev
# Или только фронтенд
cd apps/web && pnpm dev
Доступен на: http://localhost:3001
Запуск бэкенда + БД
# Запустить PostgreSQL
docker compose up -d
# Запустить NestJS
cd apps/api && pnpm dev
.env файлы
# Скопировать и заполнить
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:
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 }}
Настройка:
- Получить Vercel Token: https://vercel.com/account/tokens
- Добавить в 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.