Licença e painéis de administração só para a allowlist do edge

[!NOTE] Resumo Executivo (DEV-2026-038): O gerador de licença deixou de ficar público no proxy. No container Linux, a licença também deixou de chamar o comando VOL, que não existe fora do Windows.


🚨 O Desafio Técnico / Contexto

A interface /licenca e o proxy injetavam a API sem filtro de IP. Ao mesmo tempo, att_licenca.php executava VOL para ler o serial do volume. No container o shell respondia ‘VOL: not found’ e a licença não fechava.


💡 Principais Lições Aprendidas & Descobertas

  • 💡 O corte fica no Caddy, por IP de origem, e não só escondendo o link do portal.
  • 💡 O log de acessos negados mostra quem tentou entrar e de qual superfície (licença, monitor ou Portainer).
  • 💡 Em VPS de cliente o profile de licença nem sobe.
  • 💡 No Linux o identificador estável vem de LORENTZ_STACK_HOST_ID, de um arquivo montado ou de /etc/machine-id. VOL e getmac continuam só no Windows.

🛠️ Especificação Técnica & Código-Chave

function lorentz_stack_host_id_raw(): string
{
    $env = getenv('LORENTZ_STACK_HOST_ID');
    if ($env !== false && trim($env) !== '') {
        return preg_replace('/[^a-zA-Z0-9\-]/', '', trim($env));
    }
    foreach (['/var/lorentz/stack-host-id', '/etc/machine-id'] as $path) {
        if (is_readable($path)) {
            return trim((string) file_get_contents($path));
        }
    }
    return '';
}

📈 Impacto no Ecossistema & Valor Prático

A emissão de licença fica restrita à rede de administração e o mesmo binário de licença passa a funcionar no container.

  • Projetos Relacionados: lorentz-vps-stack, supervisor
  • Registro de Origem: _data/daily.dev-03.yml

Publicado originalmente como parte do Diário de Desenvolvimento 2026 do ecossistema Artes do Sul & Araguaci.