Upute za korištenje

← Home

Brzi početak

# Slanje datoteke — lozinka se automatski generira, link + lozinka se ispisuju
$ 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

# Preuzimanje — lozinka se traži interaktivno
$ ttl get https://ttl.space/aBcDeFgHiJ
Enter password: ********
Password verified
◉★✧· Phew, secret.pdf landed safe and sound (1.2 MB)

CLI automatski šifrira, učitava, preuzima i dešifrira. Poslužitelj nikad ne vidi vašu lozinku ni vaše nešifrirane podatke.

Instalacija

Homebrew (macOS)

$ brew install tweenietomatoes/ttl/ttl

Scoop (Windows)

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

Unaprijed kompilirana datoteka

# Preuzmite za svoju platformu s izdanja
$ 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

Iz izvornog koda

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

Provjera

$ ttl version
ttl v1.3.0

Slanje datoteka

Jednostavno slanje

# Automatski generiraj lozinku, zadani TTL 7d
$ ttl send report.xlsx

Ako u terminalu nije navedena lozinka, CLI pita:

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

Pritisnite Enter ili unesite y za automatsko generiranje.

Vlastita lozinka

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

Brisanje nakon čitanja

# Datoteka se trajno briše nakon prvog preuzimanja
$ ttl send -b photo.jpg

Prilagođeni TTL

$ ttl send -t 5m temp-credentials.txt   # istječe za 5 minuta
$ ttl send -t 30m meeting-link.txt      # istječe za 30 minuta
$ ttl send -t 6h backup.tar.gz          # istječe za 6 sati
$ ttl send -t 1d daily-report.pdf       # istječe za 1 dan
$ ttl send -t 3d project-archive.zip    # istječe za 3 dana
$ ttl send -t 5d design-assets.zip      # istječe za 5 dana
$ ttl send report.xlsx                  # istječe za 7 dana (zadano)

Preuzimanje datoteka

Interaktivno (terminal)

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

Lozinka se ne prikazuje. Izvorni naziv datoteke se obnavlja.

Samo s tokenom

# Možete koristiti samo 10-znamenkasti token umjesto pune URL adrese
$ ttl get aBcDeFgHiJ
Enter password: ********
Password verified
◉★✧· Phew, document.pdf landed safe and sound (4.2 MB)

Izlazni direktorij

$ ttl get -o ~/Downloads aBcDeFgHiJ

Prema zadanim postavkama datoteke se spremaju u trenutni direktorij. Koristite -o / --output za određivanje drugog direktorija.

S oznakom lozinke

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

Preglednik

Datoteke možete preuzeti i dešifrirati i u pregledniku izravnim posjetom poveznici. Web sučelje koristi istu kriptografsku biblioteku i traži vašu lozinku. Nije potrebna instalacija softvera.

Upravljanje lozinkama

Lozinka služi kao polazna vrijednost za izvođenje ključa za šifriranje. Nikad ne napušta vaš uređaj i nikad se ne šalje poslužitelju. Postoji pet načina za njeno navođenje:

1. Automatsko generiranje (samo pri slanju)

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

Generira kriptografski nasumičnu 8-znakovnu lozinku iz [0-9A-Za-z]. Dostupno samo kod send u terminalu.

2. Interaktivni unos

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

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

Lozinka se ne prikazuje i ne sprema u povijest ljuske. Kod send prvo odabirete želite li automatsko generiranje. Kod get odmah se traži unos.

3. Oznaka: -p / --password

$ ttl send -p mySecretPass file.zip
$ ttl get --password mySecretPass https://ttl.space/aBcDeFgHiJ
-p / --password vidljiv je u izlazu ps aux i može biti spremljen u povijest ljuske (~/.bash_history). Izbjegavajte korištenje u dijeljenim okruženjima i skriptama. Umjesto toga koristite --password-stdin ili --password-file.

4. Stdin: --password-stdin

# Prosljeđivanje putem echo
$ echo "mySecretPass" | ttl send --password-stdin backup.tar.gz

# Prosljeđivanje iz upravitelja lozinki
$ pass show ttl/key | ttl send --password-stdin data.zip

# Prosljeđivanje iz varijable okruženja
$ printenv MY_SECRET | ttl get --password-stdin https://ttl.space/aBcDeFgHiJ

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

Čita prvi redak iz stdin-a. Korisno u skriptama, CI/CD cjevovodima i automatizaciji. Ako stdin nije terminal i nije naveden izvor lozinke, CLI se završava s greškom (osim s --json, koji automatski generira lozinku).

5. Datoteka: --password-file

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

Čita prvi redak datoteke (završni znak novog retka se uklanja). Kompatibilno s Docker Secrets (/run/secrets/), Vault agent datotekama i sličnim obrascima.

6. Automatski otkrivena datoteka: ttl.password

Ako nije navedena eksplicitna lozinka, CLI traži datoteku ttl.password pokraj programa, zatim ~/.ttl/password. Prvi redak koristi se kao lozinka.

Istovremeno se može koristiti samo jedan eksplicitni izvor lozinke. -p / --password, --password-stdin i --password-file ne mogu se kombinirati. Automatski otkrivena datoteka ttl.password provjerava se samo kada nijedan od ovih nije naveden. Minimalna duljina: 8 znakova.

Referenca opcija

Oznake za slanje

