
# 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/ru/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 имеет доступ на чтение репозитория.
