aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
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).