Οδηγός χρήσης

← Home

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

# Αποστολή αρχείου — ο κωδικός δημιουργείται αυτόματα, εμφανίζονται σύνδεσμος + κωδικός
$ ttl send secret.pdf
No password provided. Generate one? [Y/n]:
Generated password: aB3kL9mX
·✧★◉ Thank goodness, secret.pdf is in orbit (1.2 MB)
IMPORTANT! Save your password — required to download and decrypt the file.
Password: aB3kL9mX
https://ttl.space/aBcDeFgHiJ

# Λήψη — ο κωδικός ζητείται διαδραστικά
$ ttl get https://ttl.space/aBcDeFgHiJ
Enter password: ********
Password verified
◉★✧· Phew, secret.pdf landed safe and sound (1.2 MB)

Το CLI κρυπτογραφεί, ανεβάζει, κατεβάζει και αποκρυπτογραφεί αυτόματα. Ο διακομιστής δεν βλέπει ποτέ τον κωδικό σας ούτε τα δεδομένα σας σε μη κρυπτογραφημένη μορφή.

Εγκατάσταση

Homebrew (macOS)

$ brew install tweenietomatoes/ttl/ttl

Scoop (Windows)

$ scoop bucket add ttl https://github.com/tweenietomatoes/scoop-ttl
$ scoop install ttl

Προμεταγλωττισμένο αρχείο

# Κατεβάστε για την πλατφόρμα σας από τις εκδόσεις
$ curl -Lo ttl.tar.gz \
  https://github.com/tweenietomatoes/ttl/releases/latest/download/ttl_linux_amd64.tar.gz
$ tar xzf ttl.tar.gz && sudo mv ttl /usr/local/bin/

Go install

$ go install github.com/tweenietomatoes/ttl/cmd/ttl@latest

Από τον πηγαίο κώδικα

$ git clone https://github.com/tweenietomatoes/ttl
$ cd ttl && go build -o ttl ./cmd/ttl/
$ sudo mv ttl /usr/local/bin/

Επαλήθευση

$ ttl version
ttl v1.3.0

Αποστολή αρχείων

Απλή αποστολή

# Αυτόματη δημιουργία κωδικού, προεπιλεγμένο TTL 7 ημέρες
$ ttl send report.xlsx

Αν δεν δοθεί κωδικός στο τερματικό, το CLI ρωτάει:

No password provided. Generate one? [Y/n]:

Πατήστε Enter ή πληκτρολογήστε y για αυτόματη δημιουργία.

Προσαρμοσμένος κωδικός

$ ttl send -p mySecretPass -t 1h document.pdf

Διαγραφή μετά την ανάγνωση

# Το αρχείο διαγράφεται οριστικά μετά την πρώτη λήψη
$ ttl send -b photo.jpg

Προσαρμοσμένο TTL

$ ttl send -t 5m temp-credentials.txt   # λήγει σε 5 λεπτά
$ ttl send -t 30m meeting-link.txt      # λήγει σε 30 λεπτά
$ ttl send -t 6h backup.tar.gz          # λήγει σε 6 ώρες
$ ttl send -t 1d daily-report.pdf       # λήγει σε 1 ημέρα
$ ttl send -t 3d project-archive.zip    # λήγει σε 3 ημέρες
$ ttl send -t 5d design-assets.zip      # λήγει σε 5 ημέρες
$ ttl send report.xlsx                  # λήγει σε 7 ημέρες (προεπιλογή)

Λήψη αρχείων

Διαδραστικά (Τερματικό)

$ ttl get https://ttl.space/aBcDeFgHiJ
Enter password: ********
Password verified
◉★✧· Phew, document.pdf landed safe and sound (4.2 MB)

Ο κωδικός δεν εμφανίζεται. Το αρχικό όνομα αρχείου ανακτάται.

Μόνο με token

# Μπορείτε να χρησιμοποιήσετε μόνο το 10ψήφιο token αντί για ολόκληρο το URL
$ ttl get aBcDeFgHiJ
Enter password: ********
Password verified
◉★✧· Phew, document.pdf landed safe and sound (4.2 MB)

Κατάλογος εξόδου

$ ttl get -o ~/Downloads aBcDeFgHiJ

Από προεπιλογή, τα αρχεία αποθηκεύονται στον τρέχοντα κατάλογο. Χρησιμοποιήστε -o / --output για να ορίσετε διαφορετικό κατάλογο.

Με παράμετρο κωδικού

