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:
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:
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.
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:
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:
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:
export TERMBRIDGE_SANDBOX_DELETE_ON_EXIT=true
Per sandbox di breve durata o di test, usate un prefisso:
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.0per rendere raggiungibile la porta di anteprima. - Verificate che
TERMBRIDGE_SANDBOX_PREVIEW_PORTcorrisponda 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=trueper 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.