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