
# Daytona

Daytona позволява на Termbridge да стартира терминала и визуализацията ви в облачна пясъчна среда. Използвайте това за възпроизводима среда, облачна визуализация или когато искате лаптопът ви да остане в покой.

## Изисквания

- Ключ Daytona API
- Хранилище, което пясъчната среда може да клонира URL
- Данни за удостоверяване Git, ако хранилището е частно

## Бърз старт

Задайте бекенда на Daytona и предоставете конфигурацията на хранилището:

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

След това стартирайте Termbridge както обикновено:

```bash
npx termbridge
```

Винаги задавайте `TERMBRIDGE_SANDBOX_REPO` (или `--sandbox-repo`). Ако липсва, Termbridge в момента използва вградено хранилище по подразбиране, което не е публично достъпно. Така пясъчната среда се създава, но клонирането се проваля ([#2](https://github.com/inline0/termbridge/issues/2)).

## Връзка Daytona

| Променлива | Предназначение |
| --- | --- |
| `TERMBRIDGE_DAYTONA_API_KEY` | Вашият ключ Daytona API |
| `TERMBRIDGE_DAYTONA_API_URL` | Крайна точка API (по подразбиране `https://app.daytona.io/api`) |
| `TERMBRIDGE_DAYTONA_TARGET` | Целеви регион Daytona (незадължително) |

Те се предават на SDK на Daytona. Ако някоя не е зададена, SDK използва собствената си променлива `DAYTONA_API_KEY`, `DAYTONA_API_URL` или `DAYTONA_TARGET`.

## Директен режим с пясъчна среда (без тунел)

В директен режим сървърът Termbridge работи в пясъчната среда и изцяло пропуска Cloudflare. Линкът за споделяне URL е линкът за визуализация Daytona към сървъра в пясъчната среда.

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

`TERMBRIDGE_SANDBOX_SERVER_PORT` (или `--port`) по подразбиране е `8080`. Директният режим създава публична пясъчна среда, освен ако не зададете `TERMBRIDGE_SANDBOX_PUBLIC=false`, а UI скрива превключвателя на терминали.

Все пак можете да включите визуализацията, като зададете `TERMBRIDGE_SANDBOX_PREVIEW_PORT`; в директен режим той се препраща като порт на сървъра `--proxy`.

## Клониране на хранилище

Termbridge ще създаде пясъчна среда и ще клонира хранилището ви в работната директория на средата.

Използвайте тези настройки:

| Променлива | Предназначение |
| --- | --- |
| `TERMBRIDGE_SANDBOX_REPO` | URL на хранилището за клониране (винаги я задавайте, вижте краткото ръководство за начало) |
| `TERMBRIDGE_SANDBOX_BRANCH` | Клон на работата (незадължително) |
| `TERMBRIDGE_SANDBOX_PATH` | Път до хранилището в пясъчната среда (незадължително) |
| `TERMBRIDGE_SANDBOX_NAME` | Име на пясъчната среда (незадължително, по подразбиране `termbridge-<random hex>`) |

Ако `TERMBRIDGE_SANDBOX_PATH` не е зададена, Termbridge извежда стойността ѝ от името на хранилището.

## Частни хранилища

Предоставете идентификационни данни git при клониране на частни хранилища:

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

Поддържа се и `TERMBRIDGE_SANDBOX_GIT_PASSWORD`, която заменя токена, ако е зададена.

## Агенти за програмиране

Termbridge може да инсталира агенти за програмиране в пясъчната среда и да синхронизира локалните ви данни за удостоверяване, за да са готови веднага.

Вижте ръководството за [Агенти за програмиране](https://termbridge.inline0.dev/bg/docs/sandboxes/coding-agents) за пълната настройка, автоматичния режим и подробности за сигурността.

## Режим за визуализация

За да се покаже изгледът за визуализация, задайте `TERMBRIDGE_SANDBOX_PREVIEW_PORT` на порта, който сървърът ви за разработка използва в пясъчната среда.

За Vite се уверете, че слуша на всички интерфейси:

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

Termbridge извлича линка за визуализация Daytona и го проксира през сървъра Termbridge, за да се зареди визуализацията в UI.

## Публични и частни пясъчни среди

| Променлива | Действие |
| --- | --- |
| `TERMBRIDGE_SANDBOX_PUBLIC=true` | Създава публична пясъчна среда |
| `TERMBRIDGE_SANDBOX_PUBLIC=false` | Създава частна пясъчна среда |

Когато променливата не е зададена, пясъчните среди са частни, освен в директен режим, където са публични.

За частните пясъчни среди Termbridge автоматично препраща токена за визуализация при проксиране на визуализацията.

## Почистване и жизнен цикъл

За да изтривате пясъчните среди при излизане на Termbridge:

```bash
export TERMBRIDGE_SANDBOX_DELETE_ON_EXIT=true
```

За краткотрайни или тестови пясъчни среди използвайте префикс:

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

Това помага да контролирате използването на пясъчни среди и да избегнете проблеми с дисковата квота.

## Флагове на CLI

Можете също да конфигурирате Daytona чрез флагове. Флагът има предимство пред съответната променлива на средата.

| Флаг | Променлива на средата | Предназначение |
| --- | --- | --- |
| `--backend sandbox-daytona` | `TERMBRIDGE_BACKEND` | Използване на бекенда Daytona |
| `--sandbox-repo <url>` | `TERMBRIDGE_SANDBOX_REPO` | URL на хранилището |
| `--sandbox-branch <branch>` | `TERMBRIDGE_SANDBOX_BRANCH` | Клон |
| `--sandbox-path <path>` | `TERMBRIDGE_SANDBOX_PATH` | Път до хранилището в пясъчната среда |
| `--sandbox-name <name>` | `TERMBRIDGE_SANDBOX_NAME` | Име на пясъчната среда |
| `--sandbox-preview-port <port>` | `TERMBRIDGE_SANDBOX_PREVIEW_PORT` | Порт за визуализация |
| `--sandbox-public` | `TERMBRIDGE_SANDBOX_PUBLIC=true` | Създаване на публична пясъчна среда |
| `--sandbox-direct` | `TERMBRIDGE_SANDBOX_DIRECT=true` | Стартиране на сървъра в пясъчната среда (без тунел) |

Няма флаг за частна пясъчна среда; използвайте `TERMBRIDGE_SANDBOX_PUBLIC=false`. Вграденият изход `termbridge --help` все пак показва имена `--daytona-*` и `--backend daytona`, които се отхвърлят ([#1](https://github.com/inline0/termbridge/issues/1)).

## Отстраняване на проблеми

**Изгледът за визуализация е празен**
- Уверете се, че сървърът за разработка работи в пясъчната среда.
- Използвайте `--host 0.0.0.0`, за да е достъпен портът за визуализация.
- Проверете дали `TERMBRIDGE_SANDBOX_PREVIEW_PORT` съвпада с порта на сървъра за разработка.

**Създаването на пясъчна среда се проваля поради квотата**
- Изтрийте старите пясъчни среди от таблото за управление на Daytona.
- Използвайте `TERMBRIDGE_SANDBOX_DELETE_ON_EXIT=true` за краткотрайни сесии.

**Клонирането на хранилището се проваля**
- Проверете отново URL на хранилището, клона и данните за удостоверяване.
- Уверете се, че токенът Git има достъп за четене на хранилището.
