
# Daytona

Το Daytona επιτρέπει στο Termbridge να εκτελεί το τερματικό και την προεπισκόπησή σας σε sandbox cloud. Χρησιμοποιήστε το για αναπαραγώγιμο περιβάλλον, προεπισκόπηση cloud ή για να αφήσετε τον φορητό υπολογιστή σας αδρανή.

## Απαιτήσεις

- Ένα κλειδί Daytona API
- Ένα αποθετήριο URL που μπορεί να κλωνοποιήσει το sandbox
- Διαπιστευτήρια Git αν το αποθετήριο είναι ιδιωτικό

## Γρήγορη εκκίνηση

Ορίστε το backend σε Daytona και δώστε τις ρυθμίσεις του αποθετηρίου:

```bash
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 ως συνήθως:

```bash
npx termbridge
```

Ορίζετε πάντα το `TERMBRIDGE_SANDBOX_REPO` (ή το `--sandbox-repo`). Αν λείπει, το Termbridge χρησιμοποιεί προς το παρόν ένα ενσωματωμένο προεπιλεγμένο αποθετήριο που δεν είναι δημόσια προσβάσιμο, οπότε δημιουργείται το sandbox αλλά αποτυγχάνει η κλωνοποίηση ([#2](https://github.com/inline0/termbridge/issues/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`.

## Άμεση λειτουργία sandbox (χωρίς σήραγγα)

Στην άμεση λειτουργία, ο διακομιστής Termbridge εκτελείται μέσα στο sandbox και παραλείπεται εντελώς το Cloudflare. Ο σύνδεσμος κοινής χρήσης URL είναι ο σύνδεσμος προεπισκόπησης Daytona προς τον διακομιστή στο sandbox.

```bash
export TERMBRIDGE_BACKEND=sandbox-daytona
export TERMBRIDGE_SANDBOX_DIRECT=true
export TERMBRIDGE_SANDBOX_SERVER_PORT=8080
```

Το `TERMBRIDGE_SANDBOX_SERVER_PORT` (ή το `--port`) χρησιμοποιεί από προεπιλογή το `8080`. Η άμεση λειτουργία δημιουργεί δημόσιο sandbox, εκτός αν ορίσετε το `TERMBRIDGE_SANDBOX_PUBLIC=false`, ενώ το UI αποκρύπτει τον επιλογέα τερματικών.

Μπορείτε και πάλι να ενεργοποιήσετε την προεπισκόπηση ορίζοντας το `TERMBRIDGE_SANDBOX_PREVIEW_PORT`· στην άμεση λειτουργία προωθείται ως θύρα διακομιστή `--proxy`.

## Κλωνοποίηση αποθετηρίου

Το Termbridge δημιουργεί ένα sandbox και κλωνοποιεί το αποθετήριό σας στον κατάλογο εργασίας του sandbox.

Χρησιμοποιήστε αυτές τις ρυθμίσεις:

| Μεταβλητή | Σκοπός |
| --- | --- |
| `TERMBRIDGE_SANDBOX_REPO` | Αποθετήριο URL για κλωνοποίηση (ορίζετέ το πάντα, δείτε τη γρήγορη εκκίνηση) |
| `TERMBRIDGE_SANDBOX_BRANCH` | Κλάδος προς ανάκτηση (προαιρετικό) |
| `TERMBRIDGE_SANDBOX_PATH` | Διαδρομή για το αποθετήριο στο sandbox (προαιρετικό) |
| `TERMBRIDGE_SANDBOX_NAME` | Όνομα sandbox (προαιρετικό, προεπιλογή: `termbridge-<random hex>`) |

Αν δεν έχει οριστεί το `TERMBRIDGE_SANDBOX_PATH`, το Termbridge το συνάγει από το όνομα του αποθετηρίου.

## Ιδιωτικά αποθετήρια

Δώστε διαπιστευτήρια git κατά την κλωνοποίηση ιδιωτικών αποθετηρίων:

```bash
export TERMBRIDGE_SANDBOX_GIT_USERNAME=your_github_username
export TERMBRIDGE_SANDBOX_GIT_TOKEN=your_github_token
```

Υποστηρίζεται επίσης το `TERMBRIDGE_SANDBOX_GIT_PASSWORD` και, αν οριστεί, υπερισχύει του token.

## Πράκτορες προγραμματισμού

Το Termbridge μπορεί να εγκαταστήσει πράκτορες προγραμματισμού μέσα στο sandbox και να συγχρονίσει τον τοπικό έλεγχο ταυτότητάς σας, ώστε να είναι αμέσως έτοιμοι.

