
# Daytona

Daytona îi permite lui Termbridge să ruleze terminalul și previzualizarea într-un sandbox cloud. Folosiți această opțiune pentru un mediu reproductibil, o previzualizare în cloud sau pentru a lăsa laptopul în repaus.

## Cerințe

- O cheie Daytona API
- Un depozit URL pe care sandbox-ul îl poate clona
- Date de autentificare Git, dacă depozitul este privat

## Pornire rapidă

Setați backend-ul la Daytona și furnizați configurația depozitului:

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

Apoi rulați Termbridge ca de obicei:

```bash
npx termbridge
```

Setați întotdeauna `TERMBRIDGE_SANDBOX_REPO` (sau `--sandbox-repo`). Dacă lipsește, Termbridge folosește momentan un depozit implicit încorporat, care nu este accesibil public; sandbox-ul este astfel creat, dar clonarea eșuează ([#2](https://github.com/inline0/termbridge/issues/2)).

## Conexiunea Daytona

| Variabilă | Scop |
| --- | --- |
| `TERMBRIDGE_DAYTONA_API_KEY` | Cheia dvs. Daytona API |
| `TERMBRIDGE_DAYTONA_API_URL` | Punctul final API (implicit `https://app.daytona.io/api`) |
| `TERMBRIDGE_DAYTONA_TARGET` | Regiunea țintă Daytona (opțională) |

Acestea sunt transmise către SDK-ul Daytona. Dacă una dintre ele nu este setată, SDK-ul folosește propria variabilă `DAYTONA_API_KEY`, `DAYTONA_API_URL` sau `DAYTONA_TARGET`.

## Modul sandbox direct (fără tunel)

Modul direct rulează serverul Termbridge în sandbox și omite complet Cloudflare. Linkul de partajare URL este linkul de previzualizare Daytona către serverul din sandbox.

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

`TERMBRIDGE_SANDBOX_SERVER_PORT` (sau `--port`) are valoarea implicită `8080`. Modul direct creează un sandbox public, cu excepția cazului în care setați `TERMBRIDGE_SANDBOX_PUBLIC=false`, iar UI ascunde selectorul de terminale.

Puteți activa în continuare previzualizarea setând `TERMBRIDGE_SANDBOX_PREVIEW_PORT`; în modul direct, aceasta este transmisă drept portul serverului `--proxy`.

## Clonarea depozitului

Termbridge va crea un sandbox și va clona depozitul dvs. în directorul de lucru al sandbox-ului.

Folosiți aceste setări:

| Variabilă | Scop |
| --- | --- |
| `TERMBRIDGE_SANDBOX_REPO` | URL depozitului de clonat (setați întotdeauna; consultați ghidul de pornire rapidă) |
| `TERMBRIDGE_SANDBOX_BRANCH` | Ramura de extras (opțională) |
| `TERMBRIDGE_SANDBOX_PATH` | Calea depozitului în sandbox (opțională) |
| `TERMBRIDGE_SANDBOX_NAME` | Numele sandbox-ului (opțional; implicit `termbridge-<random hex>`) |

Dacă `TERMBRIDGE_SANDBOX_PATH` nu este setată, Termbridge o deduce din numele depozitului.

## Depozite private

Furnizați datele de autentificare git când clonați depozite private:

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

Este acceptată și `TERMBRIDGE_SANDBOX_GIT_PASSWORD`, care înlocuiește tokenul dacă este setată.

## Agenți de programare

Termbridge poate instala agenți de programare în sandbox și sincroniza datele locale de autentificare, astfel încât aceștia să fie gata imediat.

Consultați ghidul [Agenți de programare](https://termbridge.inline0.dev/ro/docs/sandboxes/coding-agents) pentru configurarea completă, modul automat și detalii de securitate.

## Modul de previzualizare

Pentru a afișa previzualizarea, setați `TERMBRIDGE_SANDBOX_PREVIEW_PORT` la portul folosit de serverul de dezvoltare din sandbox.

Pentru Vite, asigurați-vă că serverul este legat de toate interfețele:

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

Termbridge preia linkul de previzualizare Daytona și îl redirecționează prin serverul Termbridge, astfel încât previzualizarea să se încarce în UI.

## Sandbox-uri publice și private

| Variabilă | Funcție |
| --- | --- |
| `TERMBRIDGE_SANDBOX_PUBLIC=true` | Creează un sandbox public |
| `TERMBRIDGE_SANDBOX_PUBLIC=false` | Creează un sandbox privat |

Dacă variabila nu este setată, sandbox-urile sunt private, cu excepția modului direct, în care sunt publice.

Pentru sandbox-urile private, Termbridge redirecționează automat tokenul de previzualizare când proxy-ul transmite previzualizarea.

## Curățare și ciclul de viață

Pentru a șterge sandbox-urile la ieșirea din Termbridge:

```bash
export TERMBRIDGE_SANDBOX_DELETE_ON_EXIT=true
```

Pentru sandbox-uri de test sau cu durată scurtă, folosiți un prefix:

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

Astfel, utilizarea sandbox-urilor rămâne sub control și se evită problemele legate de cota de disc.

## Indicatoarele CLI

Puteți configura și Daytona prin indicatoare. Un indicator are prioritate față de variabila de mediu corespunzătoare.

| Indicator | Variabilă de mediu | Scop |
| --- | --- | --- |
| `--backend sandbox-daytona` | `TERMBRIDGE_BACKEND` | Folosește backend-ul Daytona |
| `--sandbox-repo <url>` | `TERMBRIDGE_SANDBOX_REPO` | URL depozitului |
| `--sandbox-branch <branch>` | `TERMBRIDGE_SANDBOX_BRANCH` | Ramură |
| `--sandbox-path <path>` | `TERMBRIDGE_SANDBOX_PATH` | Calea depozitului în sandbox |
| `--sandbox-name <name>` | `TERMBRIDGE_SANDBOX_NAME` | Numele sandbox-ului |
| `--sandbox-preview-port <port>` | `TERMBRIDGE_SANDBOX_PREVIEW_PORT` | Portul de previzualizare |
| `--sandbox-public` | `TERMBRIDGE_SANDBOX_PUBLIC=true` | Creează un sandbox public |
| `--sandbox-direct` | `TERMBRIDGE_SANDBOX_DIRECT=true` | Rulează serverul în sandbox (fără tunel) |

Nu există un indicator pentru un sandbox privat; folosiți `TERMBRIDGE_SANDBOX_PUBLIC=false`. Rezultatul încorporat de `termbridge --help` afișează în continuare numele `--daytona-*` și `--backend daytona`, care sunt respinse ([#1](https://github.com/inline0/termbridge/issues/1)).

## Depanare

**Panoul de previzualizare este gol**
- Asigurați-vă că serverul de dezvoltare rulează în sandbox.
- Folosiți `--host 0.0.0.0` pentru ca portul de previzualizare să fie accesibil.
- Confirmați că `TERMBRIDGE_SANDBOX_PREVIEW_PORT` corespunde portului serverului de dezvoltare.

**Crearea sandbox-ului eșuează din cauza cotei**
- Ștergeți sandbox-urile vechi din tabloul de bord Daytona.
- Folosiți `TERMBRIDGE_SANDBOX_DELETE_ON_EXIT=true` pentru sesiunile de scurtă durată.

**Clonarea depozitului eșuează**
- Verificați de două ori URL depozitului, ramura și datele de autentificare.
- Asigurați-vă că tokenul Git are acces de citire la depozit.
