Sandboxes

Vue d'ensemble

Ce qui s'exécute dans une sandbox, et comment chaque projet reste isolé des autres.

Une sandbox est l'environnement isolé qui fait tourner un projet. Elle est créée à la première ouverture du projet et contient tout ce dont celui-ci a besoin pour s'exécuter.

Ce qui s'exécute à l'intérieur

ComposantRôle
Votre applicationDémarrée depuis le script dev déclaré par votre projet
Éditeur de codeÉditeur complet sur les fichiers que le canvas affiche
TerminalAccès shell dans l'environnement
Point d'accès d'aperçuUne URL HTTPS privée servant votre application

Isolation

Chaque sandbox s'exécute dans son propre environnement, avec un noyau dédié et son propre espace de noms réseau. Les projets ne voient ni les processus, ni les fichiers, ni le trafic réseau des autres, et une sandbox ne peut pas atteindre les services internes de la plateforme — uniquement l'internet public et les points d'accès que votre application appelle.

Les fichiers de votre projet résident sur un stockage réseau persistant rattaché à l'environnement. Ils ne sont pas stockés sur la machine qui exécute la sandbox à un instant donné, ce qui permet de l'arrêter et de la relancer ailleurs sans rien perdre.

Déclarer ce qui doit tourner

Un projet décrit ses services dans un fichier evrygo.json à sa racine :

{
  "services": [
    { "name": "web", "command": "npm run dev", "port": 3000, "primary": true }
  ]
}
  • command s'exécute depuis la racine du projet.
  • port est le port sur lequel votre application écoute. Il est associé automatiquement à votre URL d'aperçu.
  • primary désigne le service que le canvas prévisualise lorsque plusieurs sont déclarés.

Les modifications de ce fichier sont prises en compte sans redémarrer la sandbox.

Limites de ressources

Les ressources sont allouées selon votre offre. Dans une sandbox, vous disposez d'une quantité fixe de mémoire, de vCPU et de disque ; dépasser le quota disque fait échouer les écritures plutôt que de perdre des données silencieusement. Consultez votre offre pour les valeurs exactes.

On this page