Leadra - платформа по поиску лидов в Telegram
Платформа для генерации и обработки лидов из Telegram: мониторинг чатов, сбор участников, базы контактов, автоматизация и биллинг.
Ценность
Вайбкодинг
260 ч
Строк кода
440 000+
Аналог у студии
от 650 000 ₽
Экономия на токенах
≈ 90 000 ₽
Инструкция из репозитория
Leadra
Платформа для генерации и обработки лидов из Telegram: мониторинг чатов, сбор участников, базы контактов, автоматизация и биллинг. Основное приложение — Next.js на домене app.leadra.ru; публичный маркетинг — leadra.ru / lead-gen landing.
Оглавление
- Возможности
- Админка
- Стек
- Требования
- Доступ к репозиторию
- Локальная разработка
- Переменные окружения
- Структура проекта
- Скрипты
- Production deploy
- Git workflow
- Troubleshooting
- Безопасность для внешних разработчиков
- Документация
Возможности
| Поверхность | Путь | Назначение |
|---|---|---|
| Главная / кабинет | / | Проекты, подписки, вход в модули |
| Lead Gen | /modules/lead-gen | Ядро продукта: лиды, чаты, автоматизация |
| Подписка | /modules/subscription | Тарифы, продление, биллинг |
| Auth | /auth, /login, /auth/browser | Авторизация (Telegram / browser) |
| Публичный лендинг | /(public)/landing, apps/lead-gen-landing | Маркетинговые страницы |
| Админка | /admin/* | Операции, пользователи, платежи, email-platform |
Lead Gen — views (?view=)
| Раздел | View |
|---|---|
| Дашборд лидов | leads-dashboard |
| Таблица лидов | leads-table |
| Аналитика | leads-analytics |
| Базы данных | leads-databases |
| Мониторинг: статус / сессии / логи / история / пресеты / уведомления | chats-status … chats-notifications |
| Поиск и списки чатов | chats-discovery, chats-lists |
| Участники / автоскан / пересечения | chats-participants, chats-autoscan, chats-overlap |
| Автоответы / RAG / мастер-контакты | auto-responses, auto-rag, auto-contacts |
| Шаблоны / настройки / помощь | settings-templates, settings-general, settings-help |
В коде нет режима «демо без MongoDB». Данные читаются и пишутся в реальные коллекции (
lead_gen_*, пользователи, подписки и т.д.).
Админка
Навигация: src/components/admin/AdminSidebar.tsx. Доступ по заголовку x-admin-token = ADMIN_SECRET (и NEXT_PUBLIC_ADMIN_SECRET на клиенте).
| Путь | Назначение |
|---|---|
/admin | Главная |
/admin/users | Пользователи |
/admin/projects | Проекты |
/admin/modules | Модули |
/admin/subscription-plans | Тарифы |
/admin/broadcasts | Рассылки |
/admin/email-platform | Email Platform (кампании, шаблоны, аудитории, аналитика, очередь…) |
/admin/funnels | Воронки |
/admin/referral/referrers | Рефералы |
/admin/referral/payouts | Выплаты |
/admin/payments | Платежи |
/admin/bookings | Бронирования |
/admin/crm | CRM канбан |
/admin/analytics | Аналитика |
/admin/monitoring | Мониторинг |
/admin/proxies | Прокси |
/admin/wb-api-keys | WB API ключи |
/admin/wb-api-monitoring | WB API мониторинг |
/admin/harvester | Harvester |
/admin/licenses | Лицензии |
/admin/settings | Настройки |
/admin/help | Помощь |
/admin/support | Поддержка |
Стек
| Слой | Технология |
|---|---|
| Runtime | Node.js ≥ 22, pnpm ≥ 9 |
| App | Next.js ^16 (App Router), React, TypeScript |
| UI | Tailwind CSS, Shadcn UI, Radix |
| БД | MongoDB (leadramongodb) |
| Очереди / кэш | Redis (email-platform и смежные сервисы) |
| AI | OpenRouter и интеграции модуля Lead Gen |
| Платежи | YooKassa |
| Process manager (prod) | PM2 (ecosystem.config.cjs) |
| Версия пакета | package.json → 1.0.0 (spacemod-unified) |
Требования
- Node.js ≥ 22, pnpm ≥ 9
- MongoDB 7 (локально:
127.0.0.1:27017, БДleadramongodb) - Redis 7 — для email-platform / очередей (если работаете с этим модулем)
- Telegram Bot token — выдаёт администратор out-of-band
- Секреты админки / JWT / шифрование — только из env, не из репозитория
Доступ к репозиторию
Клонирование по SSH (канонический remote origin):
git clone ssh://git@gitverse.ru:2222/spacemod/leadra.ru.git
cd leadra.ru
Секреты окружения и доступы к prod/staging выдаются администратором вне git.
Локальная разработка
1. Зависимости
pnpm install
2. Env
cp env.example .env.local
# заполните REQUIRED-поля; секреты не коммитить
3. Инфраструктура
Рекомендуется локальный MongoDB (Docker или mongod), не cloud Atlas как основной путь:
# пример: MongoDB без auth на localhost
# URI: mongodb://127.0.0.1:27017/leadramongodb
Redis при необходимости — локально на 127.0.0.1:6379.
4. Dev-сервер
pnpm dev
# приложение: http://localhost:3000
Альтернативы: pnpm dev:web, pnpm pm2:dev (см. package.json).
Не используйте mock/fallback-данные вместо MongoDB. Приложение рассчитано на реальную БД.
Переменные окружения
Канонический шаблон: env.example.
| Категория | Примеры |
|---|---|
| Required | MONGODB_URI / MONGODB_HOST*, TELEGRAM_BOT_TOKEN, JWT_SECRET, ADMIN_SECRET, NEXT_PUBLIC_ADMIN_SECRET, URL приложения |
| Recommended | OPENROUTER_API_KEY, Redis, OpenSearch, landing URL |
| Production-only | YooKassa, платежные токены Telegram, пути PM2 на сервере (APP_LEADRA_SERVER_CWD) |
Host API tokens / APP_ID / прод-credentials — только out-of-band от владельца репозитория.
Структура проекта
.
├── apps/lead-gen-landing/ # отдельный landing Lead Gen
├── docs/ # операционные и продуктовые документы
├── harvester/ # сбор данных WB (legacy / смежный контур)
├── scripts/ # утилиты, deploy, экспорт
├── src/
│ ├── app/ # Next.js App Router (pages + api)
│ │ ├── admin/ # админка
│ │ ├── modules/ # lead-gen, subscription
│ │ └── api/ # REST handlers
│ ├── components/
│ ├── modules/email-platform/
│ └── lib/
├── ecosystem.config.cjs # PM2 production
├── env.example
└── package.json
Скрипты
| Команда | Назначение |
|---|---|
pnpm install | Зависимости |
pnpm dev | Dev на порту 3000 (+ monitor) |
pnpm build | Production build |
pnpm start | next start -p 3000 |
pnpm pm2:prod | Старт через ecosystem.config.cjs |
pnpm email-platform:init | Init email-platform (нужен ADMIN_SECRET в env) |
Выгрузка контактов Lead Gen с локальной MongoDB (консоль):
node scripts/export-lead-gen-contacts-xlsx.cjs --local <telegramUserId> <projectId>
См. src/app/modules/lead-gen/docs/EXPORT_CONTACTS_CONSOLE.md.
Production deploy
- Процессы: PM2 (
ecosystem.config.cjs), Node + Next на порту 3000 (за reverse-proxy). - БД: MongoDB
leadramongodb; credentials только из env на сервере (в репозитории hardcoded URI запрещены). - Runbook:
docs/deploy/(в т.ч. устранение 502),scripts/deploy-app-leadra-server.sh. - Перед релизом: заполненный
.env.productionна хосте,pnpm build, проверка health API.
Критичные правила:
- Не коммитить
.env*с секретами. - Не деплоить с fallback-паролями в коде (их убрали; env обязателен).
- После ротации секретов — обновить env на всех хостах и перезапустить PM2.
Git workflow
Ветки: master (prod) · develop · feature/*.
git checkout develop
git pull origin develop
git checkout -b feature/short-name
# …работа…
git push -u origin feature/short-name
# merge --no-ff feature → develop → master (по согласованию владельца)
- Не пушить в
synology(локальный backup remote). - Не коммитить напрямую в
master/develop. - Conventional commits:
feat|fix|docs|refactor|chore|test(scope): …
Troubleshooting
| Симптом | Что проверить |
|---|---|
| Пустые лиды / базы | Тот же MONGODB_URI / MONGODB_HOST, что в Compass; совпадение telegramUserId + projectId |
MongoServerSelectionError | Сеть до хоста БД; для локальных данных — флаг --local у export-скрипта |
| 401 в админке | ADMIN_SECRET / NEXT_PUBLIC_ADMIN_SECRET совпадают |
| 502 на prod | PM2 процесс и порт за nginx — docs/deploy/ |
Безопасность для внешних разработчиков
- Секреты только в локальном
.env.local/ серверном.env.production— не в git. - Не вставлять API keys, URI с паролем, shop_id в PR и docs.
- Считайте, что любые секреты, когда-либо попадавшие в историю git, скомпрометированы — владелец должен ротировать их до выдачи доступа.
- Admin token не хардкодить: только
process.env.ADMIN_SECRET.
Документация
| Путь | Тема |
|---|---|
docs/README.md | Индекс всей документации |
env.example | Переменные окружения (SoT) |
docs/setup/ | Установка, MongoDB, onboarding |
docs/ops/ · docs/deploy/ | Production / PM2 / инциденты |
docs/security/ | Hardening и ротация секретов |
docs/product/ · docs/audits/ · docs/reports/ | Продукт, аудиты, отчёты |
src/app/modules/lead-gen/ | Документация модуля Lead Gen |
src/modules/email-platform/docs/ | Email Platform |
mongodb-compass-connection.example.json | Пример Compass (без секретов) |
В корне репозитория среди markdown остаётся только этот README.md.
Контакты
Операционные доступы и прод-секреты — у владельца репозитория. Публичные продуктовые домены: leadra.ru, app.leadra.ru.
Master Prompt
Скопируйте в Cursor / Claude Code. Каждый copy даёт новый токен; предыдущий действует ещё 48 часов.
Master Prompt в Премиум
Скопируйте один prompt в Cursor, Claude Code или Codex — и соберите приложение end-to-end. Внутри — персональный доступ к приватному репозиторию.
Оплата после выбора тарифа — затем вход или регистрация.
Changelog
v1.0.0 · 2026-07-16
Каталожный релиз Leadra с private repo placeholders.