Desenvolvimento
Ambiente de Desenvolvimento
Como configurar o ambiente de desenvolvimento para contribuir com o stCall.
Ambiente de Desenvolvimento
Pré-requisitos
- Docker e Docker Compose v2+
- Bun 1.x (bun.sh) - Opcional para dev local sem Docker
- Git
- Editor com suporte a TypeScript (VS Code recomendado)
Estrutura do Monorepo
stcall-project/
├── stCall/ # Frontend Nuxt 3 (porta 3000)
├── websockets-stcall/ # Servidor WebSocket Bun (porta 3001)
└── docs/ # Documentação Docus (porta 3001 em dev)
Cada componente tem seu próprio docker-compose.yml, Dockerfile, .env e gerenciamento de dependências independente.
Iniciando com Docker
1. WebSocket Server + PostgreSQL
cd websockets-stcall
cp .env.example .env
# Editar .env com configurações do Asterisk
docker compose up --build -d
Serviços iniciados:
stcall-ws(porta 3001)stcall-postgres(porta 5432)stcall-pgadmin(porta 5050)
2. Frontend
cd stCall
cp .env.example .env
# Editar .env com configurações
docker compose up --build
O container executa bun install --force e bun --bun run dev --no-fork automaticamente.
3. Verificar
- Frontend: http://localhost:3000
- WebSocket health: http://localhost:3001/health
- pgAdmin: http://localhost:5050
Desenvolvimento Local (sem Docker)
# Instalar Bun
curl -fsSL https://bun.sh/install | bash
# Frontend
cd stCall
bun install
bun run dev
# WebSocket Server (outro terminal)
cd websockets-stcall
bun install
bun run dev
Comandos Úteis
Frontend (stCall)
| Comando | Descrição |
|---|---|
bun run dev | Servidor de desenvolvimento (HMR) |
bun run build | Build de produção |
bun run preview | Preview do build |
WebSocket Server
| Comando | Descrição |
|---|---|
bun run dev | Servidor de desenvolvimento |
bun run start | Servidor de produção |
bun run build | Build para produção |
bun run healthcheck | Verifica saúde do servidor |
Prisma (no websockets-stcall)
| Comando | Descrição |
|---|---|
bunx prisma generate --schema=./prisma/schema-stcall.prisma | Gerar cliente PostgreSQL |
bunx prisma generate --schema=./prisma/schema.prisma | Gerar cliente FreePBX |
bunx prisma migrate dev --config=./prisma.config.ts | Criar migração |
bunx prisma migrate deploy --config=./prisma.config.ts | Aplicar migrações |
bunx prisma studio --schema=./prisma/schema-stcall.prisma | Interface visual do banco |
Hot Module Replacement (HMR)
O frontend usa polling para HMR dentro do Docker:
// nuxt.config.ts
vite: {
server: {
hmr: {
host: '0.0.0.0',
port: 24678,
},
watch: {
usePolling: true,
},
},
}
A variável CHOKIDAR_USEPOLLING=true no .env garante que o file watching funcione no Docker.
VS Code
Extensões Recomendadas
- Vue - Official (Vue Language Features)
- TypeScript Vue Plugin (Volar)
- Tailwind CSS IntelliSense
- Prisma
- ESLint
Configuração
O TypeScript está em modo estrito. O tsconfig.json estende a configuração gerada pelo Nuxt:
{
"extends": "./.nuxt/tsconfig.json"
}