$ ttl get -p mySecretPass https://ttl.space/aBcDeFgHiJ

Πρόγραμμα περιήγησης

Μπορείτε επίσης να κατεβάσετε και να αποκρυπτογραφήσετε αρχεία στο πρόγραμμα περιήγησής σας επισκεπτόμενοι απευθείας τον σύνδεσμο. Η διεπαφή ιστού χρησιμοποιεί την ίδια βιβλιοθήκη κρυπτογράφησης και ζητά τον κωδικό σας. Δεν απαιτείται εγκατάσταση λογισμικού.

Διαχείριση κωδικού

Ο κωδικός χρησιμοποιείται ως βάση για το κλειδί κρυπτογράφησης. Δεν φεύγει ποτέ από τη συσκευή σας και δεν αποστέλλεται ποτέ στον διακομιστή. Υπάρχουν πέντε τρόποι να τον ορίσετε:

1. Αυτόματη δημιουργία (μόνο κατά την αποστολή)

$ ttl send notes.txt
No password provided. Generate one? [Y/n]: y
Generated password: aB3kL9mX

Δημιουργεί έναν κρυπτογραφικά τυχαίο κωδικό 8 χαρακτήρων από [0-9A-Za-z]. Διαθέσιμο μόνο κατά το send στο τερματικό.

2. Διαδραστική εισαγωγή

$ ttl send notes.txt
No password provided. Generate one? [Y/n]: n
Enter password: ********
Confirm password: ********

$ ttl get https://ttl.space/aBcDeFgHiJ
Enter password: ********

Ο κωδικός δεν εμφανίζεται και δεν αποθηκεύεται στο ιστορικό του shell. Κατά το send επιλέγετε πρώτα αν θέλετε αυτόματη δημιουργία. Κατά το get ζητείται απευθείας η εισαγωγή.

3. Παράμετρος: -p / --password

$ ttl send -p mySecretPass file.zip
$ ttl get --password mySecretPass https://ttl.space/aBcDeFgHiJ
Το -p / --password είναι ορατό στην έξοδο του ps aux και μπορεί να αποθηκευτεί στο ιστορικό του κελύφους (~/.bash_history). Αποφύγετε τη χρήση σε κοινόχρηστα περιβάλλοντα και scripts. Χρησιμοποιήστε αντ' αυτού --password-stdin ή --password-file.

4. Stdin: --password-stdin

# Μέσω echo
$ echo "mySecretPass" | ttl send --password-stdin backup.tar.gz

# Από τον διαχειριστή κωδικών
$ pass show ttl/key | ttl send --password-stdin data.zip

# Από μεταβλητή περιβάλλοντος
$ printenv MY_SECRET | ttl get --password-stdin https://ttl.space/aBcDeFgHiJ

# Heredoc
$ ttl send --password-stdin report.pdf <<<"mySecretPass"

Διαβάζει την πρώτη γραμμή από το stdin. Χρήσιμο σε scripts, CI/CD pipelines και αυτοματισμό. Όταν το stdin δεν είναι τερματικό και δεν έχει οριστεί πηγή κωδικού, το CLI τερματίζεται με σφάλμα (εκτός αν χρησιμοποιείται --json, που δημιουργεί αυτόματα κωδικό).

5. Αρχείο: --password-file

$ ttl send --password-file /run/secrets/key report.xlsx
$ ttl get --password-file ~/.ttl-key https://ttl.space/aBcDeFgHiJ

Διαβάζει την πρώτη γραμμή του αρχείου (η τελική αλλαγή γραμμής αφαιρείται). Συμβατό με Docker Secrets (/run/secrets/), αρχεία Vault Agent και παρόμοια μοτίβα.

6. Αυτόματα ανιχνευμένο αρχείο: ttl.password

Αν δεν δοθεί ρητός κωδικός, το CLI αναζητά αρχείο ttl.password δίπλα στο πρόγραμμα, στη συνέχεια ~/.ttl/password. Η πρώτη γραμμή χρησιμοποιείται ως κωδικός.

Μόνο μία ρητή πηγή κωδικού μπορεί να χρησιμοποιηθεί κάθε φορά. Τα -p / --password, --password-stdin και --password-file δεν μπορούν να συνδυαστούν. Το αυτόματα ανιχνευμένο αρχείο ttl.password ελέγχεται μόνο όταν κανένα από αυτά δεν έχει δοθεί. Ελάχιστο μήκος: 8 χαρακτήρες.

Αναφορά επιλογών

Παράμετροι αποστολής

