Files
instrucoes_gerais/scoreodonto/arquitetura.md
T

2.8 KiB

🦷 Arquitetura ScoreOdonto CRM (Multi-Tenant)

Este documento dita as regras exclusivas e as portas da arquitetura do ScoreOdonto CRM. Nunca misture essas configurações com as do Clube67.

🚀 Stack Tecnológica e Portas de Rede

  • Frontend: React + Vite + TypeScript + Tailwind
    • Porta de Produção/Dev: 3013
  • Backend: Node.js + pg (Nativo)
    • Porta de Produção/Dev: 8018
    • Important

      NÃO UTILIZE ORM (Prisma/Sequelize). Toda a persistência deve ser feita via driver nativo pg para máxima performance e controle de queries.

  • Banco de Dados (VPS 3): PostgreSQL 18
    • Porta Padrão: 5432
    • Banco de Dados Isolado: scoreodonto
  • Cache (VPS 3): DragonflyDB
    • Porta Padrão: 6379
    • Índice Isolado: /1 (exclusivo para ScoreOdonto)
  • Proxy Reverso (VPS 1): Nginx / Traefik
    • Domínio: scoreodonto.com

🔄 Fluxo de Deploy Contínuo e Versionamento (+1)

O webhook do ScoreOdonto roda de forma isolada na VPS 4.

  • Webhook Listener Port (VPS 4): 9002
  • O webhook escuta na porta 9002 e dispara o script de build/deploy exclusivo (deploy-prod-scoreodonto.sh).

📦 Regra de Incremento de Versão (Host-Side Bump)

Diferente do Clube67, o versionamento do ScoreOdonto ocorre no Host (VPS 4) antes do processo de rsync/build.

  1. O script update-version.js está localizado em /home/deploy/stack/scoreodonto.com/update-version.js.
  2. Este script é executado pelo pipeline de deploy (deploy-prod-scoreodonto.sh).
  3. O script incrementa o version.json, gera o deploys.json e realiza um commit automático no Git com a tag [version-bump].

Warning

NÃO ADICIONE O UPDATE-VERSION AO PACKAGE.JSON No ScoreOdonto, o arquivo frontend/package.json deve conter apenas "build": "vite build". Adicionar node ../update-version.js && ao script de build dentro do Docker fará com que a versão seja incrementada em um ambiente efêmero e não persista no Git, resultando em versões congeladas ou duplicadas na interface.

🐳 Arquitetura de Container (Stateless Build)

Como a versão já vem incrementada e persistida do Host via rsync, o Docker apenas compila o que recebe:

  1. O Build Context no docker-compose.yml aponta para a raiz do projeto (context: .).
  2. O Dockerfile do frontend realiza o vite build de forma limpa.

🤖 Fluxo de Auto-Cura (Self-Healing) com Grafana/Gitea

Para automatizar a geração de Issues no repositório ruicesar/scoreodonto.com quando ocorrerem falhas em produção (VPS 1):

  1. Grafana (Painel Central): Regras de alerta configuradas com a tag repo="scoreodonto.com".
  2. Gitea-Bridge (VPS 1): Escuta na porta 9091 e faz o POST na API do Gitea.

Important

Diferenciação de Portas:

  • 9002: Webhook de Deploy (VPS 4).
  • 9091: Bridge de Auto-Cura (VPS 1).