Epic_1_Sprint_1 Build Docker Compose stack - robbiemu/aclarai GitHub Wiki

Tarefa: Construir stack Docker Compose com Neo4j, Postgres, aclarai-core, vault-watcher e scheduler

Descrição

Desenvolver e configurar um stack Docker Compose completo para o aclarai, incluindo todos os serviços de backend necessários: Neo4j (banco de dados de grafos), Postgres com pgvector (banco de dados vetorial), aclarai-core (serviço principal), vault-watcher (observador de arquivos) e scheduler (agendador de tarefas).

Escopo

Incluído

  • Criação do arquivo docker-compose.yml com definição de todos os serviços
  • Configuração do Neo4j para armazenamento de grafos de conhecimento
  • Configuração do Postgres com extensão pgvector para armazenamento de embeddings
  • Definição dos serviços aclarai-core, vault-watcher e scheduler
  • Configuração de volumes para persistência de dados
  • Configuração de redes para comunicação entre serviços
  • Definição de variáveis de ambiente e dependências entre serviços
  • Documentação da arquitetura e uso do stack Docker Compose

Excluído

  • Implementação do código interno dos serviços (aclarai-core, vault-watcher, scheduler)
  • Configuração de serviços de frontend (será feita em tarefa separada)
  • Configuração de produção com SSL/TLS e autenticação avançada
  • Otimizações de desempenho específicas para ambientes de produção
  • Configuração de backup e recuperação de desastres

Critérios de Aceitação

  • Arquivo docker-compose.yml válido e funcional
  • Todos os serviços definidos iniciam corretamente
  • Neo4j acessível na porta 7474 (HTTP) e 7687 (Bolt)
  • Postgres com pgvector acessível na porta 5432
  • Volumes configurados corretamente para persistência de dados
  • Redes definidas para isolamento e comunicação adequada entre serviços
  • Variáveis de ambiente configuradas via arquivo .env
  • Dependências entre serviços definidas corretamente
  • Documentação clara sobre como iniciar e usar o stack

Dependências

  • Definição da arquitetura do sistema
  • Requisitos específicos de cada serviço (portas, volumes, variáveis de ambiente)
  • Docker e Docker Compose instalados no ambiente de desenvolvimento

Entregáveis

  • Arquivo docker-compose.yml completo
  • Arquivo .env de exemplo com variáveis necessárias
  • Documentação de uso do stack Docker Compose
  • Scripts auxiliares para inicialização e gerenciamento (se necessário)

Estimativa de Esforço

  • 2 dias de trabalho

Riscos e Mitigações

  • Risco: Conflitos de porta com serviços existentes
    • Mitigação: Documentar claramente as portas utilizadas e permitir customização via .env
  • Risco: Problemas de permissão com volumes Docker
    • Mitigação: Configurar permissões adequadas e documentar requisitos
  • Risco: Incompatibilidade entre versões de serviços
    • Mitigação: Fixar versões específicas de imagens Docker para garantir compatibilidade

Notas Técnicas

  • Utilizar a versão mais recente estável do Docker Compose (3.9+)
  • Configurar healthchecks para garantir inicialização correta dos serviços
  • Considerar o uso de redes Docker nomeadas para melhor isolamento
  • Implementar restart policies adequadas para cada serviço
  • Configurar volumes nomeados para facilitar backup e persistência
  • Considerar o uso de multi-stage builds para reduzir tamanho de imagens