Быстрый старт
Локальная установка, сид данных и тестовые пользователи
Требования
- Node.js 20+, pnpm
- Docker (Postgres, Redis, MinIO поднимаются через docker-compose)
Установка
cp .env.example .env # дефолты валидны для localhost
docker compose up -d # Postgres:5433, Redis:6381, MinIO:9000/9001
pnpm install
pnpm db:migrate # применить миграции
pnpm db:seed # users + refs + catalog + demo tasks
pnpm dev # → http://localhost:3010Тестовые пользователи
Пароль у всех: Passw0rd!
| Роль | |
|---|---|
admin@tesoro.com | super_admin |
test-client@tesoro.com | client_owner |
pm@monster.team | monster_pm |
creator@monster.team | monster_creator |
Основные команды
| Команда | Что делает |
|---|---|
pnpm dev | dev-сервер на :3010 |
pnpm build | production build (prisma generate && prisma migrate deploy && next build) |
pnpm lint | ESLint |
pnpm exec tsc --noEmit | typecheck |
pnpm db:migrate | применить миграции (dev) |
pnpm db:seed | полный сид |
pnpm db:seed-catalog | только каталог Smart Selector |
pnpm db:studio | Prisma Studio (визуальная БД) |
pnpm test:e2e | Playwright E2E |
pnpm test:unit | Vitest unit-тесты |
Переменные окружения
Полный шаблон — в .env.example. Ключевые группы:
| Переменная | Назначение |
|---|---|
DATABASE_URL | Подключение к PostgreSQL (локально порт 5433) |
BETTER_AUTH_SECRET, BETTER_AUTH_URL | Better Auth: секрет и callback URL |
TRUSTED_ORIGINS | Дополнительные CSRF-origins (через запятую) |
NEXT_PUBLIC_APP_URL | Публичный URL приложения |
REDIS_URL | Redis для BullMQ (локально порт 6381) |
SAFEBOT_WORKER_SECRET | Авторизация Safebot-воркера на internal endpoint |
R2_ENDPOINT, R2_REGION, R2_BUCKET_NAME | S3-хранилище (MinIO локально / R2 в prod) |
R2_ACCESS_KEY_ID, R2_SECRET_ACCESS_KEY | Ключи S3 |
R2_PUBLIC_URL | Публичный URL для доступа к файлам |
NEXT_PUBLIC_MINIO_CONSOLE_URL | MinIO web-консоль (страница «Хранилище») |
GEMINI_API_KEY, OPENAI_API_KEY | Ключи AI-провайдеров (опционально, есть admin UI) |
AI_MONTHLY_BUDGET_USD | Месячный бюджет AI |
VAPID_PUBLIC_KEY, VAPID_PRIVATE_KEY, VAPID_SUBJECT | Web Push (генерация: scripts/generate-vapid-keys.ts) |
TELEGRAM_BOT_TOKEN | Telegram-бот для уведомлений |
SMTP_HOST | Email (опционально; в dev письма выводятся в консоль) |
Регистрация в системе — invitation-only. Публичной регистрации нет: новые пользователи входят только по ссылке-приглашению (/invite/accept?token=…).