blob: 4daffceb843d192ceb74e89e3871ae01a25d6e38 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
# Tesseras-Paste
A decentralized pastebin built on [tesseras-dht](https://crates.io/crates/tesseras-dht). Pastes are encrypted client-side, distributed across the DHT, and served over HTTP.
## Features
- End-to-end encrypted pastes (XChaCha20-Poly1305)
- Decentralized storage via Kademlia DHT
- NAT traversal (hole-punching and proxy relay)
- HTTP serving with content-key URLs
- TTL-based expiry and pinning
- Public (unencrypted) paste mode
- OpenBSD `pledge(2)` sandboxing
## Binaries
**tpd** — daemon that runs a DHT node, stores pastes, and serves HTTP.
```
usage: tpd [-p port] [-d dir] [-s sock] [-w http_port] [-g] [-n] [-b host:port]
-p port UDP port (0 = random)
-d dir data directory
-s sock Unix socket path
-w port HTTP server port
-g global NAT (public server)
-n no auto-bootstrap (skip DNS SRV)
-b host:port bootstrap peer (repeatable)
```
**tp** — CLI client that talks to the daemon over a Unix socket.
```
usage: tp [-s sock] <command> [args]
put [-t ttl] [-p] read stdin, store paste (-p = public, no encryption)
get <key> retrieve paste to stdout
del <key> delete paste
pin <key> pin (never expires)
unpin <key> unpin
status show daemon status
```
## Quick start
```sh
# Start the daemon
tpd -p 4433 -w 9999 -d /var/tesseras-paste
# Store a paste
echo "hello" | tp put
# => Ey2rNiNukhNpqUouaSnnZwTtCgeCgMx2FrCuMr3whBxx
# Retrieve it
tp get Ey2rNiNukhNpqUouaSnnZwTtCgeCgMx2FrCuMr3whBxx
```
## Links
- [Website](https://tesseras.net)
- [Source code](https://got.tesseras.net/?action=summary&path=tesseras-paste.git) (primary)
- [Source hut mirror](https://git.sr.ht/~ijanc/tesseras-paste)
- [GitHub mirror](https://github.com/ijanc/tesseras-paste)
## License
ISC — see [LICENSE](LICENSE).
|