Ga naar de inhoud

Daytona

Met Daytona kunt u uw terminal en preview uitvoeren in een cloudsandbox van Termbridge. Gebruik dit voor een reproduceerbare omgeving, een cloudpreview of om uw laptop inactief te houden.

Vereisten

  • Een Daytona-sleutel van API
  • Een repository URL die de sandbox kan klonen
  • Git-verificatiegegevens als de repository privé is

Snel aan de slag

Stel de backend in op Daytona en geef de repositoryconfiguratie op:

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

Voer vervolgens Termbridge zoals gebruikelijk uit:

Shell
npx termbridge

Stel altijd TERMBRIDGE_SANDBOX_REPO (of --sandbox-repo) in. Als deze ontbreekt, gebruikt Termbridge momenteel een ingebouwde standaardrepository die niet openbaar toegankelijk is. De sandbox wordt dan aangemaakt, maar het klonen mislukt (#2).

Daytona-verbinding

Variabele Doel
TERMBRIDGE_DAYTONA_API_KEY Uw Daytona-API-sleutel
TERMBRIDGE_DAYTONA_API_URL API-endpoint (standaard https://app.daytona.io/api)
TERMBRIDGE_DAYTONA_TARGET Doelregio van Daytona (optioneel)

Deze worden doorgegeven aan de Daytona-SDK. Als een ervan niet is ingesteld, gebruikt de SDK de bijbehorende eigen variabele: DAYTONA_API_KEY, DAYTONA_API_URL of DAYTONA_TARGET.

Directe sandboxmodus (zonder tunnel)

In de directe modus draait de Termbridge-server in de sandbox en wordt Cloudflare volledig overgeslagen. De deel-URL is de Daytona-previewlink naar de server in de sandbox.

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

TERMBRIDGE_SANDBOX_SERVER_PORT (of --port) is standaard ingesteld op 8080. In de directe modus wordt een openbare sandbox aangemaakt, tenzij u TERMBRIDGE_SANDBOX_PUBLIC=false instelt; met UI wordt de terminalwisselaar verborgen.

U kunt de preview nog steeds inschakelen door TERMBRIDGE_SANDBOX_PREVIEW_PORT in te stellen; in de directe modus wordt dit doorgegeven als de serverpoort van --proxy.

Repository klonen

Termbridge maakt een sandbox aan en kloont uw repository naar de werkmap van de sandbox.

Gebruik deze instellingen:

Variabele Doel
TERMBRIDGE_SANDBOX_REPO Repo URL om te clonen (stel dit altijd in, zie de snelstart)
TERMBRIDGE_SANDBOX_BRANCH Branch om uit te checken (optioneel)
TERMBRIDGE_SANDBOX_PATH Pad voor de repo in de sandbox (optioneel)
TERMBRIDGE_SANDBOX_NAME Sandboxnaam (optioneel, standaard termbridge-<random hex>)

Als TERMBRIDGE_SANDBOX_PATH niet is ingesteld, leidt Termbridge deze af van de reponnaam.

Privérepositories

Geef git-referenties op bij het clonen van private repositories:

Shell
export TERMBRIDGE_SANDBOX_GIT_USERNAME=your_github_username
export TERMBRIDGE_SANDBOX_GIT_TOKEN=your_github_token

TERMBRIDGE_SANDBOX_GIT_PASSWORD wordt ook ondersteund en overschrijft het token als deze is ingesteld.

Codeeragents

Termbridge kan codeeragents in de sandbox installeren en je lokale authenticatie synchroniseren, zodat ze meteen klaar zijn voor gebruik.

Zie de Handleiding voor codeeragents voor de volledige configuratie, de automatische modus en beveiligingsdetails.

Voorbeeldmodus

Stel TERMBRIDGE_SANDBOX_PREVIEW_PORT in op de poort die je ontwikkelserver in de sandbox gebruikt om de voorbeeldweergave te tonen.

Voor Vite moet je binden aan alle interfaces:

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

Termbridge haalt de Daytona-voorbeeldlink op en proxy't deze via de Termbridge-server, zodat het voorbeeld binnen de UI wordt geladen.

Openbare versus privé-sandboxes

Variabele Wat deze doet
TERMBRIDGE_SANDBOX_PUBLIC=true Maakt een openbare sandbox aan
TERMBRIDGE_SANDBOX_PUBLIC=false Maakt een privé-sandbox aan

Als de variabele niet is ingesteld, zijn sandboxes privé, behalve in de directe modus; daarin zijn ze openbaar.

Voor privé-sandboxes stuurt Termbridge het voorbeeldtoken automatisch door wanneer het voorbeeld wordt geproxied.

Opruimen en levenscyclus

Sandboxes verwijderen wanneer Termbridge wordt afgesloten:

Shell
export TERMBRIDGE_SANDBOX_DELETE_ON_EXIT=true

Gebruik voor sandboxes die kort bestaan of voor tests een prefix:

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

Zo blijft het sandboxgebruik beheersbaar en voorkom je problemen met de schijfruimtequota.

Vlaggen van CLI

Je kunt Daytona ook configureren met vlaggen. Een vlag heeft voorrang op de bijbehorende omgevingsvariabele.

Vlag Omgevingsvariabele Doel
--backend sandbox-daytona TERMBRIDGE_BACKEND De backend Daytona gebruiken
--sandbox-repo <url> TERMBRIDGE_SANDBOX_REPO Repo URL
--sandbox-branch <branch> TERMBRIDGE_SANDBOX_BRANCH Branch
--sandbox-path <path> TERMBRIDGE_SANDBOX_PATH Repopad in de sandbox
--sandbox-name <name> TERMBRIDGE_SANDBOX_NAME Sandboxnaam
--sandbox-preview-port <port> TERMBRIDGE_SANDBOX_PREVIEW_PORT Voorbeeldpoort
--sandbox-public TERMBRIDGE_SANDBOX_PUBLIC=true Een openbare sandbox aanmaken
--sandbox-direct TERMBRIDGE_SANDBOX_DIRECT=true De server in de sandbox uitvoeren (zonder tunnel)

Er is geen vlag voor een privé-sandbox; gebruik TERMBRIDGE_SANDBOX_PUBLIC=false. De ingebouwde uitvoer van termbridge --help toont nog steeds namen van --daytona-* en --backend daytona, die worden geweigerd (#1).

Problemen oplossen

Voorbeeldweergave is leeg

  • Controleer of de ontwikkelserver in de sandbox actief is.
  • Gebruik --host 0.0.0.0 zodat de voorbeeldpoort bereikbaar is.
  • Controleer of TERMBRIDGE_SANDBOX_PREVIEW_PORT overeenkomt met de poort van de ontwikkelserver.

Sandbox aanmaken mislukt door quota-fouten

  • Verwijder oude sandboxes in het Daytona-dashboard.
  • Gebruik TERMBRIDGE_SANDBOX_DELETE_ON_EXIT=true voor sessies van korte duur.

Repo clonen mislukt

  • Controleer repo URL, branch en inloggegevens.
  • Controleer of het Git-token leesrechten voor de repo heeft.