Lewati ke konten

Daytona

Daytona memungkinkan Termbridge menjalankan terminal dan pratinjau Anda di sandbox cloud. Gunakan ini untuk lingkungan yang dapat direproduksi, pratinjau cloud, atau agar laptop Anda tetap tidak aktif.

Persyaratan

  • Kunci Daytona API
  • Repositori URL yang dapat diklon oleh sandbox
  • Kredensial Git jika repositori bersifat privat

Mulai cepat

Tetapkan backend ke Daytona dan berikan konfigurasi repositori:

Shell
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

Lalu jalankan Termbridge seperti biasa:

Shell
npx termbridge

Selalu tetapkan TERMBRIDGE_SANDBOX_REPO (atau --sandbox-repo). Jika tidak ditetapkan, saat ini Termbridge menggunakan repositori bawaan yang tidak dapat diakses publik. Akibatnya, sandbox dibuat tetapi proses klon gagal (#2).

Koneksi Daytona

Variabel Tujuan
TERMBRIDGE_DAYTONA_API_KEY Kunci Daytona API Anda
TERMBRIDGE_DAYTONA_API_URL Endpoint API (default https://app.daytona.io/api)
TERMBRIDGE_DAYTONA_TARGET Wilayah target Daytona (opsional)

Nilai ini diteruskan ke SDK Daytona. Jika salah satunya tidak ditetapkan, SDK menggunakan variabel DAYTONA_API_KEY, DAYTONA_API_URL, atau DAYTONA_TARGET miliknya sendiri sebagai pengganti.

Mode sandbox langsung (tanpa tunnel)

Mode langsung menjalankan server Termbridge di dalam sandbox dan melewati Cloudflare sepenuhnya. URL berbagi adalah tautan pratinjau Daytona ke server dalam sandbox.

Shell
export TERMBRIDGE_BACKEND=sandbox-daytona
export TERMBRIDGE_SANDBOX_DIRECT=true
export TERMBRIDGE_SANDBOX_SERVER_PORT=8080

TERMBRIDGE_SANDBOX_SERVER_PORT (atau --port) menggunakan 8080 secara default. Mode langsung membuat sandbox publik kecuali jika Anda menetapkan TERMBRIDGE_SANDBOX_PUBLIC=false, dan UI menyembunyikan pengalih terminal.

Anda tetap dapat mengaktifkan pratinjau dengan menetapkan TERMBRIDGE_SANDBOX_PREVIEW_PORT; dalam mode langsung, nilai ini diteruskan sebagai port --proxy server.

Mengklon repositori

Termbridge akan membuat sandbox dan mengklon repositori Anda ke direktori kerja sandbox.

Gunakan pengaturan berikut:

Variabel Tujuan
TERMBRIDGE_SANDBOX_REPO Repo URL untuk diklon (selalu atur, lihat mulai cepat)
TERMBRIDGE_SANDBOX_BRANCH Branch yang akan di-checkout (opsional)
TERMBRIDGE_SANDBOX_PATH Path repo di sandbox (opsional)
TERMBRIDGE_SANDBOX_NAME Nama sandbox (opsional, default-nya termbridge-<random hex>)

Jika TERMBRIDGE_SANDBOX_PATH tidak diatur, Termbridge akan menurunkannya dari nama repo.

Repositori privat

Berikan kredensial git saat mengkloning repo privat:

Shell
export TERMBRIDGE_SANDBOX_GIT_USERNAME=your_github_username
export TERMBRIDGE_SANDBOX_GIT_TOKEN=your_github_token

TERMBRIDGE_SANDBOX_GIT_PASSWORD juga didukung dan akan menggantikan token jika diatur.

Agen coding

Termbridge dapat menginstal agen coding di dalam sandbox dan menyinkronkan autentikasi lokal Anda agar siap digunakan segera.

Lihat panduan Agen coding untuk penyiapan lengkap, mode otomatis, dan detail keamanan.

Mode pratinjau

Untuk menampilkan tampilan pratinjau, atur TERMBRIDGE_SANDBOX_PREVIEW_PORT ke port yang digunakan server dev Anda di dalam sandbox.

Untuk Vite, pastikan Anda mengikatnya ke semua antarmuka:

Shell
npm run dev -- --host 0.0.0.0 --port 5173

Termbridge mengambil tautan pratinjau Daytona dan meneruskannya melalui server Termbridge agar pratinjau dimuat di dalam UI.

Sandbox publik vs privat

Variabel Fungsinya
TERMBRIDGE_SANDBOX_PUBLIC=true Membuat sandbox publik
TERMBRIDGE_SANDBOX_PUBLIC=false Membuat sandbox privat

Jika variabel tidak diatur, sandbox bersifat privat, kecuali dalam mode langsung, yang menjadikannya publik.

Untuk sandbox privat, Termbridge otomatis meneruskan token pratinjau saat memproksi pratinjau.

Pembersihan dan siklus hidup

Untuk menghapus sandbox saat Termbridge keluar:

Shell
export TERMBRIDGE_SANDBOX_DELETE_ON_EXIT=true

Untuk sandbox sementara atau pengujian, gunakan prefiks:

Shell
export TERMBRIDGE_SANDBOX_NAME=termbridge-test-$(date +%s)
export TERMBRIDGE_SANDBOX_DELETE_ON_EXIT=true

Ini membantu mengendalikan penggunaan sandbox dan menghindari masalah kuota disk.

Flag CLI

Anda juga dapat mengonfigurasi Daytona melalui flag. Flag akan lebih diutamakan daripada variabel lingkungan yang sesuai.

Flag Variabel lingkungan Tujuan
--backend sandbox-daytona TERMBRIDGE_BACKEND Gunakan backend Daytona
--sandbox-repo <url> TERMBRIDGE_SANDBOX_REPO Repo URL
--sandbox-branch <branch> TERMBRIDGE_SANDBOX_BRANCH Branch
--sandbox-path <path> TERMBRIDGE_SANDBOX_PATH Path repo di sandbox
--sandbox-name <name> TERMBRIDGE_SANDBOX_NAME Nama sandbox
--sandbox-preview-port <port> TERMBRIDGE_SANDBOX_PREVIEW_PORT Port pratinjau
--sandbox-public TERMBRIDGE_SANDBOX_PUBLIC=true Buat sandbox publik
--sandbox-direct TERMBRIDGE_SANDBOX_DIRECT=true Jalankan server di dalam sandbox (tanpa tunnel)

Tidak ada flag untuk sandbox privat; gunakan TERMBRIDGE_SANDBOX_PUBLIC=false. Keluaran bawaan termbridge --help tetap menampilkan nama --daytona-* dan --backend daytona, yang ditolak (#1).

Pemecahan masalah

Tampilan pratinjau kosong

  • Pastikan server dev berjalan di dalam sandbox.
  • Gunakan --host 0.0.0.0 agar port pratinjau dapat dijangkau.
  • Pastikan TERMBRIDGE_SANDBOX_PREVIEW_PORT cocok dengan port server dev.

Pembuatan sandbox gagal karena kesalahan kuota

  • Hapus sandbox lama di dasbor Daytona.
  • Gunakan TERMBRIDGE_SANDBOX_DELETE_ON_EXIT=true untuk sesi sementara.

Klon repo gagal

  • Periksa kembali repo URL, branch, dan kredensial.
  • Pastikan token Git memiliki akses baca repo.