Bot do Telegram para controle de acesso a grupo de calls cripto baseado em afiliados da Blofin.
- ✅ Controle de acesso ao grupo baseado em verificação de afiliados
- 🔐 Sistema de autenticação e verificação automática
- 📊 Dashboard administrativo com estatísticas
- 🚀 Rate limiting e proteção anti-spam
- 💾 Cache Redis para performance
- 🔄 Tarefas agendadas para manutenção
- 📡 Webhooks para deploy em produção
- Node.js + TypeScript
- Telegraf.js (Bot do Telegram)
- PostgreSQL (Banco de dados)
- Redis (Cache e sessões)
- Express.js (API e webhooks)
- Docker (Containerização)
- PostgreSQL configurado no Easypanel
- Redis configurado no Easypanel
- Bot do Telegram criado via @BotFather
- Conta Blofin com API configurada
Copie .env.example para .env e configure:
# Telegram
TELEGRAM_BOT_TOKEN=6123456789:AAH...
TELEGRAM_GROUP_ID=-1001234567890
TELEGRAM_WEBHOOK_URL=https://your-bot-domain.easypanel.host/webhook
# Blofin API
BLOFIN_API_KEY=your_api_key
BLOFIN_SECRET_KEY=your_secret
BLOFIN_PASSPHRASE=your_passphrase
BLOFIN_BASE_URL=https://openapi.blofin.com
YOUR_REFERRAL_CODE=your_referral_code
# Database (usar nomes dos serviços no Easypanel)
DATABASE_URL=postgresql://username:password@postgres-service:5432/telegram_bot
# Redis (usar nome do serviço no Easypanel)
REDIS_URL=redis://redis-service:6379
# App Config
NODE_ENV=production
PORT=3000
JWT_SECRET=your_super_secret_jwt_key
ENCRYPTION_KEY=your_32_char_encryption_key- Criar repositório no GitHub com o código
- No Easypanel, criar novo serviço tipo "App"
- Conectar ao repositório GitHub
- Configurar variáveis de ambiente
- Deploy automático
/start- Tela inicial e instruções/register- Verificar cadastro na Blofin/status- Ver status da conta/help- Ajuda e suporte
/stats- Estatísticas do bot/listusers- Listar usuários com acesso/revokeaccess <telegram_id>- Revogar acesso/broadcast <mensagem>- Transmitir mensagem
# Instalar dependências
npm install
# Configurar variáveis de ambiente
cp .env.example .env
# Compilar TypeScript
npm run build
# Executar em desenvolvimento
npm run dev
# Executar em produção
npm startGET /health- Status geral dos serviçosGET /health/database- Status do PostgreSQLGET /health/redis- Status do RedisGET /health/blofin- Status da API BlofinGET /metrics- Métricas do sistema
O bot gera logs estruturados para monitoramento:
📝 Incoming request: { user_id, command, timestamp }
✅ Request completed in Xms
📊 User verified successfully: telegram_id
🧹 Cleaned up X expired sessions
- ✅ Rate limiting por usuário
- ✅ Validação de entrada
- ✅ Sanitização de dados
- ✅ Criptografia de tokens
- ✅ Logs de auditoria
- ✅ Middleware de segurança
src/
├── bot/
│ ├── commands/ # Comandos do bot
│ ├── handlers/ # Handlers de eventos
│ └── bot.ts # Configuração principal
├── config/
│ ├── database.ts # Config PostgreSQL
│ ├── redis.ts # Config Redis
│ └── index.ts # Config geral
├── middleware/
│ ├── auth.ts # Autenticação
│ ├── rateLimit.ts # Rate limiting
│ └── error.ts # Tratamento de erros
├── services/
│ ├── blofinService.ts # API Blofin
│ └── userService.ts # Gestão de usuários
├── routes/
│ └── health.ts # Health checks
├── utils/
│ └── scheduler.ts # Tarefas agendadas
├── types/
│ └── index.ts # Tipos TypeScript
└── index.ts # Entry point
- Usuário executa
/start - Bot gera link personalizado da Blofin
- Usuário se cadastra na Blofin
- Usuário executa
/register - Bot verifica na API da Blofin
- Se verificado, usuário ganha acesso ao grupo
- Bot monitora entrada no grupo
- Remove usuários não autorizados
Para problemas técnicos:
- Verifique os logs do container
- Teste endpoints de saúde
- Verifique variáveis de ambiente
- Monitore métricas do sistema
MIT License - veja LICENSE para detalhes.