OznakaOpisZadano
-p, --password PLozinka za šifriranjeinteraktivno
--password-stdinČitanje lozinke iz stdin-a
--password-file FČitanje lozinke iz datoteke
-t, --ttl DURTrajanje valjanosti7d
-b, --burnBrisanje nakon čitanja (jednokratno preuzimanje)isključeno
--timeout DURVremensko ograničenje prijenosaautomatski
--server URLURL poslužiteljahttps://ttl.space
-h3, --http3Pokušaj HTTP/3 (QUIC), povratak na TCPisključeno
--jsonJSON izlaz na stdout (za skripte i AI agente)isključeno

Oznake za preuzimanje

OznakaOpisZadano
-p, --password PLozinka za dešifriranjeinteraktivno
--password-stdinČitanje lozinke iz stdin-a
--password-file FČitanje lozinke iz datoteke
-o, --output DIRIzlazni direktorijtrenutni direktorij
--timeout DURVremensko ograničenje prijenosaautomatski
-h3, --http3Pokušaj HTTP/3 (QUIC), povratak na TCPisključeno
--jsonJSON izlaz na stdout (za skripte i AI agente)isključeno

TTL vrijednosti

Besplatno: 5m 10m 15m 30m 1h 2h 3h 6h 12h 24h 1d 2d 3d 4d 5d 6d 7d

Orbit dodaje: 14d 15d 28d 30d

Vremensko ograničenje

Zadano: automatski — procijenjeno na temelju veličine datoteke uz pretpostavku od 1 Mbps + 2 minute rezerve (minimum 5 minuta). Nadjačajte s --timeout 10m ili --timeout 1h.

Primjeri

Skripta: sigurnosna kopija i učitavanje

#!/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

Kopiranje linka u međuspremnik (macOS)

$ ttl send -p mypass123 file.pdf | pbcopy

Kopiranje linka u međuspremnik (Linux)

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

Jednokratna tajna sa samobrisanjem

$ echo "$DB_PASSWORD" | ttl send --password-stdin -b -t 5m credentials.env
# Link funkcionira točno jednom, istječe nakon 5 minuta

JSON način (skripte & AI agenti)

# slanje — lozinka se automatski generira u JSON načinu
$ ttl --json send report.pdf
{"ok":true,"link":"https://ttl.space/xK9mQ2vLpA","filename":"report.pdf","size":2097152,"ttl":"7d","burn":false,"password":"aB3kL9mX"}

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

# greške vraćaju ok:false
{"ok":false,"error":"Link not found"}

U --json načinu, sav izlaz je strukturirani JSON na stdout. Ako lozinka nije navedena prilikom slanja, automatski se generira i uključuje u odgovor. Izlazni kod je 0 pri uspjehu i 1 pri grešci.

Orbit plan

Orbit omogućuje veće datoteke (10 GB), duže čuvanje (30 dana) i upravljanje datotekama (popis i brisanje).

API ključ otkriva se automatski: varijabla okruženja TTL_API_KEY, ttl.key pokraj programa ili ~/.ttl/key. Koristite ttl activate za spremanje ključa ili ga ručno upišite na jedno od ovih mjesta.

# aktivirajte ključ
$ ttl activate ttl_orbit_aBcDeFgHiJ...
Orbit plan activated. Key saved to /usr/local/bin/ttl.key

# provjerite plan i korištenje
$ 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

# pošaljite s produženim TTL-om
$ ttl send -t 30d large-backup.tar.gz

# prikažite nedavne prijenose
$ 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

# obrišite datoteku
$ ttl delete xK9mQ2vLpA
Deleted: xK9mQ2vLpA

# uklonite spremljeni ključ
$ ttl deactivate
Key file removed: /usr/local/bin/ttl.key

HTTP API

Prijenos i preuzimanje zahtijevaju enkripcijski pipeline CLI-a (Argon2id + XChaCha20-Poly1305 + blok-AEAD). Za skripte koristite ttl send / ttl get ili --json način. Krajnje točke u nastavku služe za Orbit upravljanje datotekama.

Popis datoteka (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}]}

Vraća sve datoteke prenesene ovim ključem. Zahtijeva Orbit plan.

Obriši datoteku (Orbit)

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

Vraća 204 No Content pri uspjehu. Zahtijeva Orbit plan. Datoteka mora pripadati ovom ključu.

Odgovori na pogreške

StatusZnačenje
401Nevažeći ili istekli API ključ
403Značajka zahtijeva Orbit plan
404Datoteka nije pronađena ili ne pripada ovom ključu
429Prekoračeno ograničenje zahtjeva

Ograničenja

OgraničenjeBesplatnoOrbit
Maks. veličina datoteke2 GB10 GB
Maks. TTL7 dana30 dana
Prijenosi dnevno1050
Kvota pohrane250 GB
Popis i brisanje
Min. duljina lozinke8 znakova
Zahtjevi po IP-u30 u 10 sekundi
Veze po IP-u10 istovremenih

Šifriranje

Datoteke se šifriraju na vašem uređaju prije učitavanja. Poslužitelj pohranjuje samo šifrirani tekst i ne može dešifrirati vaše datoteke.

KomponentaAlgoritam / Vrijednost
Izvođenje ključaArgon2id (time=3, memory=64 MB, parallelism=1)
ŠifraXChaCha20-Poly1305 AEAD

Svaka izmjena šifriranog teksta uzrokuje neuspjeh dešifriranja. Poslužitelj provjerava da preuzimatelj zna ispravnu lozinku prije nego što oslobodi šifrirani tekst, koristeći jednosmjerni token izveden iz ključa za šifriranje.