Ecossistema

O Speco é composto por três camadas que se comunicam entre si: o backend Tryton, o cliente SAO e o frontend React.

Visão Geral

┌─────────────────────────────────────────────────────┐
│                  Navegador do Usuário                │
├─────────────────────┬───────────────────────────────┤
│   SAO (Tryton Web)  │   Frontend (React/Vite)        │
│   Gestão completa   │   Uso simplificado            │
│   :8001/sao         │   :3000                        │
├─────────────────────┴───────────────────────────────┤
│              Caddy (Reverse Proxy + TLS)             │
│         backend.speco.tec.br  |  portal.speco.tec.br │
├─────────────────────────────────────────────────────┤
│            Trytond 8.0 (Backend / ORM)               │
│            Porta 8001 · API JSON-RPC                  │
├─────────────────────────────────────────────────────┤
│             SQLite / PostgreSQL                       │
└─────────────────────────────────────────────────────┘

Backend — Trytond 8.0

O Trytond é o núcleo do sistema. Funciona como ORM e motor da lógica de negócio, expondo uma API JSON-RPC na porta 8001. Todos os modelos, workflows e regras de certificação vivem no backend.

Características:

  • ORM com herança (PoolMeta), mixins e versionamento

  • API JSON-RPC para acesso remoto

  • Módulos desacoplados via submódulos git

  • Banco de dados SQLite (desenvolvimento) ou PostgreSQL (produção)

Veja Arquitetura para a hierarquia de dependências e detalhes de cada módulo.

SAO — Cliente Web do Tryton

O SAO é o cliente web oficial do Tryton, servido em /sao na mesma porta do Trytond (8001). Oferece gestão total da lógica de negócio: cadastros, workflows, relatórios e configuração do sistema.

No Speco, o SAO recebe um tema visual personalizado (sao_custom) com as cores e o logotipo do projeto, mas sua funcionalidade é a mesma do Tryton original.

Frontend — React / Vite

O frontend é um desenvolvimento novo, independente do SAO, com o objetivo de oferecer uma interface mais simples e acessível para as famílias produtoras. Usa React com Vite e se comunica com o backend exclusivamente via biblioteca RPC do Tryton (lib-tryton-rpc).

Características:

  • Interface simplificada para usuários finais

  • Comunicação via RPC (JSON-RPC) com o trytond

  • Build com Vite, servido na porta 3000

  • Variáveis de ambiente para configurar conexão, proxy e HTTPS

Caddy — Reverse Proxy

O Caddy atua como reverse proxy e gerencia certificados TLS automaticamente via Let’s Encrypt. Encaminha as requisições para o backend ou frontend conforme o domínio:

backend.speco.tec.br  → 127.0.0.1:8001  (Trytond + SAO)
portal.speco.tec.br  → 127.0.0.1:3000  (Frontend React)

Variáveis de Ambiente

A comunicação entre frontend e backend é configurada via variáveis de ambiente:

Variável

Descrição

VITE_TRYTON_URL

URL do backend (ex: http://localhost:8001)

VITE_TRYTON_USE_PROXY

Usa proxy do Caddy em vez de conexão direta

VITE_TRYTON_FORCE_HTTPS

Força HTTPS (true no cloud, false local)

VITE_ALLOWED_HOSTS

Domínios permitidos no CORS do Trytond

Essas variáveis são injetadas no build do Vite e no .env do backend, com valores padrão para desenvolvimento local.