Δείτε τον οδηγό [Πράκτορες προγραμματισμού](https://termbridge.inline0.dev/el/docs/sandboxes/coding-agents) για την πλήρη ρύθμιση, την αυτόματη λειτουργία και τις λεπτομέρειες ασφάλειας.

## Λειτουργία προεπισκόπησης

Για να εμφανιστεί η προβολή προεπισκόπησης, ορίστε το `TERMBRIDGE_SANDBOX_PREVIEW_PORT` στη θύρα που χρησιμοποιεί ο διακομιστής ανάπτυξής σας μέσα στο sandbox.

Για το Vite, φροντίστε να κάνετε bind σε όλες τις διεπαφές:

```bash
npm run dev -- --host 0.0.0.0 --port 5173
```

Το Termbridge ανακτά τον σύνδεσμο προεπισκόπησης Daytona και τον προωθεί μέσω του διακομιστή Termbridge, ώστε η προεπισκόπηση να φορτώνεται μέσα στο UI.

## Δημόσια και ιδιωτικά sandbox

| Μεταβλητή | Λειτουργία |
| --- | --- |
| `TERMBRIDGE_SANDBOX_PUBLIC=true` | Δημιουργεί δημόσιο sandbox |
| `TERMBRIDGE_SANDBOX_PUBLIC=false` | Δημιουργεί ιδιωτικό sandbox |

Όταν η μεταβλητή δεν έχει οριστεί, τα sandbox είναι ιδιωτικά, εκτός από την άμεση λειτουργία, όπου είναι δημόσια.

Για ιδιωτικά sandbox, το Termbridge προωθεί αυτόματα το token προεπισκόπησης κατά την προώθηση της προεπισκόπησης.

## Εκκαθάριση και κύκλος ζωής

Για να διαγράφονται τα sandbox όταν τερματίζεται το Termbridge:

```bash
export TERMBRIDGE_SANDBOX_DELETE_ON_EXIT=true
```

Για sandbox βραχύβιας διάρκειας ή δοκιμών, χρησιμοποιήστε ένα πρόθεμα:

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

Έτσι διατηρείτε υπό έλεγχο τη χρήση των sandbox και αποφεύγετε προβλήματα με το όριο χώρου στον δίσκο.

## Επιλογές CLI

Μπορείτε επίσης να ρυθμίσετε το Daytona μέσω επιλογών. Μια επιλογή υπερισχύει της αντίστοιχης μεταβλητής περιβάλλοντος.

| Επιλογή | Μεταβλητή περιβάλλοντος | Σκοπός |
| --- | --- | --- |
| `--backend sandbox-daytona` | `TERMBRIDGE_BACKEND` | Χρήση του backend Daytona |
| `--sandbox-repo <url>` | `TERMBRIDGE_SANDBOX_REPO` | Αποθετήριο URL |
| `--sandbox-branch <branch>` | `TERMBRIDGE_SANDBOX_BRANCH` | Κλάδος |
| `--sandbox-path <path>` | `TERMBRIDGE_SANDBOX_PATH` | Διαδρομή αποθετηρίου στο sandbox |
| `--sandbox-name <name>` | `TERMBRIDGE_SANDBOX_NAME` | Όνομα sandbox |
| `--sandbox-preview-port <port>` | `TERMBRIDGE_SANDBOX_PREVIEW_PORT` | Θύρα προεπισκόπησης |
| `--sandbox-public` | `TERMBRIDGE_SANDBOX_PUBLIC=true` | Δημιουργία δημόσιου sandbox |
| `--sandbox-direct` | `TERMBRIDGE_SANDBOX_DIRECT=true` | Εκτέλεση του διακομιστή μέσα στο sandbox (χωρίς tunnel) |

Δεν υπάρχει επιλογή για ιδιωτικό sandbox· χρησιμοποιήστε το `TERMBRIDGE_SANDBOX_PUBLIC=false`. Η ενσωματωμένη έξοδος `termbridge --help` εξακολουθεί να εμφανίζει ονόματα `--daytona-*` και `--backend daytona`, τα οποία απορρίπτονται ([#1](https://github.com/inline0/termbridge/issues/1)).

## Αντιμετώπιση προβλημάτων

**Η προβολή προεπισκόπησης είναι κενή**
- Βεβαιωθείτε ότι ο διακομιστής ανάπτυξης εκτελείται μέσα στο sandbox.
- Χρησιμοποιήστε το `--host 0.0.0.0` ώστε να είναι προσβάσιμη η θύρα προεπισκόπησης.
- Επιβεβαιώστε ότι το `TERMBRIDGE_SANDBOX_PREVIEW_PORT` αντιστοιχεί στη θύρα του διακομιστή ανάπτυξης.

**Η δημιουργία sandbox αποτυγχάνει με σφάλματα ορίου χρήσης**
- Διαγράψτε παλιά sandbox από τον πίνακα ελέγχου Daytona.
- Χρησιμοποιήστε το `TERMBRIDGE_SANDBOX_DELETE_ON_EXIT=true` για συνεδρίες βραχύβιας διάρκειας.

**Η κλωνοποίηση αποθετηρίου αποτυγχάνει**
- Ελέγξτε ξανά το URL του αποθετηρίου, τον κλάδο και τα διαπιστευτήρια.
- Βεβαιωθείτε ότι το token Git έχει δικαίωμα ανάγνωσης του αποθετηρίου.
