- Dockerfile 80.9%
- Shell 19.1%
| deploy | ||
| docs | ||
| kong | ||
| .env.example | ||
| .gitignore | ||
| backupMongo.sh | ||
| compose.override.yml | ||
| docker-compose.yml | ||
| README.md | ||
Panela API Gateway
API Gateway com Kong. Serve como um ponto de entrada unificado para o front-end, roteando chamadas para os microserviços apropriados;
✅ FRONT-END ONLINE EM: https://panela.app.fslab.dev
✅ API GATEWAY ONLINE EM: https://panela-gateway.app.fslab.dev
Url para documentação de cada API (Escolha no dropdown no canto superior direito qual API):
Instalação
Primeiro crie uma pasta qualquer, onde cada um dos projetos será clonado:
mkdir panela
cd panela
Clone todos os projetos dentro desta pasta:
git clone ssh://git@gitlab.fslab.dev:4241/arquitetura-de-software-2024/panela-api-gateway.git
git clone ssh://git@gitlab.fslab.dev:4241/arquitetura-de-software-2024/panela-auth-api.git
git clone ssh://git@gitlab.fslab.dev:4241/arquitetura-de-software-2024/panela-chat-api.git
git clone ssh://git@gitlab.fslab.dev:4241/arquitetura-de-software-2024/panela-front.git
git clone ssh://git@gitlab.fslab.dev:4241/arquitetura-de-software-2024/panela-notificacoes-api.git
git clone ssh://git@gitlab.fslab.dev:4241/arquitetura-de-software-2024/panela-posts-api.git
git clone ssh://git@gitlab.fslab.dev:4241/arquitetura-de-software-2024/panela-usuarios-api.git
git clone ssh://git@gitlab.fslab.dev:4241/arquitetura-de-software-2024/panela-arquivos.git
A estrutura de pastas deve ficar assim:
ls -lhas
______________________________________________________________________
total 36K
4,0K drwxrwxr-x 9 erick erick 4,0K dez 16 07:52 .
4,0K drwxrwxr-x 44 erick erick 4,0K nov 12 13:51 ..
4,0K drwxrwxr-x 5 erick erick 4,0K nov 18 11:34 panela-api-gateway
4,0K drwxrwxr-x 7 erick erick 4,0K nov 18 11:20 panela-auth-api
4,0K drwxrwxr-x 4 erick erick 4,0K dez 16 09:26 panela-chat-api
4,0K drwxrwxr-x 7 erick erick 4,0K dez 16 09:25 panela-front
4,0K drwxrwxr-x 4 erick erick 4,0K dez 16 09:38 panela-notificacoes-api
4,0K drwxrwxr-x 4 erick erick 4,0K dez 16 09:56 panela-posts-api
4,0K drwxrwxr-x 5 erick erick 4,0K dez 16 10:00 panela-usuarios-api
4,0K drwxrwxr-x 4 erick erick 4,0K dez 16 10:00 panela-arquivos
Importante: Em sequida, entre em cada uma das pastas e copie o .env.example para .env, e edite conforme necessário. também verifique em que branch você deseja estar, alguns projetos possuem branchs dev outros apenas master, verifique para cada um.
Para criar o .env local, em cada um dos projetos execute:
cp .env.example .env
Execução
Para executar o projeto inteiro, basta utilizar um único docker-compose na pasta panela-api-gateway:
cd panela-api-gateway
docker compose up -d --build --force-recreate
Será realizado o build de cada uma das imagens docker de cada API e 1 banco de dados para todos, cada um com sua database (fica tranquilo, cada um consume apenas em torno de 100 a 200 mb de memória apenas)
Seed
Para popular o banco de dados com dados de teste, execute o comando abaixo:
docker exec -it panela-auth npm run seed
docker exec -it panela-posts npm run seed
(Por enquanto só tem esses dois seeds, mas em breve talvez tenha mais)
Agora, basta acessar http://localhost:3000 para abrir o site ou então http://localhost:8000 para abrir as API's via o gateway.
Url de cada API via gateway rodando local:
- Auth -> http://localhost:8000/auth
- Chat -> http://localhost:8000/chat
- Notificacoes -> http://localhost:8000/notificacoes
- Posts -> http://localhost:8000/posts
- Usuarios -> http://localhost:8000/usuarios
- Arquivos -> http://localhost:8000/arquivos
As rotas são após o prefixo de cada API, por exemplo, para acessar a rota de /login da API Auth, acesse http://localhost:8000/auth/login Pior ainda, algumas ficaram parecendo duplicados, no de usuários a rota /usuarios fica via gateway: http://localhost:8000/usuarios/usuarios, mas é isso mesmo, é a rota de usuários da API de usuários.