157 lines
4.1 KiB
Markdown
157 lines
4.1 KiB
Markdown
# Arquitetura do Sistema NC1
|
|
|
|
Este documento detalha a topologia dos serviços, fluxo de rede e componentes da infraestrutura.
|
|
|
|
## Diagrama de Arquitetura
|
|
|
|
O diagrama abaixo ilustra a comunicação entre o proxy reverso (Traefik), serviços de aplicação, bancos de dados e ferramentas de suporte.
|
|
|
|
```mermaid
|
|
flowchart LR
|
|
%% Nós Externos
|
|
Internet((Internet)) -->|HTTPS/443| T[Traefik Proxy]
|
|
|
|
%% Core Infrastructure
|
|
subgraph Support ["Infraestrutura de Suporte"]
|
|
direction TB
|
|
VW[Vaultwarden]
|
|
FG[Forgejo Git]
|
|
PG[(PostgreSQL)]
|
|
RD[(Redis)]
|
|
end
|
|
|
|
%% Core Services
|
|
subgraph Core ["Core Platform"]
|
|
CIG[Identity Gateway]
|
|
CPP[Platform Projects]
|
|
CDB[Core Dashboard]
|
|
end
|
|
|
|
%% SaveInMed Ecosystem
|
|
subgraph SaveInMed ["Ecosistema SaveInMed"]
|
|
SIMB[Backend API]
|
|
SIMM[Marketplace]
|
|
end
|
|
|
|
%% Q1 Connect Ecosystem
|
|
subgraph Q1 ["Q1 Connect"]
|
|
direction TB
|
|
subgraph Q1Apps ["Apps"]
|
|
Q1FOOD[Food Backend]
|
|
Q1VEST[Vestuário/Store]
|
|
Q1ABE[Agenda Backend]
|
|
Q1AFE[Agenda Frontend]
|
|
end
|
|
subgraph Q1Management ["Gestão"]
|
|
Q1BE[Total Backend]
|
|
Q1DB[Total Dashboard]
|
|
end
|
|
end
|
|
|
|
%% Sextando Ecosystem
|
|
subgraph Sextando ["Sextando"]
|
|
SXBE[Backend API]
|
|
SXFE[Frontend Web]
|
|
end
|
|
|
|
%% Invent Ecosystem
|
|
subgraph Invent ["Invent Finance"]
|
|
INVBE[Backend API]
|
|
INVFE[Frontend App]
|
|
end
|
|
|
|
%% Virtual Fashion Ecosystem
|
|
subgraph VFashion ["Virtual Fashion"]
|
|
VFBE[Backend API]
|
|
VFFE[Frontend Web]
|
|
VFMIN[MinIO Storage]
|
|
end
|
|
|
|
%% Invoice Ninja Ecosystem
|
|
subgraph InvoiceNinja ["Invoice Ninja"]
|
|
INAPP[App FPM]
|
|
INWEB[Web Nginx]
|
|
INDB[(MariaDB)]
|
|
end
|
|
|
|
%% Rotas do Traefik
|
|
T --> VW
|
|
T --> FG
|
|
T --> CIG
|
|
T --> CPP
|
|
T --> CDB
|
|
T --> SIMB
|
|
T --> SIMM
|
|
T --> INVBE
|
|
T --> INVFE
|
|
T --> Q1BE
|
|
T --> Q1DB
|
|
T --> Q1FOOD
|
|
T --> Q1VEST
|
|
T --> Q1ABE
|
|
T --> Q1AFE
|
|
T --> SXBE
|
|
T --> SXBE
|
|
T --> SXFE
|
|
T --> VFBE
|
|
T --> VFFE
|
|
T --> VFMIN
|
|
T --> INWEB
|
|
|
|
%% Conexões de Banco de Dados (Link Styles)
|
|
linkStyle default stroke-width:2px,fill:none,stroke:gray;
|
|
|
|
%% Dependências de Dados
|
|
CIG -.-> PG
|
|
CPP -.-> PG
|
|
INVBE -.-> PG
|
|
Q1BE -.-> PG
|
|
Q1FOOD -.-> PG
|
|
Q1VEST -.-> PG
|
|
Q1ABE -.-> PG
|
|
SXBE -.-> PG
|
|
SIMB === PG
|
|
SIMB === PG
|
|
SIMB === RD
|
|
VFBE -.-> PG
|
|
INAPP === INDB
|
|
```
|
|
|
|
## Descrição dos Componentes
|
|
|
|
### 🌐 Gateway & Proxy
|
|
- **Traefik**: Ponto de entrada único (Entrypoint). Gerencia certificados SSL (Let's Encrypt), roteamento de host e load balancing. Escuta nas portas 80 (Redirect) e 443 (HTTPS).
|
|
|
|
### 🔐 Segurança & Identidade
|
|
- **Core Identity Gateway**: Responsável pela autenticação centralizada e gestão de tokens.
|
|
- **Vaultwarden**: Gerenciador de senhas para a equipe (compatível com Bitwarden).
|
|
|
|
### 🏥 SaveInMed
|
|
Plataforma principal de gestão médica e marketplace.
|
|
- **Backend API**: Serviço core, utiliza Redis para cache de sessões/dados e PostgreSQL para persistência.
|
|
- **Marketplace**: Interface de vendas e catálogo.
|
|
|
|
### 🛍️ Q1 Connect
|
|
Suíte de aplicativos de comércio e agendamento.
|
|
- **Total**: Backend administrativo e Dashboard.
|
|
- **Setoriais**: APIs específicas para Food, Vestuário/Store e Agenda.
|
|
|
|
### 🛒 Sextando & Vestuário
|
|
Plataformas de e-commerce. Backend em Go, Frontend em Node.js/React.
|
|
|
|
### 💰 Invent Finance
|
|
Sistema financeiro com separação clara entre Backend e Frontend.
|
|
|
|
### 👗 Virtual Fashion
|
|
Plataforma de moda virtual.
|
|
- **Backend/Frontend**: Node.js/Next.js.
|
|
- **Armazenamento**: MinIO para assets 3D/Imagens.
|
|
|
|
### 🧾 Invoice Ninja
|
|
Sistema de faturamento e gestão.
|
|
- **Stack**: PHP (App), Nginx (Web), MariaDB (Banco Dedicado).
|
|
|
|
## Infraestrutura de Dados
|
|
|
|
- **PostgreSQL**: Instância única compartilhada entre todos os serviços (exceto Vaultwarden que pode ter seu próprio banco ou schema).
|
|
- **Redis**: Sistema de cache em memória, utilizado intensivamente pelo SaveInMed para alta performance.
|