👨💻 Guia de Desenvolvimento - ECOSIF
📋 Visão Geral
Este guia é direcionado para desenvolvedores que vão trabalhar no projeto ECOSIF localmente.
🎯 Objetivo
Configurar um ambiente de desenvolvimento local completo, otimizado para: - ✅ Hot reload - ✅ Logs detalhados - ✅ Debug facilitado - ✅ Desenvolvimento rápido
✅ Pré-requisitos
Software Necessário
| Software | Versão | Instalação |
|---|---|---|
| Docker | 20.10+ | Instruções |
| Docker Compose | 2.0+ | Incluído no Docker Desktop |
| Python | 3.8+ | Instruções |
| Java 17 | 17+ | Para desenvolvimento local (opcional) |
| Maven | 3.9+ | Para builds locais (opcional) |
| Node.js | 18+ | Para desenvolvimento Angular (opcional) |
🚀 Setup Rápido
Passo 1: Clonar e Configurar
# Clonar repositório
git clone <repo-url>
cd ecosif-ia-services/ecosif-structure
# Configurar variáveis
python3 scripts/setup-env.py
Durante o setup:
- Use localhost como domínio
- Use http://localhost como URL base
- Configure senhas de desenvolvimento (pode usar valores simples)
Passo 2: Iniciar em Modo Dev
# Iniciar todos os serviços
./scripts/start.sh --dev
# Aguardar inicialização
sleep 60
# Verificar status
./scripts/status.sh --dev
Passo 3: Verificar
# Frontend
curl http://localhost
# APIs
curl http://localhost/ecosif-auth/actuator/health
🔧 Configuração Detalhada
Variáveis de Desenvolvimento
Edite o arquivo .env:
# Domínio e URLs
ECOSIF_DOMAIN=localhost
ECOSIF_API_BASE_URL=http://localhost
# Banco de Dados (pode usar valores simples)
POSTGRES_DB=ecosif_dev
POSTGRES_USER=postgres
POSTGRES_PASSWORD=dev123
# Segurança (pode usar valor simples para dev)
AUTH_TOKEN_SECRET=dev-secret-key-12345678901234567890
# Logging (mais verboso)
ECOSIF_LOGSHOW=true
ECOSIF_LOGMODE_ROOT=DEBUG
ECOSIF_LOGMODE_SPRING=DEBUG
ECOSIF_LOGMODE_HIBERNATE_SQL=DEBUG
# Desabilitar SSL
TRAEFIK_ACME_ENABLED=false
💻 Desenvolvimento Local vs Docker
Opção 1: Tudo em Docker (Recomendado)
- ✅ Mais próximo do ambiente de produção
- ✅ Não precisa instalar Java, Maven, Node localmente
- ✅ Isolamento completo
# Iniciar tudo em Docker
./scripts/start.sh --dev
Opção 2: Serviços em Docker + Backend Local
- ✅ Hot reload mais rápido
- ✅ Debug mais fácil
- ⚠️ Requer Java/Maven instalados
# Iniciar apenas infraestrutura (PostgreSQL, etc)
./scripts/start.sh --dev postgres
# Rodar backend localmente
cd ../ecosif-auth
mvn spring-boot:run
🔄 Workflow de Desenvolvimento
1. Atualizar Código
# Atualizar código
git pull origin main
# Atualizar submodules (se houver)
./scripts/update-submodules.sh
2. Rebuild e Reiniciar
# Rebuild de um serviço específico
./scripts/update.sh --dev ecosif-auth
# Rebuild de todos
./scripts/update.sh --dev
3. Ver Logs
# Logs de um serviço
./scripts/logs.sh --dev ecosif-auth --follow
# Logs de todos
./scripts/logs.sh --dev --follow
🐛 Debugging
Ver Logs Detalhados
# Logs em tempo real
./scripts/logs.sh --dev [service] --follow
# Últimas 100 linhas
./scripts/logs.sh --dev [service] --tail 100
Entrar em Container
# Entrar em um container
docker exec -it ecosif-auth bash
# Ver variáveis de ambiente
docker exec ecosif-auth env | grep ECOSIF
Testar APIs
# Obter token
TOKEN=$(curl -s -X POST http://localhost/ecosif-auth/api/auth/signin \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"senha123"}' \
| jq -r '.accessToken')
# Testar endpoint
curl -H "Authorization: Bearer $TOKEN" \
http://localhost/ecosif-masterdata/api/companies
📝 Dicas de Desenvolvimento
1. Hot Reload
Para desenvolvimento local de um serviço específico:
# Parar apenas o serviço
./scripts/stop.sh --dev ecosif-auth
# Rodar localmente (hot reload)
cd ../ecosif-auth
mvn spring-boot:run
2. Banco de Dados
# Conectar ao banco
docker exec -it postgres psql -U postgres -d ecosif_dev
# Ver tabelas
\dt
# Ver dados
SELECT * FROM gr_empresa;
3. Limpar e Recriar
# Limpar tudo e recomeçar
./scripts/clean.sh --volumes
./scripts/start.sh --dev --build
🔄 Comandos Úteis
# Reiniciar um serviço
./scripts/restart.sh --dev ecosif-auth
# Status geral
./scripts/status.sh --dev
# Parar tudo
./scripts/stop.sh --dev
# Limpar recursos
./scripts/clean.sh
📚 Próximos Passos
Última Atualização: 2025-12-01