Feito com Chinaski

Hypnotoad: A Configuração Embarcada

O repositório embarca install/hypnotoad.conf, pré-configurado para deployments offline/EOTW/LAN: o modo “servidor único, HTTP puro”:

listen  => ['http://0.0.0.0:8080'],
workers => 2,
graceful_timeout => 20,
pid_file         => 'hypnotoad.pid',

Os comentários da configuração carregam três guias importantes:

  • Escolha do bind: 0.0.0.0:8080 está bem onde a máquina é o ponto de acesso (LAN, ponto-a-ponto, instalações offline); use um endereço específico de NIC (por exemplo 192.168.1.5:8080) para limitar qual rede pode alcançar o admin.
  • A postura de segurança sem proxy: o CMS lê o endereço TCP real do par nas conexões não-loopback e ignora o X-Forwarded-For inteiro: de modo que rate limiting e bloqueios de login funcionam sem configuração. Porém: não há TLS neste modo, então as credenciais são transmitidas em claro; a configuração recomenda explicitamente uma VPN ou acesso delimitado por firewall em redes que não são confiáveis.
  • Vars antes de iniciar: CHINASKI_SECRET=<segredo> e (para offline) CHINASKI_AIRGAP=1 no ambiente quando você executa hypnotoad cms.pl.

O gêmeo no app (CHINASKI_LISTEN / CHINASKI_WORKERS)

As mesmas configurações são ajustáveis no caminho de código da aplicação: CHINASKI_LISTEN (padrão http://127.0.0.1:8080) define o endereço de escuta para uma execução de hypnotoad sem config de arquivo, e CHINASKI_WORKERS (padrão 2) define a contagem de workers. Quando você executa sem um arquivo de configuração (a receita EOTW padrão), essas variáveis de env são a interface.

O que vem no barco, o que faz

  • workers: quantos workers de construção de página respondem às requisições (é um parâmetro de prefork do Mojolicious, distinto dos workers de renderização CHINASKI_JOBS do builder do site).
  • graceful_timeout: o limite de esvaziamento em cada reload USR2.
  • pid_file: onde o PID do master é armazenado (usado para reloads sem downtime e parada graciosas).
Leia este site em