Fait avec Chinaski

Hébergement statique avec Caddy

Caddy sert l'arborescence statique construite avec TLS automatique. Le dépôt fournit un exemple de Caddyfile (deploy/chinaski.Caddyfile.example) que vous copiez et éditez par déploiement ; Caddy n'a pas de templating d'instance, donc le site de chaque instance a besoin de son propre domaine, de son adresse CMS en amont, de ses chemins de sortie, et de tout sous-domaine de langue.

L'essentiel dans l'exemple fourni

  • Instances de site et ports : instance « 1 » → 3001, « 2 » → 3002 … ; toujours en correspondance avec le LISTEN_URL de /etc/chinaski<N>/env (loopback, pour que les clients ne parlent jamais directement au démon du CMS).
  • Sales-required routes même sur un site statique : transmettez en reverse proxy /forms/ et /documents/ au démon du CMS (sinon les soumissions de formulaires font 404 et les URL de documents font 404).
  • Chemins honeypot (/.env, /.git/config, sondes wp-login etc.) : routés à travers vers le CMS pour que les visites soient journalisées et tarpitted au lieu d'être répondues avec un générique 404 statique.
  • En-têtes X-Forwarded-For/Proto/Host explicites sur les blocs de proxy ; la checklist de production les signale pour que l'application voie les vraies IPs client ; la transmission en loopback est de confiance par défaut, donc pas de CHINASKI_TRUSTED_PROXIES nécessaire sauf si votre saut passe par un bridge de conteneurs.
  • En-têtes de cache (identiques à l'exemple nginx) : HTML 5-min-revalidate ; sw.js no-cache ; fonts woff2 1-an immutable ; autres assets 86400.
  • En-têtes de sécurité en ceinture-et-bretelles dans la configuration du proxy (l'application définit les siens aussi).

Instances multiples

Copiez l'exemple par instance et ajustez : la liste de domaines de chaque bloc de site (admin + vhosts de langue), le port en amont (3001 pour l'instance 1, 3002 pour l'instance 2, et ainsi de suite), et les chemins de racine de documents par langue (/var/www/chinaski1/output/en pour l'anglais, …/es pour l'espagnol, etc.).

TLS

Caddy obtient et renouvelle le TLS automatiquement quand le DNS pointe vers l'hôte et que les ports 80/443 sont joignables ; vérifiez avec un curl -I https://<admin-host> une fois le Caddyfile en service.

Lisez ce site en