Fait avec Chinaski

L'interrupteur air-gap

Une variable d'environnement, CHINASKI_AIRGAP=1, change la posture réseau de l'application. Définissez-la dans le fichier env de l'instance et redémarrez. La ligne de log de démarrage dira airgap: ENABLED (l'installeur écrit l'interrupteur pour vous par défaut ; les installations fraîches l'affichent actif dès le premier démarrage).

La sémantique du tout-ou-rien

L'interrupteur désactive la liste complète des connexions sortantes d'un coup, ce n'est pas un interrupteur par fonctionnalité. Désactivations en un coup d'œil :

  • Webhooks (build, form, post, publish) ne sont jamais délivrés, et le worker de réessai automatique s'arrête.
  • Déploiements depuis le CMS: les chemins de push rsync et S3 ne s'exécutent jamais.
  • La vérification Cloudflare Turnstile est ignorée (journalisé comme tel), et le widget Turnstile est retiré des pages de connexion et de formulaire même si des clés sont stockées dans les réglages.
  • Email admin: chaque envoi (notifications de relecture, courriels d'approbation/rejet, avis de build) retourne non-envoyé.
  • Les vérifications de manifest de mise à jour ne sont pas effectuées même si une URL de manifest est configurée ; la fonctionnalité devient inerte tant que l'air-gap est actif.
  • Les envois de sauvegarde vers Spaces n'ont pas lieu ; les sauvegardes sont toujours créées (et conservées) localement.

Ce qui continue de fonctionner

  • Le CMS lui-même : édition de contenu, uploads, menus, réglages, interface admin.
  • Les builds statiques avec une nuance : les builds air-gap sont strictement plus stricts sur les références externes : les analytics GA4/GTM sont retirés des templates même configurés, et tout code de snippet référençant une URL externe est retiré des pages construites pour que rien ne charge depuis un CDN.
  • Les sauvegardes locales continuent de fonctionner : la sauvegarde système quotidienne (DB + médias), les sauvegardes tar.gz dans l'application, la vérification, les flux de restauration : aucune de ces fonctions n'a besoin de connectivité. Seule la copie hors site optionnelle Spaces est exclue.
  • Les formulaires et l'état local continuent de fonctionner : les soumissions sont stockées comme d'habitude ; seuls l'envoi d'emails et la livraison de webhooks sont en pause.

Une note : l'interrupteur est signé/complet à sens unique, tout d'un coup ; réactiver une seule fonctionnalité sortante signifie désactiver entièrement l'interrupteur (puis choisir quelles fonctionnalités utiliser).

Lisez ce site en