A Chave do Air-gap
Uma variável de ambiente, CHINASKI_AIRGAP=1, muda a postura de rede da aplicação. Defina-a no arquivo de env da instância e reinicie. A linha do log de inicialização dirá airgap: ENABLED (o instalador escreve a chave para você por padrão; instalações novas a mostram ativa desde a primeira inicialização).
A semântica tudo-ou-nada
A chave desliga a lista completa de saída de uma vez, não é uma alternância por funcionalidade. Desabilita, num relance:
- Webhooks (build, form, post, publish) nunca são entregues, e o worker de retry automático para.
- Deploys pelo CMS, os caminhos de push rsync e S3 nunca executam.
- A verificação do Cloudflare Turnstile é pulada (com registro disso), e o widget Turnstile é removido das páginas de login e formulários mesmo que as chaves estejam armazenadas nas configurações.
- E-mail de admin, cada envio (notificações de revisão, correspondência de aprovação/rejeição, avisos de build) retorna não-enviado.
- As verificações de manifest de atualização não são realizadas mesmo que uma URL de manifest esteja configurada, a funcionalidade fica inerte até o air-gap sair.
- Os uploads de backup para Spaces não acontecem; os backups ainda são criados (e mantidos) localmente.
O que continua funcionando
- O próprio CMS: edição de conteúdo, uploads, menus, configurações, UI de admin.
- Builds estáticos com um detalhe: builds em air-gap são estritamente mais rigorosos quanto a referências externas, analytics GA4/GTM são removidos dos templates mesmo quando configurados, e qualquer código de snippet que referencie uma URL externa é removido das páginas construídas, para que nada carregue de um CDN.
- Backups locais ainda funcionam: o backup diário do sistema (DB + mídia), backups tar.gz dentro do app, verificação, fluxos de restauração, nada disso precisa de conectividade. Apenas a cópia opcional off-site para Spaces fica de fora.
- Formulários e estado local continuam a funcionar , as submissões são armazenadas como de costume; apenas a entrega por e-mail e a por webhook entram em pausa.
Uma nota: a chave é assinada/completa, unidirecional, tudo de uma vez; reabilitar qualquer funcionalidade de saída isolada significa desligar a chave por inteiro (e então selecionar quais funcionalidades usar).