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:
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:
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.
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:
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:
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:
export TERMBRIDGE_SANDBOX_DELETE_ON_EXIT=true
W przypadku krótkotrwałych piaskownic lub piaskownic testowych użyj prefiksu:
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_PORTodpowiada 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.