Skip to content

Запуск и разработка (developer setup)

Последняя сверка с кодом: 2026-06-14
Аудитория: новый разработчик, DevOps, QA локально
См. также: README.md · 26-ssr-migration.md · 07-api-codegen.md


1. Требования

ТребованиеВерсия / примечание
Node.js≥ 22 (.nvmrc)
npm≥ 10
DockerPostgres локально (npm run db:up)
ffmpegДля превью видео (brew install ffmpeg)

2. Первый запуск (copy-paste)

bash
git clone <repo>
cd dr_event

npm install

cp env.example .env
cp backend/.env.example backend/.env
# Заполнить BETTER_AUTH_SECRET, DATABASE_URL при необходимости

npm run db:up          # Postgres в Docker
npm run db:migrate     # Prisma migrations
npm run db:seed        # dev@local.test + demo-event

npm run dev            # frontend :3000 + backend :3002
URLНазначение
http://localhost:3000Nuxt (SSR в dev через Nitro)
http://localhost:3002/api/docsSwagger UI
http://localhost:3002/api/openapi.jsonOpenAPI для codegen
http://localhost:3000/demo-eventSeed-альбом

Seed: dev@local.test / dev123456


3. Ежедневная работа

bash
npm run db:up          # если Docker не запущен
npm run dev            # оба процесса

# только бэк
npm run dev:backend

# только фронт
npm run dev:frontend

# продуктовая дока (VitePress)
npm run docs:dev

4. База данных (Prisma)

КомандаКогда
npm run db:upПоднять Postgres (Docker)
npm run db:migrateНовые миграции после pull
npm run db:seedDemo user + demo-event
npm run db:resetПолный сброс + migrate + seed
npm run db:studioGUI Prisma Studio
npm -w backend run db:generateПосле изменения schema.prisma

Схема: backend/prisma/schema.prisma
Миграции: backend/prisma/migrations/

Типичный цикл после правки schema:

bash
npm -w backend run db:migrate    # создаёт migration
npm -w backend run db:generate   # обновляет Prisma client

5. Генерация API-клиента

Фронт использует @eventpass/api из frontend/generated/api/не редактировать руками.

bash
# Бэк должен быть на :3002
./generate-api.sh

# или если бэк уже работает
./generate-api.sh --no-start-backend

# только проверить OpenAPI
./generate-api.sh --validate-only

Когда регенерить: после изменения JSDoc/swagger в backend/src/routes/*.ts.

Подробности: 07-api-codegen.md.


6. Сборка и проверки

КомандаЧто делает
npm run buildProduction build backend + frontend
npm run type-checkTypeScript обоих workspaces
npm run lintESLint monorepo
npm run docker:stackProd-like stack на :8080

Frontend type-check отдельно:

bash
npm -w frontend run type-check

7. ENV (минимум для dev)

Корень .env: BACKEND_URL, proxy для Nuxt.

backend/.env:

ПеременнаяЗачем
DATABASE_URLPostgres connection string
BETTER_AUTH_SECRETСессии
BETTER_AUTH_URLhttp://localhost:3002
TRUSTED_ORIGINShttp://localhost:3000
STORAGE_DRIVERlocal (dev)
SMTP_USER / SMTP_PASSОпционально; Zoho App Password. Без них в dev reset password логируется

Примеры: backend/.env.example, env.example.


8. SUPER_ADMIN локально

В Prisma Studio или SQL:

sql
UPDATE "user" SET "globalRole" = 'SUPER_ADMIN' WHERE email = 'dev@local.test';

После — перелогин, появится /admin/* в sidebar.


9. Troubleshooting

ПроблемаРешение
Port 3000 busylsof -i :3000 → kill процесс
Auth pending / зависаетBetter Auth mount до express.json() — см. app.ts
TUS upload failПроверить ffmpeg, STORAGE_DRIVER, event uploadEnabled
OpenAPI codegen failБэк на :3002, ./generate-api.sh
Prisma client stalenpm -w backend run db:generate
Белый экран /accountСм. 21-auth-frontend.md

10. Деплой (кратко)

Не локальная разработка — см.:


11. Карта команд (шпаргалка)

install     npm install
dev         npm run dev
db          db:up → db:migrate → db:seed
api         ./generate-api.sh
check       npm run type-check && npm run lint
build       npm run build
docs        npm run docs:dev