Aller au contenu

Daytona

Daytona permet à Termbridge d'exécuter votre terminal et votre aperçu dans un environnement isolé cloud. Utilisez cette option pour disposer d'un environnement reproductible, d'un aperçu cloud ou pour laisser votre ordinateur portable au repos.

Prérequis

  • Une clé Daytona API
  • Un dépôt URL que l'environnement isolé peut cloner
  • Des identifiants Git si le dépôt est privé

Démarrage rapide

Définissez le backend sur Daytona et fournissez la configuration du dépôt :

Shell
export TERMBRIDGE_BACKEND=sandbox-daytona
export TERMBRIDGE_DAYTONA_API_KEY=your_key
export TERMBRIDGE_SANDBOX_REPO=https://github.com/you/your-repo.git
export TERMBRIDGE_SANDBOX_BRANCH=main
export TERMBRIDGE_SANDBOX_PATH=your-repo
export TERMBRIDGE_SANDBOX_NAME=termbridge-sandbox
export TERMBRIDGE_SANDBOX_PUBLIC=true
export TERMBRIDGE_SANDBOX_PREVIEW_PORT=5173
export TERMBRIDGE_SANDBOX_DELETE_ON_EXIT=true

Exécutez ensuite Termbridge comme d'habitude :

Shell
npx termbridge

