infracloud/vps/nc1/architecture.md
2026-01-10 10:21:12 -06:00

3.4 KiB

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.

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

    %% 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 --> SXFE

    %% 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 === RD

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.

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.