ΠαράμετροςΠεριγραφήΠροεπιλογή
-p, --password PΚωδικός κρυπτογράφησηςδιαδραστικά
--password-stdinΑνάγνωση κωδικού από stdin
--password-file FΑνάγνωση κωδικού από αρχείο
-t, --ttl DURΔιάρκεια ισχύος7d
-b, --burnΔιαγραφή μετά την ανάγνωση (μία λήψη)ανενεργό
--timeout DURΧρονικό όριο μεταφοράςαυτόματο
--server URLURL διακομιστήhttps://ttl.space
-h3, --http3Δοκιμή HTTP/3 (QUIC), εναλλακτικά TCPανενεργό
--jsonΈξοδος JSON στο stdout (για scripts και AI agents)ανενεργό

Παράμετροι λήψης

ΠαράμετροςΠεριγραφήΠροεπιλογή
-p, --password PΚωδικός αποκρυπτογράφησηςδιαδραστικά
--password-stdinΑνάγνωση κωδικού από stdin
--password-file FΑνάγνωση κωδικού από αρχείο
-o, --output DIRΚατάλογος εξόδουτρέχων κατάλογος
--timeout DURΧρονικό όριο μεταφοράςαυτόματο
-h3, --http3Δοκιμή HTTP/3 (QUIC), εναλλακτικά TCPανενεργό
--jsonΈξοδος JSON στο stdout (για scripts και AI agents)ανενεργό

Τιμές TTL

Δωρεάν: 5m 10m 15m 30m 1h 2h 3h 6h 12h 24h 1d 2d 3d 4d 5d 6d 7d

Orbit προσθέτει: 14d 15d 28d 30d

Χρονικό όριο

Προεπιλογή: αυτόματο — υπολογίζεται με βάση το μέγεθος αρχείου με υποτιθέμενη ταχύτητα 1 Mbps + 2 λεπτά περιθώριο (ελάχιστο 5 λεπτά). Παράκαμψη με --timeout 10m ή --timeout 1h.

Παραδείγματα

Script: Αντίγραφο ασφαλείας και ανέβασμα

#!/bin/bash
tar czf /tmp/backup.tar.gz /data
echo "$BACKUP_KEY" | ttl send --password-stdin -t 6h /tmp/backup.tar.gz
rm /tmp/backup.tar.gz

Αντιγραφή συνδέσμου στο πρόχειρο (macOS)

$ ttl send -p mypass123 file.pdf | pbcopy

Αντιγραφή συνδέσμου στο πρόχειρο (Linux)

$ ttl send -p mypass123 file.pdf | xclip -sel clip

Μυστικό μίας χρήσης με αυτοδιαγραφή

$ echo "$DB_PASSWORD" | ttl send --password-stdin -b -t 5m credentials.env
# Ο σύνδεσμος λειτουργεί ακριβώς μία φορά, λήγει σε 5 λεπτά

Λειτουργία JSON (scripts & AI agents)

# αποστολή — ο κωδικός δημιουργείται αυτόματα σε λειτουργία JSON
$ ttl --json send report.pdf
{"ok":true,"link":"https://ttl.space/xK9mQ2vLpA","filename":"report.pdf","size":2097152,"ttl":"7d","burn":false,"password":"aB3kL9mX"}

# λήψη
$ ttl --json get -p aB3kL9mX xK9mQ2vLpA
{"ok":true,"filename":"report.pdf","size":2097152,"saved_to":"/home/user/report.pdf"}

# τα σφάλματα επιστρέφουν ok:false
{"ok":false,"error":"Link not found"}

Σε λειτουργία --json, όλη η έξοδος είναι δομημένο JSON στο stdout. Εάν δεν δοθεί κωδικός κατά την αποστολή, δημιουργείται αυτόματα και συμπεριλαμβάνεται στην απάντηση. Ο κωδικός εξόδου είναι 0 σε επιτυχία και 1 σε σφάλμα.

Πλάνο Orbit

Orbit ξεκλειδώνει μεγαλύτερα αρχεία (10 GB), μεγαλύτερη διατήρηση (30 ημέρες) και διαχείριση αρχείων (λίστα και διαγραφή).

Το κλειδί API ανιχνεύεται αυτόματα: μεταβλητή περιβάλλοντος TTL_API_KEY, ttl.key δίπλα στο πρόγραμμα ή ~/.ttl/key. Χρησιμοποιήστε ttl activate για αποθήκευση του κλειδιού ή γράψτε το χειροκίνητα σε μία από αυτές τις τοποθεσίες.

