
# Daytona

Daytona lader Termbridge køre din terminal og forhåndsvisning i en cloudsandbox. Brug det, når du ønsker et miljø, der kan genskabes, en cloudforhåndsvisning eller at lade din bærbare være inaktiv.

## Krav

- En Daytona API-nøgle
- Et repository URL, som sandboxen kan klone
- Git-legitimationsoplysninger, hvis repositoryet er privat

## Hurtig start

Indstil backend til Daytona, og angiv repositorykonfigurationen:

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

Kør derefter Termbridge som sædvanligt:

```bash
npx termbridge
```

Angiv altid `TERMBRIDGE_SANDBOX_REPO` (eller `--sandbox-repo`). Hvis den mangler, bruger Termbridge i øjeblikket et indbygget standardrepository, der ikke er offentligt tilgængeligt, så sandboxen oprettes, men kloningen mislykkes ([#2](https://github.com/inline0/termbridge/issues/2)).

## Daytona-forbindelse

| Variabel | Formål |
| --- | --- |
| `TERMBRIDGE_DAYTONA_API_KEY` | Din Daytona API-nøgle |
| `TERMBRIDGE_DAYTONA_API_URL` | API-slutpunkt (standard `https://app.daytona.io/api`) |
| `TERMBRIDGE_DAYTONA_TARGET` | Målregion for Daytona (valgfri) |

Disse sendes til Daytona-SDK'et. Hvis en af dem ikke er angivet, bruger SDK'et sin egen `DAYTONA_API_KEY`-, `DAYTONA_API_URL`- eller `DAYTONA_TARGET`-variabel som reserve.

## Direkte sandboxtilstand (uden tunnel)

Direkte tilstand kører Termbridge-serveren i sandboxen og springer helt over Cloudflare. Delingslinket URL er forhåndsvisningslinket Daytona til serveren i sandboxen.

```bash
export TERMBRIDGE_BACKEND=sandbox-daytona
export TERMBRIDGE_SANDBOX_DIRECT=true
export TERMBRIDGE_SANDBOX_SERVER_PORT=8080
```

`TERMBRIDGE_SANDBOX_SERVER_PORT` (eller `--port`) bruger som standard `8080`. Direkte tilstand opretter en offentlig sandbox, medmindre du angiver `TERMBRIDGE_SANDBOX_PUBLIC=false`, og UI skjuler terminalvælgeren.

Du kan stadig aktivere forhåndsvisning ved at angive `TERMBRIDGE_SANDBOX_PREVIEW_PORT`; i direkte tilstand videresendes den som serverens `--proxy`-port.

## Kloning af repository

Termbridge opretter en sandbox og kloner dit repository til sandboxens arbejdsmappe.

Brug disse indstillinger:

| Variabel | Formål |
| --- | --- |
| `TERMBRIDGE_SANDBOX_REPO` | Repositoryets URL, der skal klones (angiv den altid, se hurtigstarten) |
| `TERMBRIDGE_SANDBOX_BRANCH` | Branch, der skal tjekkes ud (valgfri) |
| `TERMBRIDGE_SANDBOX_PATH` | Sti til repositoryet i sandboxen (valgfri) |
| `TERMBRIDGE_SANDBOX_NAME` | Sandboxnavn (valgfrit, standard `termbridge-<random hex>`) |

Hvis `TERMBRIDGE_SANDBOX_PATH` ikke er angivet, udleder Termbridge værdien fra repositoryets navn.

## Private repositories

Angiv Git-legitimationsoplysninger ved kloning af private repositories:

```bash
export TERMBRIDGE_SANDBOX_GIT_USERNAME=your_github_username
export TERMBRIDGE_SANDBOX_GIT_TOKEN=your_github_token
```

`TERMBRIDGE_SANDBOX_GIT_PASSWORD` understøttes også og tilsidesætter tokenet, hvis den er angivet.

## Kodeagenter

Termbridge kan installere kodeagenter i sandboxen og synkronisere din lokale godkendelse, så de er klar med det samme.

Se vejledningen [Kodeagenter](https://termbridge.inline0.dev/da/docs/sandboxes/coding-agents) for den fulde opsætning, automatisk tilstand og sikkerhedsoplysninger.

## Forhåndsvisningstilstand

Angiv `TERMBRIDGE_SANDBOX_PREVIEW_PORT` til den port, din udviklingsserver bruger i sandboxen, for at vise forhåndsvisningen.

For Vite skal du sørge for at binde til alle grænseflader:

```bash
npm run dev -- --host 0.0.0.0 --port 5173
```

Termbridge henter forhåndsvisningslinket Daytona og videresender det gennem Termbridge-serveren, så forhåndsvisningen indlæses i UI.

## Offentlige og private sandboxes

| Variabel | Funktion |
| --- | --- |
| `TERMBRIDGE_SANDBOX_PUBLIC=true` | Opretter en offentlig sandbox |
| `TERMBRIDGE_SANDBOX_PUBLIC=false` | Opretter en privat sandbox |

Når variablen ikke er angivet, er sandboxes private, undtagen i direkte tilstand, hvor de er offentlige.

For private sandboxes videresender Termbridge automatisk forhåndsvisningstokenet, når forhåndsvisningen videresendes.

## Oprydning og livscyklus

Sådan sletter du sandboxes, når Termbridge afsluttes:

```bash
export TERMBRIDGE_SANDBOX_DELETE_ON_EXIT=true
```

Brug et præfiks til kortvarige test-sandboxes:

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

Det holder sandboxforbruget under kontrol og forebygger problemer med diskkvoter.

## CLI-flag

Du kan også konfigurere Daytona via flag. Et flag har forrang frem for den tilsvarende miljøvariabel.

| Flag | Miljøvariabel | Formål |
| --- | --- | --- |
| `--backend sandbox-daytona` | `TERMBRIDGE_BACKEND` | Brug Daytona-backend |
| `--sandbox-repo <url>` | `TERMBRIDGE_SANDBOX_REPO` | Repositoryets URL |
| `--sandbox-branch <branch>` | `TERMBRIDGE_SANDBOX_BRANCH` | Branch |
| `--sandbox-path <path>` | `TERMBRIDGE_SANDBOX_PATH` | Repositorysti i sandboxen |
| `--sandbox-name <name>` | `TERMBRIDGE_SANDBOX_NAME` | Sandboxnavn |
| `--sandbox-preview-port <port>` | `TERMBRIDGE_SANDBOX_PREVIEW_PORT` | Forhåndsvisningsport |
| `--sandbox-public` | `TERMBRIDGE_SANDBOX_PUBLIC=true` | Opret en offentlig sandbox |
| `--sandbox-direct` | `TERMBRIDGE_SANDBOX_DIRECT=true` | Kør serveren i sandboxen (uden tunnel) |

Der findes ikke et flag for en privat sandbox; brug `TERMBRIDGE_SANDBOX_PUBLIC=false`. Det indbyggede output fra `termbridge --help` viser stadig `--daytona-*`-navne og `--backend daytona`, som afvises ([#1](https://github.com/inline0/termbridge/issues/1)).

## Fejlfinding

**Forhåndsvisningen er tom**
- Sørg for, at udviklingsserveren kører i sandboxen.
- Brug `--host 0.0.0.0`, så der er adgang til forhåndsvisningsporten.
- Bekræft, at `TERMBRIDGE_SANDBOX_PREVIEW_PORT` svarer til udviklingsserverens port.

**Oprettelse af sandbox mislykkes med kvotefejl**
- Slet gamle sandboxes i Daytona-dashboardet.
- Brug `TERMBRIDGE_SANDBOX_DELETE_ON_EXIT=true` til kortvarige sessioner.

**Kloning af repository mislykkes**
- Kontrollér repositoryets URL, branch og legitimationsoplysninger.
- Sørg for, at Git-tokenet har læseadgang til repositoryet.
