AutomationПремиум

Leadra - платформа по поиску лидов в Telegram

Платформа для генерации и обработки лидов из Telegram: мониторинг чатов, сбор участников, базы контактов, автоматизация и биллинг.

~120 минСложныйREADME
Next.jsTypeScriptMongoDBRedisShadcn UIOpenRouterTelegrampnpm

Ценность

Вайбкодинг

260 ч

Строк кода

440 000+

Аналог у студии

от 650 000 ₽

Экономия на токенах

≈ 90 000 ₽

Инструкция из репозитория

Leadra

Платформа для генерации и обработки лидов из Telegram: мониторинг чатов, сбор участников, базы контактов, автоматизация и биллинг. Основное приложение — Next.js на домене app.leadra.ru; публичный маркетинг — leadra.ru / lead-gen landing.


Оглавление


Возможности

ПоверхностьПутьНазначение
Главная / кабинет/Проекты, подписки, вход в модули
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-statuschats-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_SECRETNEXT_PUBLIC_ADMIN_SECRET на клиенте).

ПутьНазначение
/adminГлавная
/admin/usersПользователи
/admin/projectsПроекты
/admin/modulesМодули
/admin/subscription-plansТарифы
/admin/broadcastsРассылки
/admin/email-platformEmail Platform (кампании, шаблоны, аудитории, аналитика, очередь…)
/admin/funnelsВоронки
/admin/referral/referrersРефералы
/admin/referral/payoutsВыплаты
/admin/paymentsПлатежи
/admin/bookingsБронирования
/admin/crmCRM канбан
/admin/analyticsАналитика
/admin/monitoringМониторинг
/admin/proxiesПрокси
/admin/wb-api-keysWB API ключи
/admin/wb-api-monitoringWB API мониторинг
/admin/harvesterHarvester
/admin/licensesЛицензии
/admin/settingsНастройки
/admin/helpПомощь
/admin/supportПоддержка

Стек

СлойТехнология
RuntimeNode.js ≥ 22, pnpm ≥ 9
AppNext.js ^16 (App Router), React, TypeScript
UITailwind CSS, Shadcn UI, Radix
БДMongoDB (leadramongodb)
Очереди / кэшRedis (email-platform и смежные сервисы)
AIOpenRouter и интеграции модуля Lead Gen
ПлатежиYooKassa
Process manager (prod)PM2 (ecosystem.config.cjs)
Версия пакетаpackage.json1.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.

КатегорияПримеры
RequiredMONGODB_URI / MONGODB_HOST*, TELEGRAM_BOT_TOKEN, JWT_SECRET, ADMIN_SECRET, NEXT_PUBLIC_ADMIN_SECRET, URL приложения
RecommendedOPENROUTER_API_KEY, Redis, OpenSearch, landing URL
Production-onlyYooKassa, платежные токены 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 devDev на порту 3000 (+ monitor)
pnpm buildProduction build
pnpm startnext start -p 3000
pnpm pm2:prodСтарт через ecosystem.config.cjs
pnpm email-platform:initInit 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.

Критичные правила:

  1. Не коммитить .env* с секретами.
  2. Не деплоить с fallback-паролями в коде (их убрали; env обязателен).
  3. После ротации секретов — обновить 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 на prodPM2 процесс и порт за nginx — docs/deploy/

Безопасность для внешних разработчиков

  1. Секреты только в локальном .env.local / серверном .env.production — не в git.
  2. Не вставлять API keys, URI с паролем, shop_id в PR и docs.
  3. Считайте, что любые секреты, когда-либо попадавшие в историю git, скомпрометированы — владелец должен ротировать их до выдачи доступа.
  4. 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 часов.

v1.0.0

Master Prompt в Премиум

Скопируйте один prompt в Cursor, Claude Code или Codex — и соберите приложение end-to-end. Внутри — персональный доступ к приватному репозиторию.

Смотреть тарифы

Оплата после выбора тарифа — затем вход или регистрация.

Changelog

  • v1.0.0 · 2026-07-16

    Каталожный релиз Leadra с private repo placeholders.