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_PROXIESné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.jsno-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.