Przejdź do treści

Daytona

Daytona umożliwia Termbridge uruchamianie terminala i podglądu w piaskownicy chmurowej. Wybierz to rozwiązanie, jeśli potrzebujesz powtarzalnego środowiska lub podglądu w chmurze albo chcesz, aby Twój laptop pozostał bezczynny.

Wymagania

  • Klucz Daytona API
  • Repozytorium URL, które piaskownica może sklonować
  • Dane uwierzytelniające Git, jeśli repozytorium jest prywatne

Szybki start

Ustaw backend na Daytona i podaj konfigurację repozytorium:

Powłoka
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

Następnie uruchom Termbridge jak zwykle:

Powłoka
npx termbridge

Zawsze ustaw TERMBRIDGE_SANDBOX_REPO (lub --sandbox-repo). Jeśli nie podasz tej wartości, Termbridge użyje obecnie wbudowanego domyślnego repozytorium, które nie jest publicznie dostępne. Piaskownica zostanie więc utworzona, ale klonowanie zakończy się niepowodzeniem (#2).

Połączenie Daytona

Zmienna Zastosowanie
TERMBRIDGE_DAYTONA_API_KEY Klucz Daytona API
TERMBRIDGE_DAYTONA_API_URL Punkt końcowy API (domyślnie https://app.daytona.io/api)
TERMBRIDGE_DAYTONA_TARGET Docelowy region Daytona (opcjonalnie)

Wartości te są przekazywane do pakietu SDK Daytona. Jeśli któraś z nich nie jest ustawiona, pakiet SDK używa własnej zmiennej DAYTONA_API_KEY, DAYTONA_API_URL lub DAYTONA_TARGET.

Bezpośredni tryb piaskownicy (bez tunelu)

W trybie bezpośrednim serwer Termbridge działa w piaskownicy, a Cloudflare jest całkowicie pomijany. Link udostępniania URL to link podglądu Daytona do serwera działającego w piaskownicy.

Powłoka
export TERMBRIDGE_BACKEND=sandbox-daytona
export TERMBRIDGE_SANDBOX_DIRECT=true
export TERMBRIDGE_SANDBOX_SERVER_PORT=8080

TERMBRIDGE_SANDBOX_SERVER_PORT (lub --port) domyślnie przyjmuje wartość 8080. Tryb bezpośredni tworzy publiczną piaskownicę, chyba że ustawisz TERMBRIDGE_SANDBOX_PUBLIC=false. UI ukrywa przełącznik terminali.

Nadal możesz włączyć podgląd, ustawiając TERMBRIDGE_SANDBOX_PREVIEW_PORT; w trybie bezpośrednim jest on przekazywany jako port serwera --proxy.

Klonowanie repozytorium

Termbridge utworzy piaskownicę i sklonuje Twoje repozytorium do katalogu roboczego piaskownicy.

Użyj tych ustawień:

Zmienna Zastosowanie
TERMBRIDGE_SANDBOX_REPO Repozytorium URL do sklonowania (zawsze ustaw tę wartość, zobacz szybki start)
TERMBRIDGE_SANDBOX_BRANCH Gałąź do pobrania (opcjonalnie)
TERMBRIDGE_SANDBOX_PATH Ścieżka repozytorium w piaskownicy (opcjonalnie)
TERMBRIDGE_SANDBOX_NAME Nazwa piaskownicy (opcjonalnie, domyślnie termbridge-<random hex>)

Jeśli TERMBRIDGE_SANDBOX_PATH nie jest ustawiona, Termbridge wyznacza ją na podstawie nazwy repozytorium.

Repozytoria prywatne

Podaj dane uwierzytelniające git podczas klonowania prywatnych repozytoriów:

Powłoka
export TERMBRIDGE_SANDBOX_GIT_USERNAME=your_github_username
export TERMBRIDGE_SANDBOX_GIT_TOKEN=your_github_token

Obsługiwany jest również TERMBRIDGE_SANDBOX_GIT_PASSWORD; jeśli jest ustawiony, zastępuje token.

Agenci programujący

Termbridge może zainstalować agentów programujących w piaskownicy i zsynchronizować lokalne dane uwierzytelniające, aby byli od razu gotowi do pracy.

Pełną konfigurację, tryb automatyczny i informacje o bezpieczeństwie opisano w przewodniku dla agentów programujących.

Tryb podglądu

Aby wyświetlić podgląd, ustaw TERMBRIDGE_SANDBOX_PREVIEW_PORT na port używany przez serwer deweloperski wewnątrz piaskownicy.

W przypadku Vite pamiętaj, aby nasłuchiwać na wszystkich interfejsach:

Powłoka
npm run dev -- --host 0.0.0.0 --port 5173

Termbridge pobiera link podglądu Daytona i przekazuje go przez serwer Termbridge, aby podgląd wyświetlał się wewnątrz UI.

Piaskownice publiczne i prywatne

Zmienna Działanie
TERMBRIDGE_SANDBOX_PUBLIC=true Tworzy publiczną piaskownicę
TERMBRIDGE_SANDBOX_PUBLIC=false Tworzy prywatną piaskownicę

Jeśli zmienna nie jest ustawiona, piaskownice są prywatne, z wyjątkiem trybu bezpośredniego, w którym są publiczne.

W przypadku prywatnych piaskownic Termbridge automatycznie przekazuje token podglądu podczas jego pośredniczenia.

Czyszczenie i cykl życia

Aby usuwać piaskownice przy zamykaniu Termbridge:

Powłoka
export TERMBRIDGE_SANDBOX_DELETE_ON_EXIT=true

W przypadku krótkotrwałych piaskownic lub piaskownic testowych użyj prefiksu:

Powłoka
export TERMBRIDGE_SANDBOX_NAME=termbridge-test-$(date +%s)
export TERMBRIDGE_SANDBOX_DELETE_ON_EXIT=true

Pozwala to kontrolować wykorzystanie piaskownic i uniknąć problemów z limitem miejsca na dysku.

Flagi CLI

Daytona można też konfigurować za pomocą flag. Flaga ma pierwszeństwo przed odpowiadającą jej zmienną środowiskową.

Flaga Zmienna środowiskowa Zastosowanie
--backend sandbox-daytona TERMBRIDGE_BACKEND Używa backendu Daytona
--sandbox-repo <url> TERMBRIDGE_SANDBOX_REPO Repozytorium URL
--sandbox-branch <branch> TERMBRIDGE_SANDBOX_BRANCH Gałąź
--sandbox-path <path> TERMBRIDGE_SANDBOX_PATH Ścieżka repozytorium w piaskownicy
--sandbox-name <name> TERMBRIDGE_SANDBOX_NAME Nazwa piaskownicy
--sandbox-preview-port <port> TERMBRIDGE_SANDBOX_PREVIEW_PORT Port podglądu
--sandbox-public TERMBRIDGE_SANDBOX_PUBLIC=true Tworzy publiczną piaskownicę
--sandbox-direct TERMBRIDGE_SANDBOX_DIRECT=true Uruchamia serwer w piaskownicy (bez tunelu)

Nie ma flagi dla prywatnej piaskownicy; użyj TERMBRIDGE_SANDBOX_PUBLIC=false. Wbudowane dane wyjściowe termbridge --help nadal pokazują odrzucone nazwy --daytona-* i --backend daytona (#1).

Rozwiązywanie problemów

Widok podglądu jest pusty

  • Upewnij się, że serwer deweloperski działa w piaskownicy.
  • Użyj --host 0.0.0.0, aby port podglądu był osiągalny.
  • Sprawdź, czy TERMBRIDGE_SANDBOX_PREVIEW_PORT odpowiada portowi serwera deweloperskiego.

Nie można utworzyć piaskownicy z powodu limitu

  • Usuń stare piaskownice w panelu Daytona.
  • W przypadku krótkotrwałych sesji użyj TERMBRIDGE_SANDBOX_DELETE_ON_EXIT=true.

Nie można sklonować repozytorium

  • Sprawdź repozytorium URL, gałąź i dane uwierzytelniające.
  • Upewnij się, że token Git ma dostęp do odczytu repozytorium.