Упутство за коришћење

Српски

Брзи почетак

# пошаљите фајл — лозинка се аутоматски генерише, линк + лозинка се исписују
$ 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)

Лозинка се чита на безбедан начин — не приказује се у терминалу. Оригинално име фајла се задржава.

Само токен

# уместо пуног URL-а можете користити само 10-знаковни токен
$ 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: ********

Лозинка се не приказује на екрану и не чува се у историји командне линије. Приликом 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). Избегавајте коришћење у дељеним окружењима и скриптама. Уместо тога користите --password-stdin или --password-file.

4. Stdin: --password-stdin

# pipe са echo
$ echo "mySecretPass" | ttl send --password-stdin backup.tar.gz

# pipe из менаџера лозинки
$ pass show ttl/key | ttl send --password-stdin data.zip

# pipe из променљиве окружења
$ printenv MY_SECRET | ttl get --password-stdin https://ttl.space/aBcDeFgHiJ

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

Чита први ред из stdin-а. Корисно у скриптама, CI/CD токовима и аутоматизацији. Ако 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 ТРАЈАЊЕРок трајања7d
-b, --burnОбриши после читања (једно преузимање)искључено
--timeout ТРАЈАЊЕВременско ограничење преносааутоматски
--server URLURL сервераhttps://ttl.space
-h3, --http3Покушај HTTP/3 (QUIC), врати се на TCPискључено
--jsonИспиши JSON излаз у stdout (за скрипте и AI агенте)искључено

Заставице за преузимање

ЗаставицаОписПодразумевано
-p, --password PЛозинка за дешифровањеинтерактивно
--password-stdinЧитај лозинку из stdin-а
--password-file FЧитај лозинку из фајла
-o, --output DIRИзлазни директоријумтренутни директоријум
--timeout ТРАЈАЊЕВременско ограничење преносааутоматски
-h3, --http3Покушај HTTP/3 (QUIC), врати се на TCPискључено
--jsonИспиши JSON излаз у stdout (за скрипте и AI агенте)искључено

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.

Примери

Скрипта: направи резервну копију и отпреми

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

Копирај линк у clipboard (macOS)

$ ttl send -p mypass123 file.pdf | pbcopy

Копирај линк у clipboard (Linux)

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

Једнократна тајна

$ echo "$DB_PASSWORD" | ttl send --password-stdin -b -t 5m credentials.env
# линк ради тачно једном, истиче за 5 минута

JSON режим (скрипте и AI агенти)

# пошаљи — у 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 режиму сав излаз се шаље у stdout као структурирани JSON. При слању, ако лозинка није наведена, аутоматски се генерише и укључује у одговор. Излазни код је 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 / 500.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 + сегментирани AEAD). За скрипте користите ttl send / ttl get или --json режим. Следеће крајње тачке су за 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Фајл није пронађен или не припадa овом кључу
429Прекорачено ограничење захтева

Ограничења

ОграничењеБесплатноOrbit
Макс величина фајла2 GB10 GB
Макс TTL7 дана30 дана
Дневна отпремања1050
Квота складиштења500 GB
Листање и брисање
Мин дужина лозинке8 знакова
Захтева по IP адреси30 у 10 секунди
Конекција по IP адреси10 истовремених

Шифровање

Фајлови се шифрују на Вашем уређају пре отпремања. Сервер чува само шифровани текст и не може дешифровати Ваше фајлове.

КомпонентаАлгоритам / Вредност
Извођење кључаArgon2id (time=3, memory=64 MB, parallelism=1)
ШифраXChaCha20-Poly1305 AEAD

Свака измена шифрованог текста доводи до неуспеха дешифровања. Сервер проверава да преузималац зна исправну лозинку пре издавања шифрованог текста, користећи једносмерни токен изведен из кључа за шифровање.