
# 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:

```bash
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:

```bash
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](https://github.com/inline0/termbridge/issues/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.

```bash
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:

```bash
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](https://termbridge.inline0.dev/nl/docs/sandboxes/coding-agents) 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:

```bash
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:

```bash
export TERMBRIDGE_SANDBOX_DELETE_ON_EXIT=true
```

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

```bash
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](https://github.com/inline0/termbridge/issues/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.
