Variáveis de Ambiente
O Chinaski é configurado através de um punhado de variáveis de ambiente: a localização do banco de dados, o diretório de saída estático, o segredo de segurança, e algumas sobrescritas opcionais. O instalador as escreve para você; esta página é a referência completa para quando você precisar mudá-las à mão.
Onde defini-las
- Instalações de instância única:
/etc/chinaski<N>/env(o arquivo que a unit systemdchinaski@<N>carrega). Mantenha o modo do arquivo0600. - O servidor MCP:
/etc/chinaski<N>/mcp-env, lido porchinaski-mcp@<N>. - Script de backup e script de deploy: no ambiente no momento da invocação.
- O arquivo criado vem com
CHINASKI_SECRETdefinida eCHINASKI_AIRGAP=1ativa.
Obrigatórias
| Variável | O que faz | Padrão |
|---|---|---|
CHINASKI_SECRET | Chave de assinatura de sessão, e a chave usada para criptografar segredos armazenados (senha SMTP) no banco de dados. O CMS se recusa a iniciar sem ela. O instalador gera uma com openssl rand -hex 32. | nenhuma |
CHINASKI_DB | Caminho do arquivo do banco de dados SQLite. | <app root>/chinaski.db |
CHINASKI_OUTPUT | Diretório no qual o builder estático escreve. | <app root>/output |
LISTEN_URL | Endereço ao qual o daemon do CMS se liga (usado pela unit systemd). Deve ser loopback (por exemplo http://127.0.0.1:3001) em produção. Em combinação com CHINASKI_SECRET, vive em /etc/chinaski<N>/env. | nenhuma |
Trocar CHINASKI_SECRET invalida as sessões de admin (todos são desconectados) e torna valores criptografados previamente armazenados (como a senha SMTP) impossíveis de descriptografar. Salve novamente essas configurações após rotacionar a chave.
Ligue o LISTEN_URL ao loopback, não a uma interface pública. O CMS só confia no X-Forwarded-For de pares loopback; um bind público deixaria qualquer cliente falsificar headers que alimentam rate limit e bloqueios de login baseados em IP.
Escuta
CHINASKI_LISTEN: Endereço de escuta ao executar sob o hypnotoad. Padrãohttp://127.0.0.1:8080.CHINASKI_WORKERS: Contagem de workers do hypnotoad. Padrão2.MOJO_MODE: Modo padrão do Mojolicious. Units de produção definemproduction.
Os valores atuais de CHINASKI_DB, CHINASKI_OUTPUT, CHINASKI_URL_BASE, CHINASKI_LISTEN e se CHINASKI_SECRET está definida são visíveis na página de configurações do admin.
Modo air-gap (CHINASKI_AIRGAP=1)
Desabilita toda chamada de saída e integração externa em uma única chave. Com o modo air-gap ligado:
- Webhooks de build, form, post e publish nunca são entregues.
- O deployment rsync e S3 não executa, e os retries de webhook param.
- O Cloudflare Turnstile é pulado inteiramente: a verificação autopassa e o widget é removido das páginas de login e formulários, independente das chaves armazenadas nas configurações.
- As notificações por e-mail de admin são puladas.
- A verificação de manifest de versão não é realizada.
- O builder estático remove analytics externos (GA4/GTM) e remove código de snippet que referencia URLs externas, para que nenhuma página pública puxe nada de um CDN.
O instalador habilita isso por padrão.
Build estático
CHINASKI_INCREMENTAL=1: Requisita um build incremental. O builder ainda pode escolher um build full se decidir que um é necessário.CHINASKI_FORCE_FULL=1: Força um rebuild completo (usada porbin/force-full-build.ple pelo controle de rebuild do admin).CHINASKI_FORCE_PROMOTE=1: Promove o build mesmo quando o guard de qualidade o reteria porque contagens de páginas ou outras métricas caíram.CHINASKI_JOBS: Paralelismo de build. Deve ser um número puro; sobrescreve a configuraçãobuild_jobs; o padrão é a contagem de CPUs; limitada a 1 a 16.CHINASKI_BLOCK_TEMPLATES: Diretório de templates de bloco. Padrãobuilder/block_templatesno repo.CHINASKI_MANIFEST_OPTIONAL=1: Uma falha em produzir o manifest de build assinado normalmente aborta o build; definir isto a torna um aviso em vez disso. Deixe desligada em produção: um build “verde” sem um manifest assinado utilizável é pior que um build com falha.
Assinatura, chaves e atualizações
CHINASKI_PRIVATE: Diretório que guarda o manifest de build assinado (build-manifest.jsone seu.sig). Padrão<repo root>/private.CHINASKI_KEYS: Diretório que guarda o par de chaves de assinatura de manifest Ed25519. Padrão<repo root>/keys.CHINASKI_URL_BASE: Sobrescreve a configuração de sitechinaski_url_basepara URLs construídas e o sitemap.CHINASKI_CMS_URL: Sobrescreve a configuraçãocms_base_url.CHINASKI_UPDATE_MANIFEST_URL: Se definida, o dashboard de admin verifica esta URL de manifest por releases mais novos (pulado no modo air-gap). Busca com timeouts curtos de 3/5 segundos.CHINASKI_RELEASE_PUBKEY: Arquivo de chave pública de verificação de release alternativo; padrãokeys/chinaski_release.pubno diretório do app.
Runtime e operações
CHINASKI_TRUSTED_PROXIES: Lista separada por vírgulas de IPs de proxy ou faixas CIDR IPv4 cujos headersX-Forwarded-Forsão confiáveis. O loopback é sempre confiável; entradas extras importam quando o seu reverse proxy é de outro modo visível ao app numa rede contêiner/bridge. Padrão: apenas loopback.CHINASKI_SMTP_INSECURE_NOVERIFY=1: Desabilita a verificação de certificado TLS para o SMTP de saída. Apenas para testes ou configurações de correio deliberadamente inseguras.CHINASKI_SKIP_PERF_INDEXES=1: Pula a aplicação dos índices de performance automáticos; para ferramentas de migração, não para uso normal.CHINASKI_DOCS_DIR: Diretório de documentos. Padrão:documentsjunto ao arquivo de banco de dados.CHINASKI_MEDIA_DIR: Diretório de mídia (usado pelo script de backup e pela purga automática de arquivos de mídia na lixeira). Padrãopublic/mediana árvore do app (/var/www/chinaski<N>/public/mediaem instalações systemd).CHINASKI_ADMIN_PASSWORD: Senha para execuções não interativas debin/chinaski-setup.pl(alternativa ao--password).
Webhooks
WEBHOOK_MAX_CONCURRENT: Máximo de requisições de webhook de saída simultâneas. Padrão8.
Servidor MCP
chinaski-mcp requer CHINASKI_API_URL (URL base do CMS) e CHINASKI_API_KEY; ele se recusa a iniciar sem elas. Ajustes opcionais:
CHINASKI_MCP_SESSION_TTL: Tempo de vida da sessão em segundos (padrão86400).CHINASKI_MCP_SESSION_DB: Caminho do banco de sessões (padrãochinaski-mcp/sessions.db).CHINASKI_MCP_LOG_DIR/CHINASKI_MCP_LOG_FILE: Localização dos logs (padrõeslogs/elogs/mcp-server.log).CHINASKI_MCP_MAX_RETRIES: Padrão3.CHINASKI_MCP_CONTEXT_TTL: Tempo de vida do cache de contexto de site em segundos (padrão300).
Backups e deploys
Usadas por deploy/backup.sh:
CHINASKI_BACKUP_DIR: Destino do backup; padrão/var/backups/chinaski<N>.CHINASKI_BACKUP_RETENTION_DAYS: Por quanto tempo snapshots do banco são mantidos; padrão14.
Usadas por deploy/deploy.sh:
CHINASKI_ALLOW_BUILD_FAIL=1: Normalmente um build com falha aborta o deploy para que o serviço nunca reinicie sobre saída obsoleta ou parcial; esta flag continua mesmo assim em uma emergência.
Avisos
- Mantenha
/etc/chinaski<N>/envno modo0600. Os backups contêm o banco de dados completo (hashes de senha, segredos criptografados); o script de backup aperta o diretório de backup para0700a cada execução; certifique-se de que nada mais o alarga. CHINASKI_AIRGAP=1silencia o tráfego de saída inteiro; defina-a antes da primeira inicialização se o seu deployment nunca toca a internet.- Rotacionar a
CHINASKI_SECRETé um evento deliberado, não manutenção rotineira: sessões morrem e as configurações criptografadas precisam ser salvas de novo.