
# Daytona

Daytona låter Termbridge köra terminalen och förhandsgranskningen i en molnsandlåda. Använd detta när du vill ha en reproducerbar miljö, en förhandsgranskning i molnet eller låta din bärbara dator vara inaktiv.

## Krav

- En nyckel för Daytona API
- Ett kodförråd URL som sandlådan kan klona
- Git-autentiseringsuppgifter om kodförrådet är privat

## Snabbstart

Ange backend till Daytona och konfigurera kodförrådet:

```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 sedan Termbridge som vanligt:

```bash
npx termbridge
```

Ange alltid `TERMBRIDGE_SANDBOX_REPO` (eller `--sandbox-repo`). Om värdet saknas använder Termbridge för närvarande ett inbyggt standardkodförråd som inte är offentligt tillgängligt. Sandlådan skapas då, men kloningen misslyckas ([#2](https://github.com/inline0/termbridge/issues/2)).

## Daytona-anslutning

| Variabel | Syfte |
| --- | --- |
| `TERMBRIDGE_DAYTONA_API_KEY` | Din Daytona-nyckel för API |
| `TERMBRIDGE_DAYTONA_API_URL` | API-slutpunkt (standard: `https://app.daytona.io/api`) |
| `TERMBRIDGE_DAYTONA_TARGET` | Målregion för Daytona (valfritt) |

Dessa skickas till SDK:t för Daytona. Om någon saknas använder SDK:t sin egen variabel för `DAYTONA_API_KEY`, `DAYTONA_API_URL` eller `DAYTONA_TARGET` som standard.

## Direkt sandlådeläge (utan tunnel)

I direktläget körs servern Termbridge i sandlådan, utan Cloudflare. Delnings-URL är Daytona-förhandsgranskningslänken till servern i sandlådan.

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

`TERMBRIDGE_SANDBOX_SERVER_PORT` (eller `--port`) använder som standard `8080`. Direktläget skapar en offentlig sandlåda om du inte anger `TERMBRIDGE_SANDBOX_PUBLIC=false`, och UI döljer terminalväxlaren.

Du kan fortfarande aktivera förhandsgranskning genom att ange `TERMBRIDGE_SANDBOX_PREVIEW_PORT`; i direktläget vidarebefordras värdet som serverns `--proxy`-port.

## Klona kodförråd

Termbridge skapar en sandlåda och klonar ditt kodförråd till sandlådans arbetskatalog.

Använd dessa inställningar:

| Variabel | Syfte |
| --- | --- |
| `TERMBRIDGE_SANDBOX_REPO` | Kodförrådets URL att klona (ange alltid detta, se snabbstarten) |
| `TERMBRIDGE_SANDBOX_BRANCH` | Gren att checka ut (valfritt) |
| `TERMBRIDGE_SANDBOX_PATH` | Sökväg till kodförrådet i sandlådan (valfritt) |
| `TERMBRIDGE_SANDBOX_NAME` | Sandlådenamn (valfritt, standard: `termbridge-<random hex>`) |

Om `TERMBRIDGE_SANDBOX_PATH` inte har angetts härleder Termbridge värdet från kodförrådets namn.

## Privata kodförråd

Ange git-autentiseringsuppgifter när du klonar privata kodförråd:

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

Även `TERMBRIDGE_SANDBOX_GIT_PASSWORD` stöds och åsidosätter tokenen om den anges.

## Kodningsagenter

Termbridge kan installera kodningsagenter i sandlådan och synkronisera din lokala autentisering så att de är klara att använda direkt.

Se guiden [Kodningsagenter](https://termbridge.inline0.dev/sv/docs/sandboxes/coding-agents) för fullständig konfiguration, automatiskt läge och säkerhetsinformation.

## Förhandsgranskningsläge

Ange `TERMBRIDGE_SANDBOX_PREVIEW_PORT` till porten som utvecklingsservern använder i sandlådan för att visa förhandsgranskningen.

För Vite ska du se till att binda till alla gränssnitt:

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

Termbridge hämtar förhandsgranskningslänken Daytona och vidarebefordrar den via servern Termbridge så att förhandsgranskningen visas i UI.

## Offentliga och privata sandlådor

| Variabel | Vad den gör |
| --- | --- |
| `TERMBRIDGE_SANDBOX_PUBLIC=true` | Skapar en offentlig sandlåda |
| `TERMBRIDGE_SANDBOX_PUBLIC=false` | Skapar en privat sandlåda |

Om variabeln inte har angetts är sandlådorna privata, förutom i direktläget där de är offentliga.

För privata sandlådor vidarebefordrar Termbridge automatiskt förhandsgranskningstokenen när förhandsgranskningen proxas.

## Rensning och livscykel

Så här tar du bort sandlådor när Termbridge avslutas:

```bash
export TERMBRIDGE_SANDBOX_DELETE_ON_EXIT=true
```

Använd ett prefix för kortlivade sandlådor eller testsandlådor:

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

Det håller sandlådeanvändningen under kontroll och förebygger problem med diskutrymmet.

## Flaggan CLI

Du kan även konfigurera Daytona med flaggor. En flagga har företräde framför motsvarande miljövariabel.

| Flagga | Miljövariabel | Syfte |
| --- | --- | --- |
| `--backend sandbox-daytona` | `TERMBRIDGE_BACKEND` | Använd backend för Daytona |
| `--sandbox-repo <url>` | `TERMBRIDGE_SANDBOX_REPO` | Kodförrådets URL |
| `--sandbox-branch <branch>` | `TERMBRIDGE_SANDBOX_BRANCH` | Gren |
| `--sandbox-path <path>` | `TERMBRIDGE_SANDBOX_PATH` | Sökväg till kodförrådet i sandlådan |
| `--sandbox-name <name>` | `TERMBRIDGE_SANDBOX_NAME` | Sandlådenamn |
| `--sandbox-preview-port <port>` | `TERMBRIDGE_SANDBOX_PREVIEW_PORT` | Förhandsgranskningsport |
| `--sandbox-public` | `TERMBRIDGE_SANDBOX_PUBLIC=true` | Skapa en offentlig sandlåda |
| `--sandbox-direct` | `TERMBRIDGE_SANDBOX_DIRECT=true` | Kör servern i sandlådan (utan tunnel) |

Det finns ingen flagga för privata sandlådor; använd `TERMBRIDGE_SANDBOX_PUBLIC=false`. Den inbyggda utdatafunktionen `termbridge --help` visar fortfarande namnen `--daytona-*` och `--backend daytona`, som avvisas ([#1](https://github.com/inline0/termbridge/issues/1)).

## Felsökning

**Förhandsgranskningen är tom**
- Kontrollera att utvecklingsservern körs i sandlådan.
- Använd `--host 0.0.0.0` så att förhandsgranskningsporten går att nå.
- Kontrollera att `TERMBRIDGE_SANDBOX_PREVIEW_PORT` motsvarar utvecklingsserverns port.

**Sandlådan kan inte skapas på grund av kvotfel**
- Ta bort gamla sandlådor i kontrollpanelen för Daytona.
- Använd `TERMBRIDGE_SANDBOX_DELETE_ON_EXIT=true` för kortlivade sessioner.

**Det går inte att klona kodförrådet**
- Kontrollera kodförrådets URL, gren och autentiseringsuppgifter.
- Kontrollera att Git-tokenen har läsbehörighet till kodförrådet.
