O Speco é composto por três camadas que se comunicam entre si: o backend Tryton, o cliente SAO e o frontend React.
┌─────────────────────────────────────────────────────┐
│ 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 │
└─────────────────────────────────────────────────────┘
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.
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.
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
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)
A comunicação entre frontend e backend é configurada via variáveis de ambiente:
Variável |
Descrição |
|---|---|
|
URL do backend (ex: |
|
Usa proxy do Caddy em vez de conexão direta |
|
Força HTTPS ( |
|
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.