Configuração e ambiente
Os dois binários leem um arquivo YAML (--config, padrão /etc/peart/config.yaml), e cada um lê só as
suas próprias seções. O config.example.yaml distribuído é a referência autoritativa e comentada, e não
roda como está (o token de render dele é um placeholder que o validador rejeita). Esta página é o resumo
dos campos; ver Primeira execução e configuração para o passo a passo.
Caminhos
| Campo |
Significado |
db_path |
O arquivo do banco SQLite. |
master_key_path |
A chave mestra. Nunca pode ser igual a nem ficar dentro de uma raiz de dados; o boot recusa isso. Criada no primeiro boot se ausente. |
evidence_root |
Evidências cifradas. |
rendition_root, report_root |
Renditions e relatórios gerados, client-facing. |
logo_root, avatar_root, installation_root |
Logos de cliente, avatares de conta, assets da instalação. |
Todo caminho tem que existir e ser gravável pelo usuário que roda, exceto o pai de master_key_path, onde
o PEART escreve a chave no primeiro boot.
Superfícies
| Campo |
Significado |
internal.listen_addr |
Endereço de escuta da superfície interna (ex.: :8080). |
portal.listen_addr |
Endereço de escuta do portal (ex.: :8081). |
internal.public_url, portal.public_url |
A URL base externa de cada superfície (esquema + host), de onde os links de inscrição e outros absolutos são montados. Opcional, normalizada (sem barra final), e quando setada tem que ser absoluta; https é exigido com tls: true. |
TLS e sessões
| Campo |
Significado |
tls |
true significa que um proxy reverso termina TLS na frente; liga o HSTS. |
accept_insecure_http |
Tem que ser true para tls: false subir. |
session.inactivity_timeout, session.absolute_timeout |
Política de sessão compartilhada; padrão 1h / 12h. A inatividade não pode passar de um máximo fixo (4h). |
Sidecar de renderização
| Campo |
Significado |
render.base_url |
Como o processo alcança o sidecar (http://127.0.0.1:8090 no systemd, http://peart-render:8090 no compose). |
render.token |
Segredo compartilhado conferido em toda requisição de render; PEART_RENDER_TOKEN no ambiente o sobrepõe. |
render.work_root |
O diretório de trabalho compartilhado dos jobs de render preparados. |
render.timeout |
Timeout por render. |
Notificações e o webhook de saída
| Campo |
Significado |
notification.severities |
Quais severidades de achado criam uma linha de notificação ao publicar. Omitir o bloco cai em critical e high; valor fora de critical, high, medium, low, info é erro de boot, então um erro de digitação falha alto em vez de nunca casar. |
webhook.url |
Para onde o evento assinado é postado. Nenhuma url significa nenhum disparo e nenhum erro de boot, que é a forma documentada de deixá-lo desligado. |
webhook.secret |
Chave HMAC-SHA256 compartilhada com que o corpo de toda requisição é assinado, no cabeçalho X-Peart-Signature. Uma url sem secret recusa subir. |
webhook.timeout |
Timeout por requisição; omitido, cai em 5s. |
O PEART nunca envia e-mail. O que ele emite é um evento só de identificadores, depois de um achado ser
publicado numa severidade que a lista nomeia, ou de um relatório ser liberado ao portal, e o operador
encaminha esse sinal único para onde ele precisa chegar (uma ponte de chat, um mailer, uma fila interna).
O payload leva identificadores e classificação, nunca conteúdo de achado, pela mesma razão que a trilha
de auditoria não copia conteúdo: o corpo de um webhook é o lugar menos controlado do deploy.
Ambiente
O PEART_RENDER_TOKEN é o único segredo que o processo interno e o sidecar precisam compartilhar; quando
setado é preferido ao render.token, então um deploy por compose o mantém numa única entrada de .env
que os dois containers leem. As units de systemd leem seu EnvironmentFile por serviço sob /etc/peart
(peart.env, portal.env, render.env).