
# Daytona

Daytonan avulla Termbridge voi suorittaa päätteesi ja esikatselun pilvihiekkalaatikossa. Käytä tätä, kun haluat toistettavan ympäristön, pilviesikatselun tai pitää kannettavan tietokoneesi joutilaana.

## Vaatimukset

- Daytona API-avain
- Säilö, jonka URL hiekkalaatikko voi kloonata
- Git tunnistetiedot, jos säilö on yksityinen

## Pika-aloitus

Aseta taustajärjestelmäksi Daytona ja anna tietovaraston määritykset:

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

Suorita sitten Termbridge tavalliseen tapaan:

```bash
npx termbridge
```

Aseta aina `TERMBRIDGE_SANDBOX_REPO` (tai `--sandbox-repo`). Jos arvoa ei ole, Termbridge käyttää tällä hetkellä sisäänrakennettua oletustietovarastoa, joka ei ole julkisesti saatavilla. Tällöin hiekkalaatikko luodaan, mutta kloonaus epäonnistuu ([#2](https://github.com/inline0/termbridge/issues/2)).

## Daytona-yhteys

| Muuttuja | Käyttötarkoitus |
| --- | --- |
| `TERMBRIDGE_DAYTONA_API_KEY` | Oma Daytona API -avaimesi |
| `TERMBRIDGE_DAYTONA_API_URL` | API-päätepiste (oletus `https://app.daytona.io/api`) |
| `TERMBRIDGE_DAYTONA_TARGET` | Daytona-kohdealue (valinnainen) |

Nämä välitetään Daytona-SDK:lle. Jos jokin niistä on määrittämättä, SDK käyttää omaa `DAYTONA_API_KEY`-, `DAYTONA_API_URL`- tai `DAYTONA_TARGET`-muuttujaansa.

## Suora hiekkalaatikkotila (ei tunnelia)

Suorassa tilassa Termbridge-palvelin toimii hiekkalaatikon sisällä, eikä Cloudflare-palvelua käytetä lainkaan. Jakamisen URL on hiekkalaatikon palvelimen Daytona-esikatselulinkki.

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

`TERMBRIDGE_SANDBOX_SERVER_PORT` (tai `--port`) käyttää oletusarvoisesti arvoa `8080`. Suorassa tilassa luodaan julkinen hiekkalaatikko, ellet aseta `TERMBRIDGE_SANDBOX_PUBLIC=false`-asetusta, ja UI piilottaa päätteen valitsimen.

Voit silti ottaa esikatselun käyttöön asettamalla `TERMBRIDGE_SANDBOX_PREVIEW_PORT`; suorassa tilassa se välitetään palvelimen `--proxy`-portiksi.

## Tietovaraston kloonaaminen

Termbridge luo hiekkalaatikon ja kloonaa tietovarastosi sen työhakemistoon.

Käytä näitä asetuksia:

| Muuttuja | Tarkoitus |
| --- | --- |
| `TERMBRIDGE_SANDBOX_REPO` | URL kloonattavaan repositorioon (aseta aina, katso pika-aloitus) |
| `TERMBRIDGE_SANDBOX_BRANCH` | Checkoutattava haara (valinnainen) |
| `TERMBRIDGE_SANDBOX_PATH` | Repositorion polku hiekkalaatikossa (valinnainen) |
| `TERMBRIDGE_SANDBOX_NAME` | Hiekkalaatikon nimi (valinnainen, oletusarvo on `termbridge-<random hex>`) |

Jos `TERMBRIDGE_SANDBOX_PATH`-muuttujaa ei ole asetettu, Termbridge päättelee sen repositorion nimestä.

## Yksityiset repositoriot

Anna git-tunnistetiedot yksityisiä repositorioita kloonattaessa:

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

`TERMBRIDGE_SANDBOX_GIT_PASSWORD` on myös tuettu, ja se ohittaa tokenin, jos se on asetettu.

## Koodausagentit

Termbridge voi asentaa koodausagentteja hiekkalaatikkoon ja synkronoida paikalliset todennustietosi, jotta ne ovat heti valmiina.

Katso [Koodausagentit](https://termbridge.inline0.dev/fi/docs/sandboxes/coding-agents)-oppaasta täydelliset määritys-, automaattitila- ja tietoturvaohjeet.

## Esikatselutila

Näytä esikatselunäkymä asettamalla `TERMBRIDGE_SANDBOX_PREVIEW_PORT` kehityspalvelimesi hiekkalaatikon sisällä käyttämään porttiin.

Varmista, että Vite on sidottu kaikkiin verkkoliittymiin:

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

Termbridge hakee esikatselulinkin Daytona ja välittää sen Termbridge-palvelimen kautta, jotta esikatselu latautuu UI-ympäristössä.

## Julkiset ja yksityiset hiekkalaatikot

| Muuttuja | Toiminto |
| --- | --- |
| `TERMBRIDGE_SANDBOX_PUBLIC=true` | Luo julkisen hiekkalaatikon |
| `TERMBRIDGE_SANDBOX_PUBLIC=false` | Luo yksityisen hiekkalaatikon |

Kun muuttujaa ei ole asetettu, hiekkalaatikot ovat yksityisiä, paitsi suorassa tilassa, jossa ne ovat julkisia.

Yksityisissä hiekkalaatikoissa Termbridge välittää esikatselutokenin automaattisesti esikatselua välittäessään.

## Siivous ja elinkaari

Poista hiekkalaatikot, kun Termbridge sulkeutuu:

```bash
export TERMBRIDGE_SANDBOX_DELETE_ON_EXIT=true
```

Käytä lyhytikäisissä tai testaukseen tarkoitetuissa hiekkalaatikoissa etuliitettä:

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

Näin hiekkalaatikoiden käyttö pysyy hallinnassa eikä levytilakiintiö aiheuta ongelmia.

## CLI-valitsimet

Voit määrittää Daytona myös valitsimilla. Valitsin ohittaa vastaavan ympäristömuuttujan.

| Valitsin | Ympäristömuuttuja | Tarkoitus |
| --- | --- | --- |
| `--backend sandbox-daytona` | `TERMBRIDGE_BACKEND` | Käytä Daytona-taustajärjestelmää |
| `--sandbox-repo <url>` | `TERMBRIDGE_SANDBOX_REPO` | Repositorion URL |
| `--sandbox-branch <branch>` | `TERMBRIDGE_SANDBOX_BRANCH` | Haara |
| `--sandbox-path <path>` | `TERMBRIDGE_SANDBOX_PATH` | Repositorion polku hiekkalaatikossa |
| `--sandbox-name <name>` | `TERMBRIDGE_SANDBOX_NAME` | Hiekkalaatikon nimi |
| `--sandbox-preview-port <port>` | `TERMBRIDGE_SANDBOX_PREVIEW_PORT` | Esikatseluportti |
| `--sandbox-public` | `TERMBRIDGE_SANDBOX_PUBLIC=true` | Luo julkinen hiekkalaatikko |
| `--sandbox-direct` | `TERMBRIDGE_SANDBOX_DIRECT=true` | Suorita palvelin hiekkalaatikon sisällä (ei tunnelia) |

Yksityiselle hiekkalaatikolle ei ole valitsinta; käytä `TERMBRIDGE_SANDBOX_PUBLIC=false`. Sisäänrakennettu `termbridge --help`-tuloste näyttää silti `--daytona-*`-nimiä ja `--backend daytona`-arvoja, jotka hylätään ([#1](https://github.com/inline0/termbridge/issues/1)).

## Vianmääritys

**Esikatselunäkymä on tyhjä**
- Varmista, että kehityspalvelin on käynnissä hiekkalaatikon sisällä.
- Käytä komentoa `--host 0.0.0.0`, jotta esikatseluporttiin pääsee käsiksi.
- Varmista, että `TERMBRIDGE_SANDBOX_PREVIEW_PORT` vastaa kehityspalvelimen porttia.

**Hiekkalaatikon luonti epäonnistuu kiintiövirheisiin**
- Poista vanhat hiekkalaatikot Daytona-hallintapaneelista.
- Käytä `TERMBRIDGE_SANDBOX_DELETE_ON_EXIT=true` lyhytkestoisissa istunnoissa.

**Repositorion kloonaus epäonnistuu**
- Tarkista repositorion URL, haara ja tunnistetiedot.
- Varmista, että tokenilla Git on repositorion lukuoikeus.
