# 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.