👨‍💻 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)

# Iniciar tudo em Docker
./scripts/start.sh --dev

Opção 2: Serviços em Docker + Backend Local

# 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