Repository navigation
FR Clever Applications Et Addons
English · Type : procédure · Public : administrateur · Contexte : Studio hébergé · Statut : prête · S'applique depuis : 4.2.3
Le Studio Server (Studio d'équipe hébergé) · contrat : expérimental · vérifié par la CI (matrice de support de la 4.4.0, 2026-10-23) : Postgres, S3 et Keycloak en CI ; Chromium et Firefox (job studio-hosted) ; WebKit sous macOS, à la main seulement · vérifications automatiques : jobs
studio-hosted,studio-install-smoke; plan de CIstudioHosted; 3 fichiers de tests · passes humaines :studio-hostedpas faite (#149),studio-collabpas faite (#150),studio-previewpas faite (#166),studio-assets-hostedpas faite (#167),studio-mcp-remotepas faite (#196),studio-oidc-genericpas faite (#197) · limites connues : aucune listée sur cette page
La première étape d’un Studio hébergé sur Clever Cloud : les deux applications Node.js, les add-ons PostgreSQL et
Cellar, le bucket, et leurs liens, avec clever-tools.
Deux applications Node.js, my-game-studio et my-game-worker, liées toutes deux au dossier de votre dépôt du moteur
sous un alias ; un add-on PostgreSQL et un add-on Cellar avec un bucket, liés à l’application studio seulement ;
l’application studio tenue à une seule instance. Rien n’est encore déployé.
- Un Studio hébergé (le Studio Server) sur Clever Cloud, déployé depuis le dépôt du moteur. À partir de la 4.2.3 (le hook de build du worker est arrivé en 4.2.2, la sauvegarde quotidienne en 4.2.3).
- Vérifié sur : non vérifié sur une installation réelle pour cette page. Le déploiement de référence du 19 octobre 2026 a tourné sur des applications et des add-ons de ce genre (deux applications Node.js de taille XS, PostgreSQL DEV, Cellar S), mais ils avaient été créés pour le spike S le 17 octobre 2026 puis réutilisés ; personne n’a rejoué les commandes de cette page depuis une organisation vide.
- Une organisation Clever Cloud, et
clever-toolsinstallé et connecté (clever login). - Le dépôt du moteur cloné sur votre machine, à la version que vous allez déployer.
- La vue d’ensemble, pour savoir à quoi sert chaque partie.
Sur votre machine, dans le dossier du dépôt du moteur : clever link y écrit .clever.json, et clever deploy
poussera ensuite le commit de ce dossier. Tenez .clever.json hors de Git.
-
Créez les deux applications et les deux add-ons, liez les add-ons à l’application studio seulement, et tenez le studio à une instance :
# sur votre machine, dans le dépôt du moteur clever create --type node my-game-studio clever create --type node my-game-worker clever addon create postgresql-addon my-game-pg --plan dev # 5 connexions : juste (le serveur en garde 4) ; plus pour une équipe clever addon create cellar-addon my-game-cellar clever service link-addon my-game-pg --app my-game-studio clever service link-addon my-game-cellar --app my-game-studio clever scale --min-instances 1 --max-instances 1 --app my-game-studio
Ne liez jamais les add-ons au worker. Le worker ne détient ni mot de passe, ni clé, ni accès à la base : il ne lit et n’écrit que par les URL présignées qu’un job lui donne (ADR 0028).
- Créez le bucket dans Cellar, avec sa console ou n’importe quel outil S3 (les identifiants de l’add-on Cellar). Son
nom va dans le
blobs.bucketde la configuration (Configuration).
-
Les deux applications se construisent depuis la racine du dépôt : laissez
APP_FOLDERvide. Une application qui a porté un autre projet peut encore en avoir un :# sur votre machine, dans le dépôt du moteur clever env rm APP_FOLDER --app my-game-studio clever env rm APP_FOLDER --app my-game-worker
-
clever deployetclever sshagissent sur une application liée dans le dossier d’où on les lance (clever-tools 4 n’a pas de--apppourdeploy). Liez les deux une fois, chacune sous un alias :# sur votre machine, dans le dépôt du moteur clever link <studio-app-id> --alias my-game-studio clever link <worker-app-id> --alias my-game-worker
Un redéploiement démarre la nouvelle instance pendant que l’ancienne sert encore, plusieurs minutes durant (Redéploiements). Les deux tiennent des connexions pendant ce temps : deux fois le nombre habituel. Le plan DEV permet 5 connexions et le serveur garde un pool de 4 : un redéploiement le dépasse.
Mesure ·
dev-plan-connectionsSur le plan DEV, chaque redéploiement a fait échouer le travail de fond des instances sur « too many connections » (leases-read-failed,reconcile-failed,ship-failed), et une écriture servie par l’ancienne instance a reçu un 500 (« too many connections for role … ») avant de passer au réessai. Le travail de fond a repris seul.
- date: 2026-10-19
- version: 4.2.2
- volume: trois redéploiements de l’application studio, une sonde qui écrit une note toutes les 3 s
- conditions: organisation Clever Cloud de test, région par ; application studio XS, une instance ; PostgreSQL plan DEV (5 connexions) ; moteur aux commits c66fbf56 puis dd66b38d sur main avant le tag 4.2.3 (package.json disait 4.2.2)
- source: QUALIF-4.2.3-REFERENCE.md §5 et §5 bis
Pour un déploiement dont on se sert, prenez un plan PostgreSQL avec plus de connexions que DEV. Ce projet n’a pas
mesuré quel plan suffit : comptez environ 4 connexions par instance, deux instances pendant un redéploiement, plus
celles que vous ouvrez vous-même (psql ; un exercice de restauration utilise son propre add-on).
-
clever applications(dans le dossier du dépôt) liste les deux alias. -
clever addonliste les deux add-ons ;clever service --app my-game-studioles montre liés à l’application studio, et la même commande pour le worker n’en montre aucun. -
clever env --app my-game-studiocontientPOSTGRESQL_ADDON_URIetCELLAR_ADDON_KEY_ID. Cette commande affiche les valeurs, y compris celles sur plusieurs lignes : filtrez-la sur les noms avant de la montrer ou de la coller où que ce soit. Ce filtre ne garde que ce qui précède le premier=des lignes qui commencent par un nom de variable :# sur votre machine, dans le dépôt du moteur clever env --app my-game-studio | grep -oE '^[A-Z][A-Z0-9_]*='
| Symptôme | Cause | Correction |
|---|---|---|
clever deploy déploie la mauvaise application, ou demande laquelle |
Plusieurs applications liées, aucun alias donné | clever deploy --alias my-game-studio |
Le build cherche un package.json dans un sous-dossier |
Un APP_FOLDER resté d’un autre projet |
clever env rm APP_FOLDER sur cette application |
Le worker a POSTGRESQL_ADDON_URI
|
Un add-on lié au worker | clever service unlink-addon <addon-id> --app my-game-worker |
| « too many connections » dans les journaux pendant un déploiement | Plan PostgreSQL DEV | Un plan plus grand (plus haut) |
-
.clever.jsondans le dossier du dépôt (les liens et les alias) : tenez-le hors de Git. - Chez Clever Cloud : deux applications, deux add-ons, un bucket. Ils sont facturés dès leur création.
Rien ne contient encore de données. Supprimez ce que vous avez créé avec clever addon delete et clever delete
(Coûts et démontage).
- Les variables que les add-ons injectent :
POSTGRESQL_ADDON_URI,CELLAR_ADDON_KEY_ID,CELLAR_ADDON_KEY_SECRET,APP_FOLDER. - Ensuite : Domaines et TLS, puis Configuration.
- Les mesures :
docs/dev/QUALIF-4.2.3-REFERENCE.md; le runtime :docs/dev/SPIKE-4.2.1-CLEVER.md.
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