Skip to content

Latest commit

 

History

History
203 lines (143 loc) · 4.15 KB

File metadata and controls

203 lines (143 loc) · 4.15 KB

🐳 Docker Setup - IBDFAM RAG

Este guia explica como executar toda a aplicação IBDFAM RAG usando Docker Compose.

📋 Pré-requisitos

  • Docker e Docker Compose instalados
  • Chave da API OpenAI
  • Chaves de API do Typesense e Qdrant (se aplicável)

🚀 Configuração Rápida

1. Configurar Variáveis de Ambiente

Copie o arquivo de exemplo e configure suas variáveis:

cp .env.example .env

Edite o arquivo .env com suas chaves de API:

# Configurações do Typesense
TYPESENSE_API_KEY=sua_chave_typesense_aqui

# Configurações do Qdrant (opcional se usando serviço local)
QDRANT_API_KEY=sua_chave_qdrant_aqui

# Configurações da OpenAI (OBRIGATÓRIO)
OPENAI_API_KEY=sua_chave_openai_aqui

2. Executar a Aplicação

# Iniciar todos os serviços
docker-compose up -d

# Ver logs
docker-compose logs -f

# Parar todos os serviços
docker-compose down

🏗️ Serviços Incluídos

🌐 Aplicação Next.js (app)

🔍 Qdrant Vector Database (qdrant)

  • Porta HTTP: 6333
  • Porta gRPC: 6334
  • URL: http://localhost:6333
  • Banco de dados vetorial para busca semântica

🔎 Typesense Search Engine (typesense)

🔄 Sync Service (sync)

  • Serviço para sincronização de dados
  • Executado sob demanda com profile sync

📊 Comandos Úteis

Executar Sincronização de Dados

# Executar serviço de sincronização
docker-compose --profile sync up sync

# Testar conexões
docker-compose --profile sync run sync npm run test:connections:js

# Sincronizar dados do Typesense para Qdrant
docker-compose --profile sync run sync npm run sync:js

Monitoramento

# Ver status dos serviços
docker-compose ps

# Ver logs de um serviço específico
docker-compose logs -f app
docker-compose logs -f qdrant
docker-compose logs -f typesense

# Executar comandos dentro dos containers
docker-compose exec app sh
docker-compose exec qdrant sh

Limpeza

# Parar e remover containers
docker-compose down

# Remover volumes (CUIDADO: apaga dados)
docker-compose down -v

# Rebuild das imagens
docker-compose build --no-cache

🔧 Desenvolvimento

Build Local

# Build apenas da aplicação
docker-compose build app

# Build de todos os serviços
docker-compose build

Volumes Persistentes

  • Qdrant: ./qdrant_storage:/qdrant/storage
  • Typesense: typesense-data:/data

🚨 Troubleshooting

Problemas Comuns

  1. Porta já em uso:

    # Verificar processos usando as portas
    lsof -i :3000
    lsof -i :6333
    lsof -i :8108
  2. Problemas de permissão:

    # Ajustar permissões do diretório qdrant_storage
    sudo chown -R $USER:$USER ./qdrant_storage
  3. Variáveis de ambiente não carregadas:

    • Verifique se o arquivo .env está na raiz do projeto
    • Confirme que não há espaços extras nas variáveis
  4. Serviços não inicializam:

    # Ver logs detalhados
    docker-compose logs --tail=50 -f
    
    # Reiniciar serviços específicos
    docker-compose restart qdrant
    docker-compose restart typesense

Logs Detalhados

# Logs de todos os serviços
docker-compose logs -f

# Logs com timestamp
docker-compose logs -f -t

# Últimas 100 linhas de log
docker-compose logs --tail=100

🔒 Segurança

  • Nunca commite o arquivo .env com chaves reais
  • Use chaves de API específicas para desenvolvimento
  • Configure firewalls adequadamente em produção

📈 Performance

Recursos Recomendados

  • RAM: Mínimo 4GB, recomendado 8GB+
  • CPU: 2+ cores
  • Disco: SSD recomendado para melhor performance do Qdrant

Otimizações

# Limitar recursos do Docker (opcional)
docker-compose up -d --scale app=1 --memory=2g

🆘 Suporte

Para problemas específicos:

  1. Verifique os logs: docker-compose logs -f
  2. Confirme as variáveis de ambiente
  3. Teste conexões individuais dos serviços
  4. Consulte a documentação oficial do Docker Compose