Vai al contenuto

Daytona

Daytona consente a Termbridge di eseguire il terminale e l'anteprima in un sandbox cloud. Usalo per un ambiente riproducibile, un'anteprima cloud o per lasciare inattivo il portatile.

Requisiti

  • Una chiave Daytona API
  • Un repository URL che il sandbox possa clonare
  • Credenziali Git se il repository è privato

Avvio rapido

Imposta il backend su Daytona e fornisci la configurazione del repository:

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

Poi esegui Termbridge come al solito:

Shell
npx termbridge

Imposta sempre TERMBRIDGE_SANDBOX_REPO (o --sandbox-repo). Se manca, al momento Termbridge usa un repository predefinito integrato che non è accessibile pubblicamente: il sandbox viene creato, ma la clonazione non riesce (#2).

Connessione Daytona

Variabile Scopo
TERMBRIDGE_DAYTONA_API_KEY La tua chiave Daytona API
TERMBRIDGE_DAYTONA_API_URL Endpoint API (predefinito https://app.daytona.io/api)
TERMBRIDGE_DAYTONA_TARGET Regione di destinazione Daytona (facoltativa)

Questi valori vengono passati all'SDK Daytona. Se uno di essi non è impostato, l'SDK usa la propria variabile DAYTONA_API_KEY, DAYTONA_API_URL o DAYTONA_TARGET.

Modalità sandbox diretta (senza tunnel)

La modalità diretta esegue il server Termbridge nel sandbox e salta del tutto Cloudflare. Il link di condivisione URL è il link di anteprima Daytona al server nel sandbox.

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

Per impostazione predefinita, TERMBRIDGE_SANDBOX_SERVER_PORT (o --port) usa 8080. La modalità diretta crea un sandbox pubblico, a meno che non imposti TERMBRIDGE_SANDBOX_PUBLIC=false; inoltre UI nasconde il selettore di terminale.

Puoi comunque abilitare l'anteprima impostando TERMBRIDGE_SANDBOX_PREVIEW_PORT; in modalità diretta viene inoltrato come porta del server --proxy.

Clonazione del repository

Termbridge crea un sandbox e clona il tuo repository nella directory di lavoro del sandbox.

Usa queste impostazioni:

Variabile Scopo
TERMBRIDGE_SANDBOX_REPO URL del repository da clonare (impostarlo sempre, vedere la guida rapida)
TERMBRIDGE_SANDBOX_BRANCH Branch da selezionare (facoltativo)
TERMBRIDGE_SANDBOX_PATH Percorso del repository nella sandbox (facoltativo)
TERMBRIDGE_SANDBOX_NAME Nome della sandbox (facoltativo, predefinito: termbridge-<random hex>)

Se TERMBRIDGE_SANDBOX_PATH non è impostata, Termbridge la ricava dal nome del repository.

Repository privati

Fornite le credenziali git durante la clonazione di repository privati:

Shell
export TERMBRIDGE_SANDBOX_GIT_USERNAME=your_github_username
export TERMBRIDGE_SANDBOX_GIT_TOKEN=your_github_token

Anche TERMBRIDGE_SANDBOX_GIT_PASSWORD è supportata e, se impostata, sostituisce il token.

Agenti di programmazione

Termbridge può installare agenti di programmazione nella sandbox e sincronizzare le vostre credenziali locali, così saranno subito pronti.

Consultate la guida Agenti di programmazione per la configurazione completa, la modalità automatica e i dettagli sulla sicurezza.

Modalità anteprima

Per mostrare la vista di anteprima, impostate TERMBRIDGE_SANDBOX_PREVIEW_PORT sulla porta usata dal server di sviluppo nella sandbox.

Per Vite, assicuratevi di associare il server a tutte le interfacce:

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

Termbridge recupera il link di anteprima di Daytona e lo inoltra tramite il server Termbridge, così l'anteprima viene caricata all'interno di UI.

Sandbox pubbliche e private

Variabile Funzione
TERMBRIDGE_SANDBOX_PUBLIC=true Crea una sandbox pubblica
TERMBRIDGE_SANDBOX_PUBLIC=false Crea una sandbox privata

Se la variabile non è impostata, le sandbox sono private, tranne in modalità diretta, in cui sono pubbliche.

Per le sandbox private, Termbridge inoltra automaticamente il token di anteprima quando inoltra l'anteprima.

Pulizia e ciclo di vita

Per eliminare le sandbox quando Termbridge termina:

Shell
export TERMBRIDGE_SANDBOX_DELETE_ON_EXIT=true

Per sandbox di breve durata o di test, usate un prefisso:

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

Questo mantiene sotto controllo l'uso delle sandbox ed evita problemi con la quota del disco.

Opzioni di CLI

Potete configurare Daytona anche tramite opzioni. Un'opzione ha la precedenza sulla variabile d'ambiente corrispondente.

Opzione Variabile d'ambiente Scopo
--backend sandbox-daytona TERMBRIDGE_BACKEND Usa il backend Daytona
--sandbox-repo <url> TERMBRIDGE_SANDBOX_REPO Repository URL
--sandbox-branch <branch> TERMBRIDGE_SANDBOX_BRANCH Branch
--sandbox-path <path> TERMBRIDGE_SANDBOX_PATH Percorso del repository nella sandbox
--sandbox-name <name> TERMBRIDGE_SANDBOX_NAME Nome della sandbox
--sandbox-preview-port <port> TERMBRIDGE_SANDBOX_PREVIEW_PORT Porta di anteprima
--sandbox-public TERMBRIDGE_SANDBOX_PUBLIC=true Crea una sandbox pubblica
--sandbox-direct TERMBRIDGE_SANDBOX_DIRECT=true Esegue il server nella sandbox (senza tunnel)

Non esiste un'opzione per una sandbox privata: usate TERMBRIDGE_SANDBOX_PUBLIC=false. L'output integrato di termbridge --help mostra comunque nomi --daytona-* e --backend daytona, che vengono rifiutati (#1).

Risoluzione dei problemi

La vista di anteprima è vuota

  • Assicuratevi che il server di sviluppo sia in esecuzione nella sandbox.
  • Usate --host 0.0.0.0 per rendere raggiungibile la porta di anteprima.
  • Verificate che TERMBRIDGE_SANDBOX_PREVIEW_PORT corrisponda alla porta del server di sviluppo.

La creazione della sandbox non riesce a causa di errori di quota

  • Eliminate le sandbox obsolete dal pannello di controllo Daytona.
  • Usate TERMBRIDGE_SANDBOX_DELETE_ON_EXIT=true per le sessioni di breve durata.

Clonazione del repository non riuscita

  • Verificate repository URL, branch e credenziali.
  • Assicuratevi che il token Git abbia accesso in lettura al repository.