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).