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

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)

ComandoDescrição
bun run devServidor de desenvolvimento (HMR)
bun run buildBuild de produção
bun run previewPreview do build

WebSocket Server

ComandoDescrição
bun run devServidor de desenvolvimento
bun run startServidor de produção
bun run buildBuild para produção
bun run healthcheckVerifica saúde do servidor

Prisma (no websockets-stcall)

ComandoDescrição
bunx prisma generate --schema=./prisma/schema-stcall.prismaGerar cliente PostgreSQL
bunx prisma generate --schema=./prisma/schema.prismaGerar cliente FreePBX
bunx prisma migrate dev --config=./prisma.config.tsCriar migração
bunx prisma migrate deploy --config=./prisma.config.tsAplicar migrações
bunx prisma studio --schema=./prisma/schema-stcall.prismaInterface 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"
}
Copyright © 2026