Définissez toujours TERMBRIDGE_SANDBOX_REPO (ou --sandbox-repo). Si cette valeur manque, Termbridge utilise actuellement un dépôt intégré par défaut qui n'est pas accessible au public : l'environnement isolé est créé, mais le clonage échoue (#2).

Connexion à Daytona

Variable Rôle
TERMBRIDGE_DAYTONA_API_KEY Votre clé Daytona API
TERMBRIDGE_DAYTONA_API_URL Point de terminaison API (par défaut https://app.daytona.io/api)
TERMBRIDGE_DAYTONA_TARGET Région cible Daytona (facultatif)

Ces valeurs sont transmises au SDK Daytona. Si l'une d'elles n'est pas définie, le SDK utilise sa propre variable DAYTONA_API_KEY, DAYTONA_API_URL ou DAYTONA_TARGET.

Mode direct en environnement isolé (sans tunnel)

En mode direct, le serveur Termbridge s'exécute dans l'environnement isolé et Cloudflare est entièrement ignoré. Le URL de partage est le lien d'aperçu Daytona vers le serveur de l'environnement isolé.

Shell
export TERMBRIDGE_BACKEND=sandbox-daytona
export TERMBRIDGE_SANDBOX_DIRECT=true
export TERMBRIDGE_SANDBOX_SERVER_PORT=8080

TERMBRIDGE_SANDBOX_SERVER_PORT (ou --port) utilise 8080 par défaut. Le mode direct crée un environnement isolé public sauf si vous définissez TERMBRIDGE_SANDBOX_PUBLIC=false, et UI masque le sélecteur de terminaux.

Vous pouvez tout de même activer l'aperçu en définissant TERMBRIDGE_SANDBOX_PREVIEW_PORT ; en mode direct, cette valeur est transmise comme port --proxy du serveur.

Clonage du dépôt

Termbridge crée un environnement isolé et clone votre dépôt dans son répertoire de travail.

Utilisez ces paramètres :

Variable Fonction
TERMBRIDGE_SANDBOX_REPO Dépôt URL à cloner (à toujours définir, voir le démarrage rapide)
TERMBRIDGE_SANDBOX_BRANCH Branche à extraire (facultatif)
TERMBRIDGE_SANDBOX_PATH Chemin du dépôt dans le bac à sable (facultatif)
TERMBRIDGE_SANDBOX_NAME Nom du bac à sable (facultatif, vaut termbridge-<random hex> par défaut)

Si TERMBRIDGE_SANDBOX_PATH n'est pas défini, Termbridge le déduit du nom du dépôt.

Dépôts privés

Fournissez les identifiants git lors du clonage de dépôts privés :

Shell
export TERMBRIDGE_SANDBOX_GIT_USERNAME=your_github_username
export TERMBRIDGE_SANDBOX_GIT_TOKEN=your_github_token

TERMBRIDGE_SANDBOX_GIT_PASSWORD est également pris en charge et remplace le jeton s'il est défini.

Agents de codage

Termbridge peut installer des agents de codage dans le bac à sable et synchroniser votre authentification locale afin qu'ils soient immédiatement prêts.

Consultez le guide Agents de codage pour connaître la configuration complète, le mode automatique et les détails de sécurité.

Mode aperçu

Pour afficher la vue d'aperçu, définissez TERMBRIDGE_SANDBOX_PREVIEW_PORT sur le port utilisé par votre serveur de développement dans le bac à sable.

Pour Vite, veillez à écouter sur toutes les interfaces :

Shell
npm run dev -- --host 0.0.0.0 --port 5173

Termbridge récupère le lien d'aperçu de Daytona et le relaie via le serveur Termbridge afin que l'aperçu s'affiche dans le UI.

Bacs à sable publics ou privés

Variable Fonction
TERMBRIDGE_SANDBOX_PUBLIC=true Crée un bac à sable public
TERMBRIDGE_SANDBOX_PUBLIC=false Crée un bac à sable privé

Lorsque cette variable n'est pas définie, les bacs à sable sont privés, sauf en mode direct, où ils sont publics.

Pour les bacs à sable privés, Termbridge transmet automatiquement le jeton d'aperçu lors du relais de l'aperçu.

Nettoyage et cycle de vie

Pour supprimer les bacs à sable à la fermeture de Termbridge :

Shell
export TERMBRIDGE_SANDBOX_DELETE_ON_EXIT=true

Pour les bacs à sable de courte durée ou de test, utilisez un préfixe :

Shell
export TERMBRIDGE_SANDBOX_NAME=termbridge-test-$(date +%s)
export TERMBRIDGE_SANDBOX_DELETE_ON_EXIT=true

Cela permet de maîtriser l'utilisation des bacs à sable et d'éviter les problèmes de quota disque.

Options de CLI

Vous pouvez également configurer Daytona avec des options. Une option a priorité sur la variable d'environnement correspondante.

Option Variable d'environnement Fonction
--backend sandbox-daytona TERMBRIDGE_BACKEND Utiliser le moteur Daytona
--sandbox-repo <url> TERMBRIDGE_SANDBOX_REPO Dépôt URL
--sandbox-branch <branch> TERMBRIDGE_SANDBOX_BRANCH Branche
--sandbox-path <path> TERMBRIDGE_SANDBOX_PATH Chemin du dépôt dans le bac à sable
--sandbox-name <name> TERMBRIDGE_SANDBOX_NAME Nom du bac à sable
--sandbox-preview-port <port> TERMBRIDGE_SANDBOX_PREVIEW_PORT Port d'aperçu
--sandbox-public TERMBRIDGE_SANDBOX_PUBLIC=true Créer un bac à sable public
--sandbox-direct TERMBRIDGE_SANDBOX_DIRECT=true Exécuter le serveur dans le bac à sable (sans tunnel)

Il n'existe pas d'option pour un bac à sable privé ; utilisez TERMBRIDGE_SANDBOX_PUBLIC=false. La sortie intégrée de termbridge --help affiche toujours les noms --daytona-* et --backend daytona, qui sont refusés (#1).

Dépannage

La vue d'aperçu est vide

  • Vérifiez que le serveur de développement s'exécute dans le bac à sable.
  • Utilisez --host 0.0.0.0 pour que le port d'aperçu soit accessible.
  • Vérifiez que TERMBRIDGE_SANDBOX_PREVIEW_PORT correspond au port du serveur de développement.

La création du bac à sable échoue avec des erreurs de quota

  • Supprimez les anciens bacs à sable dans le tableau de bord Daytona.
  • Utilisez TERMBRIDGE_SANDBOX_DELETE_ON_EXIT=true pour les sessions de courte durée.

Le clonage du dépôt échoue

  • Vérifiez le dépôt URL, la branche et les identifiants.
  • Vérifiez que le jeton Git dispose d'un accès en lecture au dépôt.