Daytona
Daytona permite que Termbridge execute seu terminal e a visualização em um sandbox na nuvem. Use essa opção para obter um ambiente reproduzível, uma visualização na nuvem ou manter seu laptop ocioso.
Requisitos
- Uma chave Daytona API
- Um repositório URL que o sandbox possa clonar
- Credenciais Git se o repositório for privado
Início rápido
Defina o backend como Daytona e informe a configuração do repositório:
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
Em seguida, execute Termbridge como de costume:
npx termbridge
Sempre defina TERMBRIDGE_SANDBOX_REPO (ou --sandbox-repo). Se estiver ausente, Termbridge usará um repositório padrão integrado que não é acessível publicamente; assim, o sandbox será criado, mas a clonagem falhará (#2).
Conexão Daytona
| Variável | Finalidade |
|---|---|
TERMBRIDGE_DAYTONA_API_KEY |
Sua chave Daytona API |
TERMBRIDGE_DAYTONA_API_URL |
Endpoint API (padrão: https://app.daytona.io/api) |
TERMBRIDGE_DAYTONA_TARGET |
Região de destino Daytona (opcional) |
Esses valores são passados ao SDK Daytona. Se algum deles não estiver definido, o SDK usará sua própria variável DAYTONA_API_KEY, DAYTONA_API_URL ou DAYTONA_TARGET.
Modo sandbox direto (sem túnel)
No modo direto, o servidor Termbridge é executado dentro do sandbox e Cloudflare é totalmente ignorado. O URL de compartilhamento é o link de visualização Daytona para o servidor no sandbox.
export TERMBRIDGE_BACKEND=sandbox-daytona
export TERMBRIDGE_SANDBOX_DIRECT=true
export TERMBRIDGE_SANDBOX_SERVER_PORT=8080
TERMBRIDGE_SANDBOX_SERVER_PORT (ou --port) usa 8080 por padrão. O modo direto cria um sandbox público, a menos que você defina TERMBRIDGE_SANDBOX_PUBLIC=false, e o UI oculta o alternador de terminais.
Você ainda pode ativar a visualização definindo TERMBRIDGE_SANDBOX_PREVIEW_PORT; no modo direto, esse valor é encaminhado como a porta --proxy do servidor.
Clonagem de repositório
Termbridge criará um sandbox e clonará seu repositório no diretório de trabalho do sandbox.
Use estas configurações:
| Variável | Finalidade |
|---|---|
TERMBRIDGE_SANDBOX_REPO |
Repositório URL a clonar (sempre defina, consulte o início rápido) |
TERMBRIDGE_SANDBOX_BRANCH |
Branch a selecionar (opcional) |
TERMBRIDGE_SANDBOX_PATH |
Caminho do repositório no sandbox (opcional) |
TERMBRIDGE_SANDBOX_NAME |
Nome do sandbox (opcional, o padrão é termbridge-<random hex>) |
Se TERMBRIDGE_SANDBOX_PATH não estiver definido, Termbridge o deduz do nome do repositório.
Repositórios privados
Forneça credenciais de git ao clonar repositórios privados:
export TERMBRIDGE_SANDBOX_GIT_USERNAME=your_github_username
export TERMBRIDGE_SANDBOX_GIT_TOKEN=your_github_token
TERMBRIDGE_SANDBOX_GIT_PASSWORD também é compatível e substitui o token se estiver definido.
Agentes de programação
Termbridge pode instalar agentes de programação dentro do sandbox e sincronizar sua autenticação local para que estejam prontos imediatamente.
Consulte o guia de Agentes de programação para ver a configuração completa, o modo automático e os detalhes de segurança.
Modo de pré-visualização
Para exibir a visualização, defina TERMBRIDGE_SANDBOX_PREVIEW_PORT como a porta usada pelo seu servidor de desenvolvimento dentro do sandbox.
Para Vite, vincule-o a todas as interfaces:
npm run dev -- --host 0.0.0.0 --port 5173
Termbridge busca o link de pré-visualização de Daytona e o encaminha pelo servidor Termbridge para que a pré-visualização seja carregada dentro do UI.
Sandboxes públicos e privados
| Variável | O que faz |
|---|---|
TERMBRIDGE_SANDBOX_PUBLIC=true |
Cria um sandbox público |
TERMBRIDGE_SANDBOX_PUBLIC=false |
Cria um sandbox privado |
Quando a variável não está definida, os sandboxes são privados, exceto no modo direto, em que são públicos.
Para sandboxes privados, Termbridge encaminha automaticamente o token de pré-visualização ao fazer o proxy da pré-visualização.
Limpeza e ciclo de vida
Para excluir sandboxes quando Termbridge sair:
export TERMBRIDGE_SANDBOX_DELETE_ON_EXIT=true
Para sandboxes de curta duração ou de teste, use um prefixo:
export TERMBRIDGE_SANDBOX_NAME=termbridge-test-$(date +%s)
export TERMBRIDGE_SANDBOX_DELETE_ON_EXIT=true
Isso mantém o uso de sandboxes sob controle e evita problemas com a cota de disco.
Opções de CLI
Você também pode configurar Daytona por meio de opções. Uma opção tem precedência sobre a variável de ambiente correspondente.
| Opção | Variável de ambiente | Finalidade |
|---|---|---|
--backend sandbox-daytona |
TERMBRIDGE_BACKEND |
Usar o backend Daytona |
--sandbox-repo <url> |
TERMBRIDGE_SANDBOX_REPO |
Repositório URL |
--sandbox-branch <branch> |
TERMBRIDGE_SANDBOX_BRANCH |
Branch |
--sandbox-path <path> |
TERMBRIDGE_SANDBOX_PATH |
Caminho do repositório no sandbox |
--sandbox-name <name> |
TERMBRIDGE_SANDBOX_NAME |
Nome do sandbox |
--sandbox-preview-port <port> |
TERMBRIDGE_SANDBOX_PREVIEW_PORT |
Porta de pré-visualização |
--sandbox-public |
TERMBRIDGE_SANDBOX_PUBLIC=true |
Criar um sandbox público |
--sandbox-direct |
TERMBRIDGE_SANDBOX_DIRECT=true |
Executar o servidor dentro do sandbox (sem túnel) |
Não há opção para um sandbox privado; use TERMBRIDGE_SANDBOX_PUBLIC=false. A saída integrada de termbridge --help ainda mostra nomes de --daytona-* e --backend daytona, que são rejeitados (#1).
Solução de problemas
A visualização está em branco
- Verifique se o servidor de desenvolvimento está em execução dentro do sandbox.
- Use
--host 0.0.0.0para que a porta de pré-visualização possa ser acessada. - Confirme se
TERMBRIDGE_SANDBOX_PREVIEW_PORTcorresponde à porta do servidor de desenvolvimento.
A criação do sandbox falha com erros de cota
- Exclua sandboxes antigos no painel Daytona.
- Use
TERMBRIDGE_SANDBOX_DELETE_ON_EXIT=truepara sessões de curta duração.
Falha ao clonar o repositório
- Confira novamente URL, a branch e as credenciais do repositório.
- Verifique se o token Git tem acesso de leitura ao repositório.