Проект меняет модель — с собственного автосалона на арбитраж трафика для CarClick. План, решения и открытые вопросы: ROADMAP.md.
Frontend— Next.js-сайт и серверный proxy для заявок.Backend— Vercel-compatible Express API, Telegram webhook и PostgreSQL.parser— парсер и база каталога CarClick (см. parser/README.md).
Скопируйте .env.example в .env, создайте новый BotFather-токен и два секрета:
openssl rand -hex 32Передайте Compose переменные backend и frontend из локальных env-файлов:
docker compose --env-file Backend/.env --env-file Frontend/.env.local up --buildСайт: http://localhost:3000
Backend: http://localhost:4000/health
Локальный Telegram webhook требует публичный HTTPS-туннель. Без него формы и PostgreSQL работают, но Telegram не сможет отправлять /start в локальный backend.
Создайте два Vercel Project из одного репозитория:
- Frontend с Root Directory
Frontend. - Backend с Root Directory
Backend.
Для Backend подключите Neon Postgres через Vercel Marketplace и добавьте переменные:
DATABASE_URL
TELEGRAM_BOT_TOKEN
TELEGRAM_WEBHOOK_SECRET
BACKEND_API_KEY
FRONTEND_ORIGIN=https://ваш-frontend.vercel.app
WEBHOOK_URL=https://ваш-backend.vercel.app
Для Frontend добавьте:
BACKEND_URL=https://ваш-backend.vercel.app
BACKEND_API_KEY=тот-же-секрет
После первого production-деплоя Backend локально выполните:
cd Backend
vercel env pull .env --yes
npm run webhook:setupКоманда создаст таблицу telegram_subscribers и зарегистрирует endpoint /api/telegram в Telegram. Пользователь подписывается командой /start, отписывается командой /stop.
После последующих изменений схемы выполняйте миграции после сборки Backend и до переключения production-трафика:
cd Backend
npm run build
npm run db:migrateВ Docker Compose миграции запускаются автоматически перед Backend. Обработчики HTTP-запросов схему не изменяют, поэтому холодный запуск serverless-функций остаётся быстрым.