# ενεργοποίηση κλειδιού
$ ttl activate ttl_orbit_aBcDeFgHiJ...
Orbit plan activated. Key saved to /usr/local/bin/ttl.key

# έλεγχος πλάνου και χρήσης
$ ttl plan
Plan: orbit
Max file size: 10.0 GB
Max TTL: 30 days
Uploads per day: Unlimited

Usage:
  Uploads today: 3
  Active storage: 1.2 GB / 250.0 GB

# αποστολή με παρατεταμένο TTL
$ ttl send -t 30d large-backup.tar.gz

# λίστα πρόσφατων μεταφορτώσεων
$ ttl list
  xK9mQ2vLpA    4.2 MB  2026-03-16 10:30 → 2026-04-15 10:30  [active]
  https://ttl.space/xK9mQ2vLpA
  rT7bNw3KpF  912.0 KB  2026-03-15 14:20 → 2026-03-17 14:20  [active (burn)]
  https://ttl.space/rT7bNw3KpF

# διαγραφή αρχείου
$ ttl delete xK9mQ2vLpA
Deleted: xK9mQ2vLpA

# αφαίρεση αποθηκευμένου κλειδιού
$ ttl deactivate
Key file removed: /usr/local/bin/ttl.key

HTTP API

Η μεταφόρτωση και λήψη απαιτούν τον κρυπτογραφικό αγωγό του CLI (Argon2id + XChaCha20-Poly1305 + block-AEAD). Για scripts, χρησιμοποιήστε ttl send / ttl get ή τη λειτουργία --json. Τα παρακάτω endpoints είναι για τη διαχείριση αρχείων Orbit.

Λίστα αρχείων (Orbit)

$ curl https://ttl.space/v1/files -H "X-API-Key: ttl_orbit_..."
{"files":[{"token":"xK9mQ2vLpA","link":"https://ttl.space/xK9mQ2vLpA","size_bytes":1048576,"created_at":1711800600,"expires_at":1714392600,"burn":false,"expired":false}]}

Επιστρέφει όλα τα αρχεία που μεταφορτώθηκαν με αυτό το κλειδί. Απαιτείται πλάνο Orbit.

Διαγραφή αρχείου (Orbit)

$ curl -X DELETE https://ttl.space/v1/files/xK9mQ2vLpA -H "X-API-Key: ttl_orbit_..."

Επιστρέφει 204 No Content σε επιτυχία. Απαιτείται πλάνο Orbit. Το αρχείο πρέπει να ανήκει σε αυτό το κλειδί.

Απαντήσεις σφαλμάτων

ΚατάστασηΣημασία
401Μη έγκυρο ή ληγμένο κλειδί API
403Η λειτουργία απαιτεί πλάνο Orbit
404Το αρχείο δεν βρέθηκε ή δεν ανήκει σε αυτό το κλειδί
429Υπέρβαση ορίου αιτημάτων

Όρια

ΠεριορισμόςΔωρεάνOrbit
Μέγ. μέγεθος αρχείου2 GB10 GB
Μέγ. TTL7 ημέρες30 ημέρες
Μεταφορτώσεις ανά ημέρα1050
Ποσόστωση αποθήκευσης250 GB
Λίστα & διαγραφή
Ελάχ. μήκος κωδικού8 χαρακτήρες
Αιτήματα ανά IP30 ανά 10 δευτερόλεπτα
Συνδέσεις ανά IP10 ταυτόχρονες

Κρυπτογράφηση

Τα αρχεία κρυπτογραφούνται στη συσκευή σας πριν ανεβούν. Ο διακομιστής αποθηκεύει μόνο κρυπτογραφημένο κείμενο και δεν μπορεί να αποκρυπτογραφήσει τα αρχεία σας.

ΣτοιχείοΑλγόριθμος / Τιμή
Παραγωγή κλειδιούArgon2id (time=3, memory=64 MB, parallelism=1)
ΚρυπτογράφησηXChaCha20-Poly1305 AEAD

Οποιαδήποτε τροποποίηση του κρυπτογραφημένου κειμένου προκαλεί αποτυχία αποκρυπτογράφησης. Ο διακομιστής επαληθεύει ότι ο χρήστης που κατεβάζει γνωρίζει τον σωστό κωδικό πριν αποδεσμεύσει το κρυπτογραφημένο κείμενο, χρησιμοποιώντας ένα μονόδρομο token που προέρχεται από το κλειδί κρυπτογράφησης.