Feito com Chinaski

Hospedagem Estática com Caddy

O Caddy serve a árvore estática construída com TLS automático. O repositório embarca um exemplo de Caddyfile (deploy/chinaski.Caddyfile.example) que você copia e edita por deployment, o Caddy não tem templing de instância, então o site de cada instância precisa de seu próprio domínio, endereço de upstream do CMS, caminhos de saída e quaisquer subdomínios de idioma.

O essencial no exemplo embarcado

  • Instâncias de site e portas: instância “1” → 3001, “2” → 3002 … (sempre correspondendo ao LISTEN_URL de)/etc/chinaski<N>/env (loopback, para que clientes nunca falem com o daemon do CMS diretamente).
  • Rotas de venda obrigatórias mesmo em um site estático: reverse-proxy de /forms/* e /documents/* para o daemon do CMS (senão submissões de formulário dão 404 e URLs de documentos dão 404).
  • Caminhos de honeypot (/.env, /.git/config, sondagens wp-login etc.): roteados através ao CMS para que os acessos sejam registrados e tarpitted em vez de respondidos com um 404 estático genérico.
  • Headers X-Forwarded-For/Proto/Host explícitos nos blocos de proxy, o checklist de produção os destaca para que o app veja IPs reais de clientes; o proxy pelo loopback é confiável por padrão, então nenhuma CHINASKI_TRUSTED_PROXIES é necessária, a menos que seu salto passe por uma bridge de contêiner.
  • Headers de cache (mesmo do exemplo nginx): HTML revalidação de 5 min; sw.js no-cache; fontes woff2 1 ano imutável; outros assets 86400.
  • Headers de segurança cinto-e-suspensório na configuração do proxy (o app também define os seus).

Múltiplas instâncias

Copie o exemplo por instância e ajuste: a lista de domínios de cada bloco de site (admin + vhosts de idioma), a porta de upstream (3001 para a instância 1, 3002 para a instância 2, e assim por diante) e os caminhos de document root por idioma (/var/www/chinaski1/output/en para inglês, …/es para espanhol, etc.).

TLS

O Caddy obtém e renova o TLS automaticamente quando o DNS aponta para o host e as portas 80/443 estão acessíveis (verifique com um)curl -I https://<admin-host> assim que o Caddyfile estiver no ar.

Leia este site em