Skip to content

FR Clever Applications Et Addons

wanoo edited this page Oct 23, 2026 · 1 revision

Applications et add-ons

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 CI studioHosted ; 3 fichiers de tests · passes humaines : studio-hosted pas faite (#149), studio-collab pas faite (#150), studio-preview pas faite (#166), studio-assets-hosted pas faite (#167), studio-mcp-remote pas faite (#196), studio-oidc-generic pas 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.

Ce que vous obtenez

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

Contexte et versions

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

Prérequis

  • Une organisation Clever Cloud, et clever-tools installé 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.

Où lancer les commandes

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.

Étapes

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

  1. 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.bucket de la configuration (Configuration).
  1. Les deux applications se construisent depuis la racine du dépôt : laissez APP_FOLDER vide. 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
  1. clever deploy et clever ssh agissent sur une application liée dans le dossier d’où on les lance (clever-tools 4 n’a pas de --app pour deploy). 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

Dimensionner PostgreSQL pour le chevauchement d’un redéploiement

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

Résultat attendu, et comment le vérifier

  • clever applications (dans le dossier du dépôt) liste les deux alias.

  • clever addon liste les deux add-ons ; clever service --app my-game-studio les montre liés à l’application studio, et la même commande pour le worker n’en montre aucun.

  • clever env --app my-game-studio contient POSTGRESQL_ADDON_URI et CELLAR_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_]*='

Erreurs fréquentes

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)

Fichiers ou données modifiés

  • .clever.json dans 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.

Reprise ou retour arrière

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

Références


Modifier la source de cette page · Signaler une erreur

Accueil

Index (6)
Démarrer (6)
Jouer (9)
Installer (17)
Créer un jeu (55)
Moteur (4)
Studio local (24)
Studio d'équipe (21)
Clever Cloud (23)
Reality Bridge et connecteurs (16)
Contribuer (25)
Référence (7)

Clone this wiki locally