infracloud/vps/nc1/architecture.md

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.