Перейти к содержимому

Daytona

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

Требования

  • Ключ Daytona API
  • Репозиторий URL, который песочница сможет клонировать
  • Учетные данные Git, если репозиторий закрытый

Быстрый старт

Укажите для серверной части значение Daytona и настройте репозиторий:

Командная оболочка
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 как обычно:

Командная оболочка
npx termbridge

Всегда задавайте TERMBRIDGE_SANDBOX_REPO (или --sandbox-repo). Если этого не сделать, Termbridge сейчас использует встроенный репозиторий по умолчанию, который недоступен публично. В результате песочница создается, но клонирование завершается с ошибкой (#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 на сервер в песочнице.

Командная оболочка
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 для клонирования приватных репозиториев:

Командная оболочка
export TERMBRIDGE_SANDBOX_GIT_USERNAME=your_github_username
export TERMBRIDGE_SANDBOX_GIT_TOKEN=your_github_token

TERMBRIDGE_SANDBOX_GIT_PASSWORD также поддерживается и переопределяет токен, если задана.

Среды для программирования с ИИ

Termbridge может устанавливать средства разработки с ИИ в песочницу и синхронизировать локальные данные авторизации, чтобы они сразу были готовы к работе.

Полную информацию о настройке, автоматическом режиме и безопасности см. в руководстве Среды для программирования с ИИ.

Режим предпросмотра

Чтобы отобразить окно предпросмотра, задайте TERMBRIDGE_SANDBOX_PREVIEW_PORT порт, который использует сервер разработки в песочнице.

Для Vite привяжите сервер ко всем интерфейсам:

Командная оболочка
npm run dev -- --host 0.0.0.0 --port 5173

Termbridge получает ссылку Daytona предпросмотра и проксирует её через сервер Termbridge, чтобы предпросмотр загружался внутри UI.

Публичные и приватные песочницы

Переменная Назначение
TERMBRIDGE_SANDBOX_PUBLIC=true Создаёт публичную песочницу
TERMBRIDGE_SANDBOX_PUBLIC=false Создаёт приватную песочницу

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

Для приватных песочниц Termbridge автоматически передаёт токен предпросмотра при проксировании предпросмотра.

Очистка и жизненный цикл

Чтобы удалять песочницы при выходе Termbridge:

Командная оболочка
export TERMBRIDGE_SANDBOX_DELETE_ON_EXIT=true

Для кратковременных или тестовых песочниц используйте префикс:

Командная оболочка
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).

Устранение неполадок

Окно предпросмотра пустое

  • Убедитесь, что сервер разработки запущен в песочнице.
  • Используйте --host 0.0.0.0, чтобы порт предпросмотра был доступен.
  • Убедитесь, что TERMBRIDGE_SANDBOX_PREVIEW_PORT совпадает с портом сервера разработки.

Не удаётся создать песочницу из-за ошибки квоты

  • Удалите старые песочницы на панели управления Daytona.
  • Для кратковременных сеансов используйте TERMBRIDGE_SANDBOX_DELETE_ON_EXIT=true.

Не удаётся клонировать репозиторий

  • Проверьте адрес репозитория URL, ветку и учётные данные.
  • Убедитесь, что токен Git имеет доступ на чтение репозитория.