Feito com Chinaski

Soberania

O Chinaski é construído para rodar na sua máquina, sob o seu controle, para sempre , com ou sem internet. O projeto declara isso em uma linha: self-hosted, no telemetry, no phone-home, runs air-gapped. Esta página explica o que isso significa na prática: o que roda no seu servidor, o que nunca acontece depois da instalação, como implantar em um lugar sem conectividade alguma e onde ficam as fronteiras honestas.

O que "self-hosted" cobre

  • Toda dependência está ou no gerenciador de pacotes do seu sistema operacional (Perl, SQLite, o servidor web) ou na própria aplicação. Não há Node, não há runtime Python, não há orquestração de contêineres para acompanhar o cronograma de lançamentos de outra pessoa.
  • Todo armazenamento é local: um arquivo SQLite para todo o estado, mídia como arquivos no disco, saída estática como arquivos que o seu servidor web serve diretamente. Backup é uma cópia de arquivo (ou o backup agendado embutido).
  • O core é licenciado sob MIT. Os complementos comerciais planejados (um tier Pro) são desenhados para usar arquivos de licença assinados localmente , sem servidores de validação externos, deliberadamente compatíveis com air-gap.

O que "no phone-home" cobre

Depois da instalação, o Chinaski não faz nenhuma chamada de rede por conta própria:

  • Nenhuma telemetria é coletada e deixa o sistema , não há mecanismo para enviá-la.
  • Nenhuma validação de licença contra um servidor externo.
  • Nenhuma fonte, ícone ou script de CDN embutido nas suas páginas.
  • A verificação de versão embutida só conecta quando você explicitamente fornece uma URL de manifest de atualizações e o modo air-gap está desligado , então até a checagem de atualizações vem desligada por padrão.

Tudo o que aponta para fora se divide em funcionalidade que você escolhe habilitar , SMTP para notificações por e-mail, webhooks, backups com push agendado para um armazenamento de objetos em nuvem, checagem de atualizações , e o modo air-gap desativa todas elas de uma vez.

A chave de air-gap e a instalação padrão

Uma única configuração CHINASKI_AIRGAP=1 faz o servidor recusar toda conexão de saída: webhooks (form/post/publish/build) não são despachados, implantação por rsync ou S3 não roda, a verificação do Cloudflare Turnstile é pulada e o widget é removido das páginas de login e de formulários, notificações por e-mail do admin não são enviadas, e checagens de atualização não acontecem. Os builders também removem qualquer código de snippet que referencie URLs externas, então nada vem de um CDN. Instalações novas escrevem essa chave no ambiente por padrão e avisam você na instalação.

Seus segredos também ficam no seu servidor: a senha SMTP, os segredos de webhooks, as chaves de Spaces e similares são guardados criptografados no banco de dados local sob uma chave derivada da sua variável de ambiente CHINASKI_SECRET , credenciais em texto puro nunca são escritas no disco pela aplicação.

Instalando um site sem nenhuma internet

Para máquinas que nunca tocam a rede:

  1. Em uma máquina conectada, construa um pacote offline: ele empacota o código-fonte da aplicação, todos os tarballs de módulos do CPAN, um instalador de módulos embutido e o script de instalação , mais um arquivo de checksums SHA-256 ao lado. Copie ambos para uma mídia removível.
  2. Na máquina-alvo, rode o instalador a partir do pacote. Ele instala os módulos Perl apenas a partir do pacote ("no outbound connections are made"). Só um punhado de pacotes do sistema (perl, make, gcc, sqlite3, bibliotecas de imagem) precisa vir do cache da sua distribuição ou de um conjunto pré-baixado , em placas ARM, baixe as bibliotecas de imagem explicitamente ou o processador de imagens não compila.
  3. Opcionalmente, pule o systemd inteiramente em configurações de servidor único (--no-service); o arquivo de ambiente que o instalador escreve já contém o segredo de sessão e o modo air-gap ativado.

Modo air-gap sem certificados , para sempre

Para implantações onde DNS, autoridades certificadoras e infraestrutura de nuvem simplesmente não existem mais, o Chinaski documenta um modo permanente: sirva a interface de administração direto por HTTP com a configuração embutida , sem reverse proxy, sem certificados TLS para adquirir, renovar ou expirar. A garantia de "works forever" é o ponto.

Ele também lida corretamente com as dependências habituais de reverse proxy sem um: detecção de IP de cliente e rate limiting caem para os endereços TCP reais (headers de proxy falsificados são ignorados quando não há proxy na frente), então bloqueios e limitação funcionam sem configuração.

O que soberania *não* significa

  • Não significa zero trabalho: as atualizações continuam sendo o seu trabalho , um processo deliberado feito à mão a partir de uma URL de manifest (que você pode deixar sem definir para sempre, sem nenhum impacto).
  • Funcionalidades de conectividade (envio de e-mail, backups em nuvem, integrações de webhook) precisam de conectividade quando você as liga , elas simplesmente nunca se ligam sozinhas.
  • O conjunto de pacotes vem do Debian stable; mantê-lo assim é uma escolha operacional sua, como os backups.
Leia este site em