- monorepo skeleton (apps/, packages/, infrastructure/, scripts/, docs/) - docker-compose with PostgreSQL 18 and Redis 7 (localhost-only) - .gitignore and .env.example - initial TODO.md and docs/ARCHITECTURE.md
52 lines
1.6 KiB
Markdown
52 lines
1.6 KiB
Markdown
# Arquitetura — B2BCall
|
|
|
|
SaaS multi-tenant de call center, discagem preditiva, telefonia, IA e billing.
|
|
Ver `agente.md` na raiz do projeto para a especificação completa.
|
|
|
|
## Stack
|
|
|
|
- **Backend**: Node.js, TypeScript, NestJS, Fastify
|
|
- **Frontend**: Next.js, React, TypeScript, Tailwind CSS, shadcn/ui
|
|
- **Banco**: PostgreSQL (18)
|
|
- **Cache/Jobs**: Redis + BullMQ
|
|
- **Telefonia**: FreeSWITCH
|
|
- **Reverse Proxy**: nginx
|
|
|
|
## Monorepo
|
|
|
|
```
|
|
apps/
|
|
frontend/ Next.js
|
|
api/ API principal (NestJS)
|
|
dialer-worker/ Predictive Dialer Engine
|
|
freeswitch-events/ Consumidor ESL (mod_event_socket)
|
|
freeswitch-config/ Provedor XML Curl (Directory/Dialplan)
|
|
scheduler/ Jobs agendados (callbacks, retenção, fechamento)
|
|
ai-worker/ Pipeline de transcrição/análise IA
|
|
billing-worker/ Rating Engine / fechamento mensal
|
|
|
|
packages/
|
|
database/ auth/ billing/ ai/ telephony/ shared/ types/ ui/
|
|
|
|
infrastructure/
|
|
docker/ freeswitch/ postgres/ redis/ nginx/
|
|
|
|
scripts/
|
|
docs/
|
|
```
|
|
|
|
## Servidor atual (ambiente de desenvolvimento)
|
|
|
|
- Debian 13 (trixie), kernel 6.12
|
|
- 2 vCPU, ~1.9GB RAM, ~26GB disco livre
|
|
- Hostname: `Lab-FSCore-RTPEngine` — sugere ambiente de laboratório, não produção
|
|
|
|
**Atenção**: a RAM disponível é baixa para rodar a stack completa (Postgres + Redis +
|
|
FreeSWITCH + workers Node + Next.js) ao mesmo tempo. Ver `TODO.md` para riscos e
|
|
recomendações antes de escalar para todos os serviços simultaneamente.
|
|
|
|
## Rede
|
|
|
|
Serviços de infraestrutura (Postgres, Redis) expostos apenas em `127.0.0.1`, nunca
|
|
publicamente, conforme seção 184 de `agente.md`.
|