derptun 0.16.0 → 0.16.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  `derphole` is a standalone CLI for session-scoped byte transfer and temporary local TCP service sharing. Use it for one-shot transfers, receive-code flows, and short-lived service sharing.
4
4
 
5
- [`derptun`](#long-lived-tcp-tunnels) is its companion for long-lived TCP tunnels. Use it when a tunnel needs stable tokens, restartable endpoints, and repeated client reconnects.
5
+ [`derptun`](#tcp-tunnels) is its companion for long-lived TCP tunnels. Use it when a tunnel needs stable tokens, restartable endpoints, and repeated client reconnects.
6
6
 
7
7
  [`derpssh`](#share-a-terminal) is its companion for interactive terminal sharing. Use it when two people need one shared PTY with host approval and no open ports.
8
8
 
@@ -33,11 +33,11 @@ Session tokens carry authorization. Public sessions fetch the DERP map at runtim
33
33
  - Use `share` and `open` for temporary access to a local TCP service.
34
34
  - Use `ssh invite` and `ssh accept` for SSH public key exchange.
35
35
  - Use [`derpssh`](#share-a-terminal) for approved terminal sharing.
36
- - Use [`derptun`](#long-lived-tcp-tunnels) for long-lived TCP tunnels with reusable tokens.
36
+ - Use [`derptun`](#tcp-tunnels) for long-lived TCP tunnels with reusable tokens.
37
37
 
38
38
  ## Quick Start
39
39
 
40
- `listen` receives bytes and prints a token. `pipe` sends stdin into that token. `share` and `open` do the same for local TCP services. Use [`derptun`](#long-lived-tcp-tunnels) for reusable, longer-lived tunnels.
40
+ `listen` receives bytes and prints a token. `pipe` sends stdin into that token. `share` and `open` do the same for local TCP services. Use [`derptun`](#tcp-tunnels) for reusable, longer-lived tunnels.
41
41
 
42
42
  ### Stream a Raw File
43
43
 
@@ -143,46 +143,51 @@ npx -y derpssh@latest connect <invite>
143
143
 
144
144
  The host approves the guest as read-only or read/write. The session uses the derptun transport path, so neither side needs an inbound port.
145
145
 
146
- ### Long-Lived TCP Tunnels
146
+ ### TCP Tunnels
147
147
 
148
- `derptun` is the long-lived TCP tunnel companion to `derphole`. It uses stable tokens, survives restarts on either side, and lets one client reconnect many times without opening ports on `vps-server`. It fits SSH well.
148
+ `derptun` exposes a local TCP service without requiring either side to open an inbound port. Start with a one-off tunnel:
149
149
 
150
- On `vps-server`:
150
+ On the serving machine:
151
151
 
152
152
  ```bash
153
- npx -y derptun@latest token server > server.dts
154
- npx -y derptun@latest token client --token-file server.dts > client.dtc
155
- npx -y derptun@latest serve --token-file server.dts --tcp 127.0.0.1:22
153
+ npx -y derptun@latest serve --tcp 127.0.0.1:3000
154
+ ```
155
+
156
+ `serve` prints the command for the other side:
157
+
158
+ ```bash
159
+ npx -y derptun@latest open --token DT1...
156
160
  ```
157
161
 
158
- Copy only `client.dtc` to `alice-laptop`.
162
+ Run that command on the connecting machine. It opens a local listener and forwards connections through the tunnel.
159
163
 
160
- On `alice-laptop`:
164
+ For a persistent tunnel, create both tokens on the serving machine and keep the server token there:
161
165
 
162
166
  ```bash
163
- npx -y derptun@latest open --token-file client.dtc --listen 127.0.0.1:2222
164
- ssh -p 2222 user@127.0.0.1
167
+ npx -y derptun@latest token server > server.dts
168
+ npx -y derptun@latest token client --token-file server.dts > client.dt1
169
+ npx -y derptun@latest serve --token-file server.dts --tcp 127.0.0.1:3000
165
170
  ```
166
171
 
167
- For SSH without a separate local listener, use `ProxyCommand`:
172
+ Copy only `client.dt1` to the connecting machine.
173
+
174
+ On the connecting machine:
168
175
 
169
176
  ```bash
170
- ssh -o ProxyCommand='npx -y derptun@latest connect --token-file ./client.dtc --stdio' foo@127.0.0.1
177
+ npx -y derptun@latest open --token-file client.dt1 --listen 127.0.0.1:3001
171
178
  ```
172
179
 
173
- The server token is serving authority. Keep it on the serving machine or in its secret manager. The client token can connect until expiry, but cannot serve or mint tokens.
180
+ The server token is serving authority. Keep it on the serving machine or in a secret manager. Client tokens can connect until expiry, but cannot serve or mint tokens.
174
181
 
175
182
  Server tokens default to 180 days. Client tokens default to 90 days and cannot outlive their server token. Set a relative lifetime with `--days`, or use an absolute expiry:
176
183
 
177
184
  ```bash
178
185
  npx -y derptun@latest token server --expires 2026-05-01T00:00:00Z > server.dts
179
- npx -y derptun@latest token client --token-file server.dts --expires 2026-04-25T00:00:00Z > client.dtc
186
+ npx -y derptun@latest token client --token-file server.dts --expires 2026-04-25T00:00:00Z > client.dt1
180
187
  ```
181
188
 
182
189
  Use `--token TOKEN` for inline one-off commands. Prefer `--token-file PATH` for durable tokens. `--token-stdin` reads the token from the first stdin line.
183
190
 
184
- `derptun` is TCP-only for now. UDP forwarding is planned for use cases like Minecraft Bedrock servers.
185
-
186
191
  ### Useful Extras
187
192
 
188
193
  Use the development channel for the latest commit from `main`:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "derptun",
3
- "version": "0.16.0",
3
+ "version": "0.16.2",
4
4
  "license": "BSD-3-Clause",
5
5
  "bin": {
6
6
  "derptun": "bin/derptun.js"