Variables d'environnement
Chinaski est configuré via une poignée de variables d'environnement : l'emplacement de la base de données, le répertoire de sortie statique, le secret de sécurité, et quelques overrides optionnels. L'installateur les écrit pour vous ; cette page est la référence complète pour quand vous devez les changer à la main.
Où les définir
- Installations mono-instance :
/etc/chinaski<N>/env(le fichier que l'unité systemdchinaski@<N>charge). Gardez le fichier en mode0600. - Le serveur MCP :
/etc/chinaski<N>/mcp-env, lu parchinaski-mcp@<N>. - Script de backup et script de deploy : dans l'environnement au moment de l'invocation.
- Le fichier créé est livré avec
CHINASKI_SECRETdéfini etCHINASKI_AIRGAP=1actif.
Obligatoires
| Variable | Ce qu'elle fait | Défaut |
|---|---|---|
CHINASKI_SECRET | Clé de signature des sessions, et clé utilisée pour chiffrer les secrets stockés (mot de passe SMTP) dans la base de données. Le CMS refuse de démarrer sans elle. L'installateur en génère une avec openssl rand -hex 32. | none |
CHINASKI_DB | Chemin du fichier de base de données SQLite. | <app root>/chinaski.db |
CHINASKI_OUTPUT | Répertoire où le builder statique écrit. | <app root>/output |
LISTEN_URL | Adresse à laquelle le daemon du CMS se lie (utilisée par l'unité systemd). Doit être loopback (ex. http://127.0.0.1:3001) en production. Combinée à CHINASKI_SECRET, elle vit dans /etc/chinaski<N>/env. | none |
Changer CHINASKI_SECRET invalide les sessions admin (tout le monde est déconnecté) et rend indéchiffrables les valeurs chiffrées stockées précédemment (comme le mot de passe SMTP) : re-sauvegardez ces réglages après la rotation de la clé.
Liez LISTEN_URL au loopback, pas à une interface publique. Le CMS ne fait confiance à X-Forwarded-For que depuis des pairs loopback ; un bind public permettrait à n'importe quel client d'usurper les en-têtes qui alimentent le rate limiting IP et les lockouts de connexion.
Écoute
CHINASKI_LISTEN: adresse d'écoute en exécution sous hypnotoad. Défauthttp://127.0.0.1:8080.CHINASKI_WORKERS: nombre de workers hypnotoad. Défaut2.MOJO_MODE: mode Mojolicious standard. Les unités de production définissentproduction.
Les valeurs actuelles de CHINASKI_DB, CHINASKI_OUTPUT, CHINASKI_URL_BASE, CHINASKI_LISTEN, et le fait que CHINASKI_SECRET soit définie sont visibles sur la page de réglages admin.
Mode air-gap (CHINASKI_AIRGAP=1)
Désactive tout appel sortant et toute intégration externe en un seul interrupteur. Avec le mode air-gap actif :
- Les webhooks build, form, post et publish ne sont jamais délivrés.
- Le déploiement rsync et S3 ne s'exécute pas, et les retries de webhook s'arrêtent.
- Cloudflare Turnstile est entièrement sauté : la vérification passe automatiquement et le widget est retiré des pages de connexion et de formulaire, quelles que soient les clés stockées dans les réglages.
- Les notifications email admin sont sautées.
- Le contrôle de manifest de mise à jour de version n'est pas effectué.
- Le builder statique retire les analytics externes (GA4/GTM) et retire le code de snippet référençant des URL externes, de sorte qu'aucune page publique ne charge quoi que ce soit depuis un CDN.
L'installateur active cela par défaut.
Build statique
CHINASKI_INCREMENTAL=1: demande un build incrémental. Le builder peut tout de même choisir un build full s'il juge qu'un est requis.CHINASKI_FORCE_FULL=1: force un rebuild complet (utilisé parbin/force-full-build.plet le contrôle de rebuild admin).CHINASKI_FORCE_PROMOTE=1: promeut le build même quand le guard de qualité le retiendrait parce que le nombre de pages ou d'autres métriques ont chuté.CHINASKI_JOBS: parallélisme du build. Ce doit être un nombre simple ; outrepasse le réglagebuild_jobs; par défaut le nombre de CPU ; borné à 1-16.CHINASKI_BLOCK_TEMPLATES: répertoire des templates de blocks. Défautbuilder/block_templatesdans le repo.CHINASKI_MANIFEST_OPTIONAL=1: un échec de production du manifest de build signé avorte normalement le build ; définir ceci en fait un avertissement à la place. Laissez désactivé en production : un build « vert » sans manifest signé utilisable est pire qu'un build en échec.
Signature, clés et mises à jour
CHINASKI_PRIVATE: répertoire détenant le manifest de build signé (build-manifest.jsonet son.sig). Défaut<repo root>/private.CHINASKI_KEYS: répertoire détenant la paire de clés de signature de manifest Ed25519. Défaut<repo root>/keys.CHINASKI_URL_BASE: outrepasse le réglage de sitechinaski_url_basepour les URL construites et le sitemap.CHINASKI_CMS_URL: outrepasse le réglagecms_base_url.CHINASKI_UPDATE_MANIFEST_URL: si définie, le dashboard admin vérifie cette URL de manifest pour des releases plus récentes (sauté en mode air-gap). Récupère avec des timeouts courts de 3/5 secondes.CHINASKI_RELEASE_PUBKEY: fichier de clé publique de vérification de release alternatif ; défautkeys/chinaski_release.pubdans le répertoire de l'app.
Runtime et opérations
CHINASKI_TRUSTED_PROXIES: liste séparée par des virgules d'IP de proxy ou de plages IPv4 CIDR dont les en-têtesX-Forwarded-Forsont dignes de confiance. Le loopback est toujours de confiance ; les entrées supplémentaires comptent quand votre reverse proxy est autrement visible de l'app dans un réseau conteneur/bridge. Défaut : loopback seulement.CHINASKI_SMTP_INSECURE_NOVERIFY=1: désactive la vérification des certificats TLS pour le SMTP sortant. Uniquement pour des tests ou des configurations mail délibérément non sécurisées.CHINASKI_SKIP_PERF_INDEXES=1: saute l'application des index de performance automatiques ; pour les outils de migration, pas pour un usage normal.CHINASKI_DOCS_DIR: répertoire des documents. Défaut :documentsà côté du fichier de base de données.CHINASKI_MEDIA_DIR: répertoire media (utilisé par le script de backup et la purge automatique des fichiers media mis à la trash). Défautpublic/mediadans l'arborescence de l'app (/var/www/chinaski<N>/public/mediasur les installations systemd).CHINASKI_ADMIN_PASSWORD: mot de passe pour les exécutions non interactives debin/chinaski-setup.pl(alternative à--password).
Webhooks
WEBHOOK_MAX_CONCURRENT: nombre maximal de requêtes webhook sortantes simultanées. Défaut8.
Serveur MCP
chinaski-mcp requiert CHINASKI_API_URL (URL de base du CMS) et CHINASKI_API_KEY ; il refuse de démarrer sans elles. Réglages fins optionnels :
CHINASKI_MCP_SESSION_TTL: durée de vie des sessions en secondes (défaut86400).CHINASKI_MCP_SESSION_DB: chemin de la base de données de sessions (défautchinaski-mcp/sessions.db).CHINASKI_MCP_LOG_DIR/CHINASKI_MCP_LOG_FILE: emplacement des logs (défautslogs/etlogs/mcp-server.log).CHINASKI_MCP_MAX_RETRIES: défaut3.CHINASKI_MCP_CONTEXT_TTL: durée de vie du cache de contexte du site en secondes (défaut300).
Backups et deploys
Utilisées par deploy/backup.sh :
CHINASKI_BACKUP_DIR: destination des backups ; défaut/var/backups/chinaski<N>.CHINASKI_BACKUP_RETENTION_DAYS: durée de conservation des snapshots de base de données ; défaut14.
Utilisées par deploy/deploy.sh :
CHINASKI_ALLOW_BUILD_FAIL=1: normalement un build en échec avorte le deploy pour que le service ne redémarre jamais sur une sortie périmée ou partielle ; ce flag continue quand même en cas d'urgence.
Avertissements
- Gardez
/etc/chinaski<N>/enven mode0600. Les backups contiennent la base de données complète (hash de mots de passe, secrets chiffrés) ; le script de backup resserre le répertoire de backup à0700à chaque exécution ; assurez-vous que rien d'autre ne l'élargit. CHINASKI_AIRGAP=1réduit au silence tout trafic sortant ; définissez-la avant le premier démarrage si votre déploiement ne touche jamais internet.- Faire tourner
CHINASKI_SECRETest un événement délibéré, pas de la maintenance de routine : les sessions meurent et les réglages chiffrés doivent être re-sauvegardés.