Ambiente local de desenvolivimento
Postgres
Para subir o Postgres, basta clonar o projeto Serprobots.Migrations
e executar o arquivo postgres.sh que irá criar um container docker
do Postgres já com os bancos e objetos necessários conforme esquema corrente versionado.
Redis
Você pode subir um Redis com docker na porta 6379
sudo docker run -d -p 6379:6379 redis
Elastic
Você pode subir um Elastic com docker na porta 9200 (conferir no hub do docker qual a TAG disponível para versão 7)
docker run -d --name elasticsearch -p 9200:9200 -e "discovery.type=single-node" -e 'ES_JAVA_OPTS: -Xms1g -Xmx1g' elasticsearch:7.17.8
Manager Backend + Frontend e Integrador
Verificar no README.md de cada módulo as orientações para subir ele localmente. Pode exigir a definição de variáveis de ambientes (ex: credenciais de banco, perfís do Spring, etc.). Alguns projetos contém um shellscript na raíz para execução local que já faz esse trabalho.
Geralmente executa-se o backend do Manager em localhost:8080 e o frontend em localhost:4200. O Integrador vai subir em localhost:8081. Mas nos arquivos de properties locais dos projetos há configurações específicas informando o endereço de integração entre um módulo e outro, isso pode ser alterado pelo desenvolvedor para alguma necessidade específica, se possível informando à equipe de alguma mudança sensível que possa influenciar na execução local dos demais.
É imporatnte lembrar que o Integrador possui endpoints HTTP. Através do seu swagger ou de chamadas CURL ou Postman, pode-se acionar seus endpoints para título de testes e debug durante o desenvolvimento. No entanto, alguns endpoints recebem dúzias de parâmetros (o de deploy de chatbot por exemplo), sendo mais viável subir o Manager e acioná-lo por lá, para que ele faça a chamada ao Integrador local.
Stack
A stack precisa buscar configurações do Manager em tempo de boot. O que se faz é definir algumas variáveis de ambiente de modo que ela busque essas configurações de um bot existente lá do ambiente de desenvolvimento, permitindo debugar alguma situação específica.
Atenção!
Ao conversar diretamente com a Stack, não ocorre a gravação/recuperação do contexto conversacional no Redis, nem a gravação do log de conversas no Elastic.
Gateway
O Gateway pode ser executado localmente e ter seus endpoints acionados via CURL ou Postman para fins de testes de desenvolvimento e debug.
(EM CONSTRUÇÃO)