Files
tuio/docs/configuracao.md
T
jbandClaude Opus 4.8 d2717de47a refactor: clarify fixed container port with containerAppPort constant
The container always listens on 8080 internally while the user-provided
port is only the host-side mapping. Make this explicit without changing
behavior or the generated config:

- add a named containerAppPort constant and use it in both the docker -p
  mapping and the config.toml generation (was a bare 8080 literal in two
  places)
- document why config.toml hardcodes the port, so it isn't "fixed" back
  to the form value
- relabel the form field to "Porta (host)"

The generated config.toml is byte-identical (port = 8080).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 12:00:54 -03:00

5.3 KiB

Referência de Configuração

Este documento descreve todos os campos coletados pelo instalador e os arquivos que ele gera.

Arquivo config.toml

Gerado por GenerateConfigTOML em internal/tui/config.go e montado no container do app em /app/config.toml. Se um config.toml já existir no diretório ao iniciar o instalador, seus valores são usados como padrão nos formulários.

[server]

Campo Origem (formulário) Observações
port fixo 8080 no arquivo A porta do formulário é usada apenas no mapeamento do host (<porta>:8080). Dentro do container o app sempre escuta na 8080.
timeout_seconds Servidor → Timeout Em segundos. Padrão 30.
environment Servidor → Ambiente development ou production.

Atenção: o campo "Porta (host)" do formulário define a porta exposta no host, não a porta interna. O config.toml sempre grava port = 8080 (constante containerAppPort em docker.go).

[database]

Campo Origem Observações
type Banco → Tipo do Banco postgres ou oracle.
url Banco → URL de acesso String de conexão completa.
max_conns Banco → Conexões máx. Validado como número.
min_conns Banco → Conexões mín. Validado como número.

[certificate]

Campo Valor Observações
mapped_dir Certificado → Diretório Diretório local montado em /app/certs.
cert_path /app/certs/client.crt (fixo) Caminho dentro do container.
key_path /app/certs/client.key (fixo) Caminho dentro do container.
ca_path /app/certs/ca.crt (fixo) Caminho dentro do container.

O diretório indicado deve conter os arquivos client.crt, client.key e ca.crt (comunicação mTLS com o servidor central).

[application]

Campo Origem Observações
erp TOTVS (fixo) ERP integrado.
central_server_url Aplicação → URL Servidor Central Ex.: https://app-dono-api.vitruvio.com.br:8443.
enrollment_token Aplicação → Token de Inscrição Gerado no painel web.

[log]

Campo Valor
level debug (fixo)
format json (fixo)

Arquivo envs (vproxy / WireGuard)

Gerado por GenerateWireguardConfig apenas quando não há IP público. Passado ao container do vproxy via --env-file.

Variável Origem Observações
PRIVKEY vproxy → Chave Privada Chave privada WireGuard.
VIP vproxy → IP Virtual Padrão 127.0.0.1.
PSK vproxy → Pre-Shared Key Chave pré-compartilhada.
PROXY_EDPS vproxy → Proxy EDPS Mapeamento de portas, ex.: 22:127.0.0.1:22.
MTU vproxy → MTU Opcional. Padrão 1380. Validado como número.
PROTO vproxy → Protocolo UDP (padrão) ou TCP.

Sobre o protocolo

  • UDP (padrão): melhor desempenho e estabilidade. Manter sempre que possível.
  • TCP: usar apenas quando firewalls restritivos bloqueiam o tráfego UDP e não for possível negociar a liberação com o cliente.

Campo "Modo Compatibilidade"

Presente no formulário de Servidor (seccomp_unconfined). Quando definido como Sim, os containers sobem com --security-opt seccomp=unconfined. Útil em máquinas antigas onde o perfil seccomp padrão do Docker causa falhas. Aplica-se tanto ao container do app quanto ao do vproxy.

Tipos de campo dos formulários

Definidos em internal/tui/form.go:

Tipo Comportamento
FieldTypeText Texto livre.
FieldTypePassword Texto mascarado.
FieldTypeNumber Texto (validação numérica na gravação).
FieldTypeSelect Opções alternadas com ←/→.