Repository navigation
FR Reference Variables D Environnement
English · Type : référence · Public : auteur, administrateur, contributeur · Contexte : dépôt du moteur, projet créé, Studio hébergé, Reality Bridge · Statut : prête · S'applique depuis : 4.5.0
Toutes les variables d’environnement que lit quest-n-click, et celles que Clever Cloud et ses add-ons donnent au Studio
hébergé. Chacune a sa propre section : liez-la sous la forme
reference.environment-variables.md#studio-session-key (le nom en minuscules, _ écrit -).
- Origine dit qui pose la variable : vous (le code la lit), la construction, la plateforme (Clever Cloud, GitHub Actions, npm, le système), un add-on Clever Cloud, ou un workflow de CI. Une variable qu’une commande de quest-n-click pose elle-même le dit : vous ne la posez pas.
-
Secret : lue une fois au démarrage du Studio Server, puis retirée de son environnement, pour qu’aucun processus
enfant n’en hérite ; jamais écrite dans un journal. Chaque secret peut aussi venir d’un fichier :
STUDIO_SESSION_KEY_FILE=/run/secrets/sessionlit la clé dans ce fichier, lisible par son seul propriétaire (mode 0600) sous Linux et macOS. Le fichier passe avant la variable. - Lue par renvoie aux fichiers du code qui la lisent, dans la version documentée.
- Sur Clever Cloud, posez une variable avec
clever env set NOM valeursur la bonne application ;clever envaffiche en entier les valeurs sur plusieurs lignes, filtrez sa sortie avant de la partager.
Limite ·
generated-scopeLes sections qui suivent sont générées depuiswiki/data/env.jsonet depuis le code : ce que lisentprocess.env,import.meta.env,os.environen Python, les scripts shell deops/etclevercloud/, et les workflows de.github/workflows/(leurs blocsenv:,${{ env.X }},$GITHUB_ENVet leur shell). Une variable lue seulement par une bibliothèque tierce (lesOTEL_*standard,NODE_OPTIONS,PG*) n’y figure pas.
Ce que lit l’application studio-server : sur Clever Cloud, posez-les avec clever env set sur l’application studio, jamais sur le worker. Chaque secret peut venir d’un fichier (<NOM>_FILE, mode 0600), et quitte l’environnement une fois lu.
Pas prise dans votre environnement : le Studio Server construit l’environnement de ses propres commandes git, y pose GIT_DIR sur le dépôt du jeu, et la retire pour git init. Une GIT_DIR à vous ne leur parvient jamais.
- Origine : posée par le Studio Server lui-même.
- Lue par :
studio-server/src/server/git.ts.
1 active la sauvegarde quotidienne vers le bucket que clevercloud/cron.json lance à 03:17 UTC (ops/studio/backup-cron.sh). À poser sur l’application studio seulement, jamais sur le worker.
- Origine : vous la posez ; le code la lit.
- Lue par :
ops/studio/backup-cron.sh.
Le nombre de sauvegardes que la sauvegarde quotidienne garde dans le bucket (--keep) ; 14 quand elle n’est pas posée.
- Origine : vous la posez ; le code la lit.
- Lue par :
ops/studio/backup-cron.sh.
Le chemin du fichier de configuration, lu quand aucun --config <fichier> n’est donné. Il passe avant STUDIO_CONFIG_JSON.
- Origine : vous la posez ; le code la lit.
- Lue par :
studio-server/src/server/main.ts.
Toute la configuration en JSON sur une ligne, pour une plateforme qui ne donne pas de fichier (Clever Cloud). Elle ne contient aucun secret ; le chargeur refuse une clé inconnue.
- Origine : vous la posez ; le code la lit.
- Lue par :
studio-server/src/server/main.ts.
L’URI de connexion PostgreSQL (store.kind: postgres). Sur Clever Cloud, ne la posez pas : la variable POSTGRESQL_ADDON_URI de l’add-on lié est lue à sa place. Pour un exercice de restauration, faites-la pointer vers la base vide de l’exercice, jamais vers la production.
- Origine : vous la posez ; le code la lit.
- Secret : oui, lue une fois au démarrage, puis retirée de l’environnement ; jamais journalisée.
- Depuis un fichier :
STUDIO_DATABASE_URL_FILEnomme un fichier où la lire à la place (mode 0600 sous Linux et macOS). - Lue par :
studio-server/src/server/config.ts.
Facultative (4.2.3) : la clé de déploiement SSH du dépôt Git du jeu (git.remote). Inutile pour un dépôt public en https.
- Origine : vous la posez ; le code la lit.
- Secret : oui, lue une fois au démarrage, puis retirée de l’environnement ; jamais journalisée.
- Depuis un fichier :
STUDIO_GIT_KEY_FILEnomme un fichier où la lire à la place (mode 0600 sous Linux et macOS). - Lue par :
studio-server/src/server/config.ts.
Facultative (4.2.3) : le jeton bearer de GET /metrics, 32 caractères ou plus. Sans elle, la route /metrics n’existe pas (404).
- Origine : vous la posez ; le code la lit.
- Secret : oui, lue une fois au démarrage, puis retirée de l’environnement ; jamais journalisée.
- Depuis un fichier :
STUDIO_METRICS_TOKEN_FILEnomme un fichier où la lire à la place (mode 0600 sous Linux et macOS). - Lue par :
studio-server/src/server/config.ts.
Le secret du fournisseur OpenID pour le client studio. Obligatoire quand la configuration a oidc.
- Origine : vous la posez ; le code la lit.
- Secret : oui, lue une fois au démarrage, puis retirée de l’environnement ; jamais journalisée.
- Depuis un fichier :
STUDIO_OIDC_CLIENT_SECRET_FILEnomme un fichier où la lire à la place (mode 0600 sous Linux et macOS). - Lue par :
studio-server/src/server/config.ts.
L’identifiant de clé d’accès S3 (Cellar) du bucket (blobs.kind: s3). Sur Clever Cloud, CELLAR_ADDON_KEY_ID de l’add-on est lue quand elle n’est pas posée.
- Origine : vous la posez ; le code la lit.
- Secret : oui, lue une fois au démarrage, puis retirée de l’environnement ; jamais journalisée.
- Depuis un fichier :
STUDIO_S3_KEY_ID_FILEnomme un fichier où la lire à la place (mode 0600 sous Linux et macOS). - Lue par :
studio-server/src/server/config.ts.
La clé secrète S3 (Cellar) du bucket. Sur Clever Cloud, CELLAR_ADDON_KEY_SECRET de l’add-on est lue quand elle n’est pas posée.
- Origine : vous la posez ; le code la lit.
- Secret : oui, lue une fois au démarrage, puis retirée de l’environnement ; jamais journalisée.
- Depuis un fichier :
STUDIO_S3_KEY_SECRET_FILEnomme un fichier où la lire à la place (mode 0600 sous Linux et macOS). - Lue par :
studio-server/src/server/config.ts.
Les clés qui scellent les cookies de session des membres : une clé, ou plusieurs séparées par des virgules, chacune de 32 caractères ou plus (openssl rand -base64 48). La première scelle ; toutes celles de la liste ouvrent. Pour la faire tourner, mettez la nouvelle clé en tête et gardez l’ancienne dans la liste jusqu’à l’expiration des sessions qu’elle a scellées ; retirer une clé déconnecte les sessions scellées avec elle. Obligatoire avec oidc.
- Origine : vous la posez ; le code la lit.
- Secret : oui, lue une fois au démarrage, puis retirée de l’environnement ; jamais journalisée.
- Depuis un fichier :
STUDIO_SESSION_KEY_FILEnomme un fichier où la lire à la place (mode 0600 sous Linux et macOS). - Lue par :
studio-server/src/server/config.ts.
La clé privée Ed25519 (PEM) qui signe les jobs envoyés au worker ; les retours à la ligne peuvent s’écrire \n. Produite par npm run studio-server -- worker-keys --out <dossier>. Obligatoire avec un worker.
- Origine : vous la posez ; le code la lit.
- Secret : oui, lue une fois au démarrage, puis retirée de l’environnement ; jamais journalisée.
- Depuis un fichier :
STUDIO_WORKER_KEY_FILEnomme un fichier où la lire à la place (mode 0600 sous Linux et macOS). - Lue par :
studio-server/src/server/config.ts.
Le dossier de la page du Studio construite que le serveur sert, quand la configuration n’a pas de clientDir ; .cache/studio-client à côté du moteur par défaut. Le lanceur de l’archive de publication la pose.
- Origine : vous la posez ; le code la lit.
- Lue par :
scripts/pack.mjs,studio-server/src/server/main.ts.
Ce que lit le worker de traitement (npm run studio-worker). Il ne détient aucun secret : seulement la clé publique qui vérifie les jobs que le Studio signe.
Le nom du seul Studio dont ce worker exécute les jobs : le même que worker.instance dans la configuration du Studio.
- Origine : vous la posez ; le code la lit.
- Lue par :
studio-server/src/worker/main.ts.
La clé publique Ed25519 (PEM) qui vérifie les jobs signés du Studio : le contenu de studio-worker.pub.
- Origine : vous la posez ; le code la lit.
- Lue par :
studio-server/src/worker/main.ts.
Un fichier qui contient la clé publique, lu à la place de WORKER_PUBLIC_KEY quand elle est posée.
- Origine : vous la posez ; le code la lit.
- Lue par :
studio-server/src/worker/main.ts.
L’endroit où le hook de construction a installé les paquets Python des outils d’images ; .python dans le dossier du worker quand elle n’est pas posée.
- Origine : vous la posez ; le code la lit.
- Lue par :
studio-server/src/worker/prepare.ts.
Clever Cloud les donne à une application, ou les lit lui-même pour la construire et la lancer. Les variables d’un add-on n’arrivent à l’application studio que si l’add-on lui est lié.
À ne pas poser : les deux applications se construisent depuis la racine du dépôt. Une application qui a contenu un autre projet peut encore en avoir une (clever env rm APP_FOLDER).
- Origine : posée par vous ; Clever Cloud la lit.
- Lue par : aucun fichier du code ; la plateforme la lit.
Le dossier de l’application sur l’instance ; la sauvegarde quotidienne s’y lance (cd "$APP_HOME" dans une session clever ssh aussi).
- Origine : posée par Clever Cloud.
- Lue par :
ops/studio/backup-cron.sh.
Le chemin que Clever Cloud sonde avant d’envoyer du trafic à une nouvelle instance : /startz sur l’application studio.
- Origine : posée par vous ; Clever Cloud la lit.
- Lue par : aucun fichier du code ; la plateforme la lit.
À poser à install sur les deux applications : le serveur tourne depuis le dépôt avec tsx, une dépendance de développement.
- Origine : posée par vous ; Clever Cloud la lit.
- Lue par : aucun fichier du code ; la plateforme la lit.
Une commande que Clever Cloud lance après la construction : npm run studio-client sur l’application studio ; celle du worker installe les paquets Python de ops/studio/worker-requirements.lock.
- Origine : posée par vous ; Clever Cloud la lit.
- Lue par : aucun fichier du code ; la plateforme la lit.
La commande qui lance l’application : npm run studio-server -- serve sur l’application studio, npm run studio-worker sur le worker.
- Origine : posée par vous ; Clever Cloud la lit.
- Lue par : aucun fichier du code ; la plateforme la lit.
L’identifiant de clé de l’add-on Cellar, lu quand STUDIO_S3_KEY_ID n’est pas posée.
- Origine : injectée par l’add-on Cellar de Clever Cloud.
- Secret : oui, lue une fois au démarrage, puis retirée de l’environnement ; jamais journalisée.
- Lue à la place de
STUDIO_S3_KEY_IDquandSTUDIO_S3_KEY_IDn’est pas posée. - Lue par :
studio-server/src/server/config.ts.
La clé secrète de l’add-on Cellar, lue quand STUDIO_S3_KEY_SECRET n’est pas posée.
- Origine : injectée par l’add-on Cellar de Clever Cloud.
- Secret : oui, lue une fois au démarrage, puis retirée de l’environnement ; jamais journalisée.
- Lue à la place de
STUDIO_S3_KEY_SECRETquandSTUDIO_S3_KEY_SECRETn’est pas posée. - Lue par :
studio-server/src/server/config.ts.
Le numéro de l’instance de l’application. La sauvegarde quotidienne ne tourne que sur l’instance 0, pour que deux instances ne sauvegardent pas toutes les deux.
- Origine : posée par Clever Cloud.
- Lue par :
ops/studio/backup-cron.sh.
Le port d’écoute. Clever Cloud la donne aux applications studio et worker ; ailleurs, 8080 quand elle n’est pas posée. Un port dans la configuration du Studio passe avant.
- Origine : posée par l’hébergeur (Clever Cloud la donne).
- Lue par :
scripts/start.mjs,studio-server/src/server/config.ts,studio-server/src/worker/main.ts.
L’URI de connexion de l’add-on PostgreSQL. Le Studio Server la lit quand STUDIO_DATABASE_URL n’est pas posée.
- Origine : injectée par l’add-on PostgreSQL de Clever Cloud.
- Secret : oui, lue une fois au démarrage, puis retirée de l’environnement ; jamais journalisée.
- Lue à la place de
STUDIO_DATABASE_URLquandSTUDIO_DATABASE_URLn’est pas posée. - Lue par :
studio-server/src/server/config.ts.
Le dossier de l’application, utilisé par clevercloud/cron.json (les crons veulent des chemins absolus) et par le script de sauvegarde quand APP_HOME manque.
- Origine : posée par Clever Cloud.
- Lue par :
clevercloud/cron.json,ops/studio/backup-cron.sh.
Lues par les commandes du moteur, le Studio local et son serveur MCP, dans le dépôt du moteur ou dans un projet créé.
Le dossier des images et sons construits livrés, à la place de public/assets (les fichiers propres à une fixture de test).
- Origine : vous la posez ; le code la lit.
- Lue par :
tools/game.ts.
Le dossier construit que mesure npm run weight ; dist quand elle n’est pas posée.
- Origine : vous la posez ; le code la lit.
- Lue par :
tools/weight.ts.
Le chemin de l’exécutable Furnace avec lequel la chaîne audio fait son rendu, quand il n’est pas là où python -m mdpipe setup l’a mis.
- Origine : vous la posez ; le code la lit.
- Lue par :
tools/audio/mdpipe/render.py.
Le jeu de games/ sur lequel travaillent les commandes du dépôt du moteur (GAME=reference npm run validate). Sans elle, le dernier jeu choisi (npm run game -- <id>), puis config.game de package.json, puis demo.
- Origine : vous la posez ; le code la lit.
- Lue par :
.github/workflows/ci.yml,.github/workflows/prove.yml,scripts/e2e-studio.mjs, et 9 de plus.
Le dossier de jeu sur lequel travaillent les outils, n’importe où sur le disque. Posée, c’est toujours le dossier lu, quoi que dise GAME, à la place de games/<GAME> ou du game/ d’un projet créé ; sans GAME, l’identifiant du jeu est le nom du dossier.
- Origine : vous la posez ; le code la lit.
- Lue par :
scripts/e2e-worker-container.ts,scripts/ops-qualify/setup.mjs,tools/assets.py, et 3 de plus.
0 coupe le cache des résultats du solveur pour une exécution (comme --no-cache).
- Origine : vous la posez ; le code la lit.
- Lue par :
tools/proof-cache.ts.
L’endroit où vit le cache des résultats du solveur ; .cache/proofs du projet quand elle n’est pas posée.
- Origine : vous la posez ; le code la lit.
- Lue par :
tools/proof-cache.ts.
L’interpréteur Python que lance quest-n-click assets ; python3 quand elle n’est pas posée.
- Origine : vous la posez ; le code la lit.
- Lue par :
cli/quest-n-click.mjs.
1 permet à l’Assistant du Studio d’appeler une URL de fournisseur que vous saisissez vous-même ; refusé sinon.
- Origine : vous la posez ; le code la lit.
- Lue par :
tools/studio/assistant.ts.
Le serveur de développement qu’ouvre l’outil MCP screenshot ; http://localhost:5173/ quand elle n’est pas posée.
- Origine : vous la posez ; le code la lit.
- Lue par :
tools/mcp/server.ts.
1 fait écouter le serveur de développement et le Studio local sur le réseau local, derrière un jeton. npm run dev:lan et studio:lan la posent.
- Origine : posée par
npm run dev:lanetstudio:lan. - Lue par :
tools/studio/security.ts,vite.config.ts.
Le projet créé sur lequel travaillent les outils du moteur. La commande quest-n-click la pose sur le dossier où elle tourne ; vous ne la posez pas vous-même.
- Origine : posée par la commande
quest-n-click. - Lue par :
tools/assets.py,tools/game.ts.
Les noms d’hôte auxquels répond le Studio local en mode réseau local, séparés par des virgules ; tout autre Host est refusé. studio:lan la pose d’après les adresses de la machine.
- Origine : posée par
npm run dev:lanetstudio:lan. - Lue par :
tools/studio/security.ts.
Le jeton que demande le Studio local en mode réseau local. studio:lan en tire un au hasard sauf si vous la posez.
- Origine : vous la posez ; le code la lit.
- Lue par :
tools/serve-args.ts,tools/studio/security.ts.
Lues quand Vite construit le jeu, le Studio ou une prévisualisation. Les scripts npm posent la plupart d’entre elles ; VITE_*, BASE_URL et DEV finissent dans la page construite.
Le sous-chemin sous lequel le jeu est servi (/<dépôt>/ sur GitHub Pages) ; / quand elle n’est pas posée.
- Origine : lue à la construction de la page ou du paquet.
- Lue par :
.github/workflows/ci.yml,tools/vite/plugins.ts.
La base pour laquelle la page a été construite, tirée de BASE_PATH.
- Origine : posée par Vite (lue à la construction de la page ou du paquet).
- Lue par :
src/main.ts,src/studio/api.ts,src/studio/game-origin.ts.
Vrai sous le serveur de développement (npm run dev), faux dans une version construite.
- Origine : posée par Vite (lue à la construction de la page ou du paquet).
- Lue par :
src/main.ts.
1 construit ou sert les pages du Studio à côté du jeu (npm run studio, le Studio de démonstration).
- Origine : posée par les scripts npm (lue à la construction de la page ou du paquet).
- Lue par :
.github/workflows/ci.yml,tools/vite/plugins.ts,vite.config.ts.
1 ne construit que la page du Studio hébergé (npm run studio-client).
- Origine : posée par
npm run studio-client(lue à la construction de la page ou du paquet). - Lue par :
vite.config.ts.
1 construit le Studio de démonstration, qui tourne dans le navigateur sans serveur (npm run build:studio-demo).
- Origine : posée par
npm run build:studio-demo(lue à la construction de la page ou du paquet). - Lue par :
.github/workflows/ci.yml,src/engine/dev/editor.ts,src/main.ts, et 1 de plus.
1 construit le Studio pour un Studio Server (npm run studio-client).
- Origine : posée par
npm run studio-client(lue à la construction de la page ou du paquet). - Lue par :
src/studio/main.ts.
1 dans la prévisualisation d’une révision, que le worker construit avec les outils d’édition ; 0 dans une version publiée.
- Origine : posée par le worker du Studio (lue à la construction de la page ou du paquet).
- Lue par :
src/main.ts,studio-server/src/worker/preview-build.ts.
Lues par quest-n-click-bridge (ou npm run bridge dans le dépôt du moteur).
Le stockage du Bridge quand aucun --store= n’est donné : jsonl, sqlite, sqlite:<fichier> ou une URL postgres://. Elle passe avant store de config.json.
- Origine : vous la posez ; le code la lit.
- Lue par :
bridge/src/cli-store.ts,tools/load-report.ts.
Un fichier qui contient l’URL du stockage, lu quand BRIDGE_STORE est vide, pour qu’un mot de passe de base soit monté en fichier secret et n’apparaisse jamais dans une liste de processus.
- Origine : vous la posez ; le code la lit.
- Lue par :
bridge/src/cli-store.ts.
L’adresse où le Bridge exporte ses mesures en OTLP, quand @opentelemetry/sdk-node est installé à côté ; rien n’est exporté sinon. Le SDK lit lui-même les autres variables OTEL_* standard.
- Origine : vous la posez ; le code la lit.
- Lue par :
bridge/src/telemetry.ts.
Lues seulement par les scripts de test, de CI et de publication du dépôt du moteur. Un projet créé n’en a jamais besoin.
Le module pg qu’importe tools/backup-memory.ts, quand ce n’est pas celui du dépôt.
- Origine : vous la posez ; le code la lit.
- Lue par :
tools/backup-memory.ts.
Une URL PostgreSQL sur laquelle les tests font tourner le stockage du Bridge et les mutations ; ces tests sont sautés sans elle.
- Origine : vous la posez ; le code la lit.
- Lue par :
.github/workflows/candidate.yml,.github/workflows/ci.yml,.github/workflows/mutation.yml, et 3 de plus.
Une URL PostgreSQL sur laquelle npm run external-consumer fait aussi tourner le Bridge installé.
- Origine : vous la posez ; le code la lit.
- Lue par :
.github/workflows/candidate.yml,scripts/external-consumer.mjs.
Le navigateur dans lequel tourne un test de bout en bout (chromium, firefox, webkit) ; Chromium quand elle n’est pas posée.
- Origine : vous la posez ; le code la lit.
- Lue par :
.github/workflows/ci.yml,scripts/e2e-a11y.mjs,scripts/e2e-pwa.mjs, et 2 de plus.
Un facteur de ralentissement du processeur pour les tests de bout en bout sous Chromium (4 tourne quatre fois plus lentement).
- Origine : vous la posez ; le code la lit.
- Lue par :
scripts/e2e/lib.mjs.
Toute valeur fait afficher au test de bout en bout du Studio hébergé ce qu’il fait.
- Origine : vous la posez ; le code la lit.
- Lue par :
scripts/e2e-studio-hosted.ts.
keyboard joue la soluce de bout en bout au clavier au lieu de touchers.
- Origine : vous la posez ; le code la lit.
- Lue par :
scripts/e2e/lib.mjs.
L’endroit où un test de bout en bout écrit ses captures et ses rapports.
- Origine : vous la posez ; le code la lit.
- Lue par :
.github/workflows/ci.yml,scripts/e2e-a11y.mjs,scripts/e2e/lib.mjs.
Toute valeur fait afficher à e2e:weight les requêtes qu’il a comptées.
- Origine : vous la posez ; le code la lit.
- Lue par :
scripts/e2e-weight.mjs.
Le jeton GitHub de la commande gh. tools/release/run-jobs.mjs la lit avant GITHUB_TOKEN ; npm run wiki -- publish ne la lit que si GITHUB_TOKEN n’est pas posée.
- Origine : vous la posez ; le code la lit.
- Lue par :
.github/workflows/candidate.yml,.github/workflows/ci.yml,.github/workflows/docs-publish.yml, et 3 de plus.
Un jeton GitHub pour les outils de publication et de documentation. npm run wiki -- publish la lit avant GH_TOKEN (après la clé de déploiement WIKI_DEPLOY_KEY) ; tools/release/run-jobs.mjs ne la lit que si GH_TOKEN n’est pas posée. Sur un runner, GitHub Actions la donne.
- Origine : vous la posez ; le code la lit.
- Lue par :
.github/workflows/docs-publish.yml,tools/release/run-jobs.mjs,tools/wiki.ts.
L’ensemble de tests qui juge un mutant (core, reality…) ; core quand elle n’est pas posée. npm run test:mutation:* la pose.
- Origine : vous la posez ; le code la lit.
- Lue par :
vitest.mutation.config.ts.
Les résultats des jobs d’un workflow, en JSON, que lit le verdict du candidat. Le workflow la pose.
- Origine : vous la posez ; le code la lit.
- Lue par :
.github/workflows/candidate.yml,.github/workflows/ci.yml,tools/release/candidate.mjs.
Posée par npm run ops:qualify pour ops/qualify/compose.yml : l’arbre commité que lit le worker des speedruns.
- Origine : posée par
npm run ops:qualify. - Lue par :
ops/qualify/compose.yml.
Posée par npm run ops:qualify pour ops/qualify/compose.yml : le dossier du contexte de construction de l’image du Bridge.
- Origine : posée par
npm run ops:qualify. - Lue par :
ops/qualify/compose.yml.
Posée par npm run ops:qualify pour ops/qualify/compose.yml : le dossier des données des deux tenants.
- Origine : posée par
npm run ops:qualify. - Lue par :
ops/qualify/compose.yml.
Posée par npm run ops:qualify pour ops/qualify/compose.yml : l’identifiant de groupe des conteneurs (1000 par défaut).
- Origine : posée par
npm run ops:qualify. - Lue par :
ops/qualify/compose.yml,scripts/ops-qualify/backup.mjs.
Posée par npm run ops:qualify pour ops/qualify/compose.yml : les modules installés montés à côté.
- Origine : posée par
npm run ops:qualify. - Lue par :
ops/qualify/compose.yml.
Posée par npm run ops:qualify pour ops/qualify/compose.yml : le port local du proxy (8443 par défaut).
- Origine : posée par
npm run ops:qualify. - Lue par :
ops/qualify/compose.yml.
Posée par npm run ops:qualify pour ops/qualify/compose.yml : le deuxième port local du proxy (8444 par défaut).
- Origine : posée par
npm run ops:qualify. - Lue par :
ops/qualify/compose.yml.
Posée par npm run ops:qualify pour ops/qualify/compose.yml : le troisième port local du proxy (8445 par défaut).
- Origine : posée par
npm run ops:qualify. - Lue par :
ops/qualify/compose.yml.
Posée par npm run ops:qualify pour ops/qualify/compose.yml : le quatrième port local du proxy (8446 par défaut).
- Origine : posée par
npm run ops:qualify. - Lue par :
ops/qualify/compose.yml.
Posée par npm run ops:qualify pour ops/qualify/compose.yml : le dossier du mot de passe de la base et de l’URL du stockage.
- Origine : posée par
npm run ops:qualify. - Lue par :
ops/qualify/compose.yml.
Posée par npm run ops:qualify pour ops/qualify/compose.yml : l’identifiant d’utilisateur des conteneurs (1000 par défaut).
- Origine : posée par
npm run ops:qualify. - Lue par :
ops/qualify/compose.yml,scripts/ops-qualify/backup.mjs.
Le dossier où npm run ship écrit ses identifiants de processus ; .cache/pids quand elle n’est pas posée.
- Origine : vous la posez ; le code la lit.
- Lue par :
tools/release/lib.mjs.
Des lignes de pied supplémentaires que npm run ship ajoute à un commit de fusion, après Agent: Claude.
- Origine : vous la posez ; le code la lit.
- Lue par :
tools/release/ship.mjs.
Le point d’accès S3, les identifiants et le bucket du stockage objet de la CI, en une URL, pour les tests du Studio hébergé.
- Origine : vous la posez ; le code la lit.
- Lue par :
.github/workflows/ci.yml,ops/studio/ci/s3-ready.ts.
Le dépôt GitHub sur lequel travaillent les outils de publication ; wanoo/quest-n-click quand elle n’est pas posée.
- Origine : vous la posez ; le code la lit.
- Lue par :
tools/release/lib.mjs,tools/release/provenance.mjs.
La clé de déploiement SSH qui pousse la documentation vers le wiki GitHub (npm run wiki -- publish) ; GITHUB_TOKEN sert sans elle.
- Origine : vous la posez ; le code la lit.
- Lue par :
.github/workflows/docs-publish.yml,tools/wiki.ts.
Personne ne les pose à la main : le système, npm, Vitest ou un runner GitHub s’en charge. Le code se contente de les lire.
true sur un runner GitHub : les tests et les cliquets adaptent leur sortie et leurs limites.
- Origine : posée par GitHub Actions.
- Lue par :
scripts/e2e-pwa.mjs,scripts/e2e.mjs,tools/coverage-ratchet.ts.
L’adresse de l’API GitHub sur un runner.
- Origine : posée par GitHub Actions.
- Lue par :
tools/release/run-jobs.mjs.
Le fichier auquel une étape ajoute des lignes NOM=valeur, pour les étapes suivantes de son job.
- Origine : posée par GitHub Actions.
- Lue par :
.github/workflows/candidate.yml,.github/workflows/docs-publish.yml,.github/workflows/release.yml.
Le fichier où une étape écrit ses sorties.
- Origine : posée par GitHub Actions.
- Lue par :
.github/workflows/candidate.yml,.github/workflows/ci.yml,.github/workflows/nightly.yml, et 1 de plus.
Le fichier où un job écrit son résumé ; npm run ci:plan y écrit le plan.
- Origine : posée par GitHub Actions.
- Lue par :
.github/workflows/candidate.yml,.github/workflows/nightly.yml,tools/ci-plan.ts.
Le dossier personnel de l’utilisateur. Le script de la chaîne A7 le refuse comme dossier de sortie ; le Studio Server donne à ses propres commandes git un HOME dans son dossier de travail, jamais le vôtre.
- Origine : posée par le système d’exploitation.
- Lue par :
docs/dev/acceptance/a7-chain.sh.
L’image du runner, notée à côté d’une mesure.
- Origine : posée par GitHub Actions.
- Lue par :
tools/backup-memory.ts,tools/load-median.ts,tools/release/baseline.mjs.
Le chemin de recherche du système. Le Studio Server et le worker la passent à leurs processus enfants, et rien d’autre de l’environnement.
- Origine : posée par le système d’exploitation.
- Lue par :
bridge/src/runs.ts,scripts/e2e-worker-container.ts,scripts/studio-install-smoke.mjs, et 3 de plus.
Le dossier courant du shell.
- Origine : posée par le shell.
- Lue par :
.github/workflows/ci.yml.
Le système du runner, noté à côté d’une mesure.
- Origine : posée par GitHub Actions.
- Lue par :
tools/backup-memory.ts,tools/load-median.ts,tools/release/baseline.mjs.
Le dossier de Windows ; les outils y trouvent tar.exe.
- Origine : posée par Windows.
- Lue par :
scripts/lib/archive-harness.mjs,tools/field/field.ts.
Posée pendant que Vitest tourne : le plugin du Studio local ne lance alors rien.
- Origine : posée par Vitest.
- Lue par :
tools/studio/plugin.ts.
Le script npm en cours ; un outil qui écrit le jeu l’enregistre comme auteur du changement.
- Origine : posée par npm.
- Lue par :
tools/game-write.ts.
Posées et lues seulement par les workflows de .github/workflows/ : une entrée passée au shell d’une étape par env:, ou une valeur qu’une étape laisse à la suivante dans $GITHUB_ENV. Rien à poser à la main.
ci : true quand tous les contrôles tournent (un push, ou une pull request étiquetée full-ci).
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/ci.yml.
docs-publish : le chemin de l’archive à publier.
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/docs-publish.yml.
docs-publish : le sha256 de cette archive.
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/docs-publish.yml.
docs-publish : true quand release.yml l’appelle, avec une archive vérifiée.
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/docs-publish.yml.
docs-publish : le lancement candidat dont le rapport de tests est lu.
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/docs-publish.yml,.github/workflows/release.yml.
docs-publish : le mode choisi à la main (revision, rollback, promote, preview).
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/docs-publish.yml.
release : l’archive de documentation de la version, quand elle en a une.
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/release.yml.
release : les autres fichiers déposés avec la version.
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/release.yml.
mutation : un seul fichier à muter, choisi à la main.
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/mutation.yml.
ci : false dans un lancement Pages seulement, qui saute alors ses autres étapes.
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/ci.yml.
docs-publish : le lancement candidat que passe release.yml.
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/docs-publish.yml.
docs-publish : la révision de documentation que passe release.yml (r1).
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/docs-publish.yml.
docs-publish : le commit du tag que passe release.yml.
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/docs-publish.yml.
docs-publish : le sha256 de l’archive vérifiée par ship verify.
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/docs-publish.yml.
docs-publish : le tag de version que passe release.yml.
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/docs-publish.yml.
docs-publish : le mode décidé pour le lancement, laissé aux étapes suivantes.
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/docs-publish.yml.
ci : true quand une pull request étiquetée full-ci lance aussi les tests de mutation.
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/ci.yml.
release : la version de Node.js sur laquelle tourne la publication npm.
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/release.yml.
release : la version de npm qui publie.
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/release.yml.
release : le préfixe des noms de fichiers de la version (quest-n-click).
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/release.yml.
ci : true pour un lancement Pages seulement, qui reconstruit le site et /docs/ et rien d’autre.
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/ci.yml.
La base du conteneur de service PostgreSQL.
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/candidate.yml,.github/workflows/ci.yml,.github/workflows/mutation.yml, et 2 de plus.
Le mot de passe du conteneur de service PostgreSQL, pour la CI seulement.
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/candidate.yml,.github/workflows/ci.yml,.github/workflows/mutation.yml, et 2 de plus.
L’utilisateur du conteneur de service PostgreSQL, lu par son image.
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/candidate.yml,.github/workflows/ci.yml,.github/workflows/mutation.yml, et 2 de plus.
docs-publish : le tag du produit que décrit la documentation.
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/docs-publish.yml.
candidate : le profil du test de déploiement, full lancé à la main, short sinon.
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/candidate.yml.
docs-publish : la version GitHub qui porte l’archive (v<v> ou docs-v<v>-r<n>).
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/docs-publish.yml.
release : les fichiers de remix ajoutés à la version, quand il y en a.
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/release.yml.
Le dépôt où tourne le workflow (propriétaire/nom), pour ses appels à gh.
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/ci.yml,.github/workflows/docs-publish.yml.
docs-publish : true quand une version déjà créée par un lancement précédent est réutilisée.
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/docs-publish.yml.
docs-publish : la révision de documentation publiée (r1, r2…).
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/docs-publish.yml.
ci : si le plan demande les jobs Reality.
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/ci.yml.
docs-publish : l’identifiant de ce lancement, l’identifiant de construction de l’archive.
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/docs-publish.yml.
docs-publish : la ref sur laquelle tourne le lancement, vérifiée selon son mode.
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/docs-publish.yml.
mutation : l’ensemble de mutation choisi à la main.
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/mutation.yml.
release : le commit qu’a testé le lancement candidat.
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/release.yml.
candidate : le stockage que mesure tools/backup-memory.ts, sqlite ou une URL PostgreSQL.
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/candidate.yml.
ci : 1 garde les captures du test du Studio hébergé.
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/ci.yml.
ci : le service Keycloak avec lequel se connecte le test de bout en bout du Studio hébergé.
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/ci.yml.
ci : l’administrateur de ce Keycloak, pour la CI seulement.
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/ci.yml.
ci : le service PostgreSQL qu’utilisent les tests du Studio hébergé.
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/ci.yml.
release : le tag publié.
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/release.yml.
docs-publish : le <version>[-r<n>] que vise un retour arrière ou une promotion.
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/docs-publish.yml.
docs-publish : la version du produit à publier (son entrée version).
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/docs-publish.yml.
candidate : le SHA complet qu’un lancement à la main doit tester (son entrée sha).
- Origine : posée par un workflow de
.github/workflows/(CI et publications). - Lue par :
.github/workflows/candidate.yml.
Generated publication · publication générée — current documentation · documentation courante: quest'n'click 4.4.0 r1, documentation revision · révision de la documentation 8dc717c69acb62c4742b69c54a7e7dfb620f75d8.
Earlier versions and permalinks · versions précédentes et liens permanents: https://wanoo.github.io/quest-n-click/docs/
An edit made in this wiki is overwritten at the next publication · une modification faite dans ce wiki est écrasée à la publication suivante.
Edit the source · Modifier la source · Report an error · Signaler une erreur
Index (6)
Démarrer (6)
Jouer (9)
Installer (17)
- Prérequis
- Installer depuis l'archive de la release
- Installer depuis npm, une fois publié
- Installer depuis le dépôt pour travailler sur le moteur
- doctor : vérifier sa machine
- Outils pour les images
- Outils audio : ffmpeg, fluidsynth, Furnace, uv
- Mettre à jour
- Notes de mise à jour : 4.4
- Notes de mise à jour : 4.3
- Notes de mise à jour : 4.2
- Notes de mise à jour : 4.1
- Notes de mise à jour : v3
- Notes de mise à jour : v2 vers v3
- Venir de web-scumm
- Référence du paquet
- Dépannage de l'installation
Créer un jeu (55)
- Votre premier jeu
- Organisation d'un projet créé et du dépôt du moteur
- La boucle de travail
- Principes du contenu et contrat d'identité
- Salles
- Géométrie : placement, zones de marche, masques, calques, caméra
- Un objet est visible mais inaccessible
- Réactions
- Commandes du jeu
- Conditions
- Drapeaux, variables et événements : lequel choisir
- Code sur mesure
- Personnages
- Objets et inventaire
- Carte du monde
- Dialogues
- Scripts et événements
- Faire bouger les personnages : patrouilles et marches
- Sorties
- Chapitres et objectifs
- État et sauvegardes : persistant ou temporaire, renommer un id, migrations
- Mise en scène : salles larges et animations
- La scène : lumières, particules, sols
- Habillage et polices
- Titre et générique
- Héros : plusieurs personnages et choix du héros
- Mini-jeux intégrés
- Un mini-jeu sur mesure
- Traductions
- Musique en stems
- Bruitages
- Voix : par langue et par héros
- Images : prompts, découpe des planches, transparence, échelle
- Provenance des assets
- Le storyboard, source de vérité
- Concevoir des énigmes
- Mécaniques classiques
- Pages de relecture
- Référence du DSL
- Vérifier son jeu
- Ce que prouve le solveur
- Options du solveur
- Playtests
- Remix
- Speedrun pour les auteurs
- La fin scellée
- Modèle de production
- Jeux d'exemple
- Travailler avec une IA
- Construire et publier un jeu
- Publier sur GitHub Pages
- Le jeu statique sur Clever Cloud
- Autres hébergeurs statiques
- Sous-chemin, cache et service worker, déploiement incomplet, retour arrière
- Tester sur un téléphone en réseau local
Studio local (24)
- Le Studio local : présentation et lancement
- Modifier une salle
- Placement et scène
- Aperçu, application, annulation
- Storyboard
- Assets et découpe
- Vérifier : validateur, solveur, chemin critique, chaleur, santé, couverture
- Captures avant et après
- Diff sémantique
- Jouer et rejouer une session
- Explication des règles
- Langue et objectifs
- Voix et matrice héros × langues
- Carte
- Notes
- Remix dans le Studio
- Musique
- L'Assistant : votre propre clé
- Mode démo et studio-apply
- Sécurité en local et en réseau local
- API du Studio
- MCP local : configurer chaque client
- Outils MCP
- Dépannage du Studio
Studio d'équipe (21)
- Ce qui tourne où
- Concepts : révision, transaction, pan, bail, aperçu, build
- Débuter comme dev invité
- Travailler ensemble au quotidien
- Rôles et actions : la matrice complète
- Invitations
- Gérer les membres
- Écriture refusée sur le Studio hébergé : révision de base périmée (409)
- Écriture refusée sur le Studio hébergé : pan verrouillé (423)
- Reprendre après un bail perdu, une déconnexion ou un aperçu périmé
- Commentaires
- Carte et diff sémantique
- Publier des builds
- MCP distant
- Le jeu dans Git
- Mettre à jour le moteur d'un jeu hébergé
- Assets hébergés
- La ligne de commande du serveur
- Routes de santé et de métriques
- L'essayer en local avec compose.yml
- Limites connues
Clever Cloud (23)
- Clever Cloud : vue d'ensemble, coût et prérequis
- Applications et add-ons
- Domaines et TLS
- Keycloak
- OIDC générique et GitLab
- Configuration
- Premier déploiement
- Sauvegardes
- RPO et RTO
- Exercice de restauration sur une installation vierge
- Redéploiements
- Mettre à jour le serveur et vérifier l'état après une migration
- Limites du retour arrière
- Supervision
- Sécurité
- Renouveler les clés
- Récupérer l'accès administrateur
- Changer de domaine ou de fournisseur OIDC
- Worker, PostgreSQL ou Cellar en panne
- Exporter le jeu et quitter l'installation
- Rétention
- Dépannage sur Clever Cloud
- Coûts et démontage
Reality Bridge et connecteurs (16)
- Le Reality Bridge : ce que c'est
- Démarrage rapide
- Garanties
- Installer et lancer le Bridge
- Sauvegarde et restauration
- Plusieurs tenants
- Signaux et manifeste
- La ligne de commande du Bridge
- Vue d'ensemble des connecteurs
- Connecteur email
- Connecteur Telnet
- Connecteur SSH
- Connecteur Open Badges
- Le SDK des connecteurs
- Sécurité : Biscuit et signatures
- Dépannage du Bridge et des connecteurs
Contribuer (25)
- Bienvenue
- Préparer son poste de développement
- La boucle de développement
- Avant une pull request
- Conventions
- Écrire la documentation
- Architecture
- Visite du code
- Frontières d'import
- Quels tests tournent quand
- Tests de mutation
- Le cliquet de couverture
- La référence de qualité
- La CI expliquée
- Passes de terrain
- Mesures de performance
- Publier une release
- Paquets npm
- Décisions et ADR
- Gouvernance
- Pull requests des bots
- Contribuer avec des agents IA
- Politique de sécurité
- Code de conduite
- Licences et crédits