htn-tunnel 0.3.0 → 0.3.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 +61 -45
- package/package.json +6 -1
package/README.md
CHANGED
|
@@ -37,14 +37,16 @@ localhost:3000 ──tunnel──▶ Your VPS ──internet──▶ https:
|
|
|
37
37
|
|
|
38
38
|
| Feature | Description |
|
|
39
39
|
|---------|-------------|
|
|
40
|
+
| **Zero-auth start** | `htn-tunnel http 3000` works instantly, no registration |
|
|
40
41
|
| **HTTP tunnels** | HTTPS subdomain routing (random or permanent) |
|
|
41
42
|
| **TCP tunnels** | Raw port forwarding (databases, SSH, etc.) |
|
|
43
|
+
| **Browser login** | `htn-tunnel login` opens browser, key auto-saved |
|
|
42
44
|
| **Auto-TLS** | Wildcard Let's Encrypt via DNS-01 (Cloudflare) |
|
|
43
45
|
| **WebSocket** | Full proxy with Origin rewrite (HMR, dev servers) |
|
|
44
|
-
| **API keys** | Self-service registration via web dashboard |
|
|
45
46
|
| **Fixed subdomains** | Claim once, yours forever |
|
|
46
|
-
| **
|
|
47
|
-
| **
|
|
47
|
+
| **Live analytics** | Real-time request log, traffic charts, status breakdown |
|
|
48
|
+
| **User dashboard** | Register, manage subdomains, view traffic |
|
|
49
|
+
| **Admin dashboard** | Manage users, tunnels, server config, analytics |
|
|
48
50
|
| **Auto-reconnect** | Heartbeat + exponential backoff |
|
|
49
51
|
| **Single binary** | No dependencies, cross-platform |
|
|
50
52
|
|
|
@@ -97,24 +99,28 @@ sudo mv htn-tunnel /usr/local/bin/
|
|
|
97
99
|
|
|
98
100
|
## Quick Start
|
|
99
101
|
|
|
100
|
-
###
|
|
102
|
+
### Instant (no registration)
|
|
101
103
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
104
|
+
```bash
|
|
105
|
+
htn-tunnel http 3000
|
|
106
|
+
```
|
|
105
107
|
|
|
106
|
-
|
|
108
|
+
```
|
|
109
|
+
Tunnel: https://abc12xyz.33.id.vn → localhost:3000
|
|
110
|
+
Status: connected
|
|
111
|
+
```
|
|
107
112
|
|
|
108
|
-
|
|
113
|
+
That's it! You get a random subdomain, limited to 1 tunnel, auto-expires after 2h.
|
|
109
114
|
|
|
110
|
-
|
|
111
|
-
htn-tunnel auth htk_your_key_here --server 33.id.vn:4443
|
|
112
|
-
```
|
|
115
|
+
### With fixed subdomain
|
|
113
116
|
|
|
114
|
-
|
|
117
|
+
Register via browser to claim a permanent subdomain:
|
|
115
118
|
|
|
116
119
|
```bash
|
|
117
|
-
htn-tunnel
|
|
120
|
+
htn-tunnel login --server 33.id.vn:4443
|
|
121
|
+
# Opens browser → register → key saved automatically
|
|
122
|
+
|
|
123
|
+
htn-tunnel http 3000:myapp
|
|
118
124
|
```
|
|
119
125
|
|
|
120
126
|
```
|
|
@@ -122,9 +128,9 @@ htn-tunnel http 3000 --subdomain myapp
|
|
|
122
128
|
Status: connected
|
|
123
129
|
```
|
|
124
130
|
|
|
125
|
-
|
|
131
|
+
> Your subdomain is permanently yours. Reconnect anytime with the same name.
|
|
126
132
|
|
|
127
|
-
|
|
133
|
+
If you try a custom subdomain without logging in, htn-tunnel auto-prompts you to register.
|
|
128
134
|
|
|
129
135
|
### TCP tunnel
|
|
130
136
|
|
|
@@ -138,15 +144,17 @@ htn-tunnel tcp 5432
|
|
|
138
144
|
## CLI Reference
|
|
139
145
|
|
|
140
146
|
```
|
|
141
|
-
htn-tunnel http <port>
|
|
142
|
-
htn-tunnel tcp <port> Create TCP tunnel
|
|
143
|
-
htn-tunnel
|
|
144
|
-
htn-tunnel
|
|
147
|
+
htn-tunnel http <port>[:<subdomain>] Create HTTP tunnel (anonymous or authenticated)
|
|
148
|
+
htn-tunnel tcp <port> Create TCP tunnel (requires auth)
|
|
149
|
+
htn-tunnel login [--server host:port] Register/login via browser
|
|
150
|
+
htn-tunnel logout Clear saved auth key
|
|
151
|
+
htn-tunnel dashboard Open web dashboard in browser
|
|
152
|
+
htn-tunnel status Show account info (or anonymous state)
|
|
153
|
+
htn-tunnel auth <key> [--server host:port] Save API key manually
|
|
145
154
|
```
|
|
146
155
|
|
|
147
156
|
| Flag | Description |
|
|
148
157
|
|------|-------------|
|
|
149
|
-
| `--subdomain <name>` | Fixed subdomain (HTTP only) |
|
|
150
158
|
| `--server <host:port>` | Server address |
|
|
151
159
|
| `--token <key>` | Override auth token |
|
|
152
160
|
|
|
@@ -159,9 +167,9 @@ htn-tunnel status Show account info
|
|
|
159
167
|
| **User** | `https://dashboard.33.id.vn/_dashboard/` | API key |
|
|
160
168
|
| **Admin** | `https://dashboard.33.id.vn/_admin/` | Admin key |
|
|
161
169
|
|
|
162
|
-
**User dashboard:** register, manage subdomains,
|
|
170
|
+
**User dashboard:** register, manage subdomains, live request log, traffic chart, status breakdown, top paths
|
|
163
171
|
|
|
164
|
-
**Admin dashboard:** manage all users,
|
|
172
|
+
**Admin dashboard:** manage all users/tunnels, edit config, server-wide analytics with live log stream
|
|
165
173
|
|
|
166
174
|
---
|
|
167
175
|
|
|
@@ -230,14 +238,16 @@ Máy bạn (localhost:3000) ──tunnel──▶ VPS ──internet──▶
|
|
|
230
238
|
|
|
231
239
|
| Tính năng | Mô tả |
|
|
232
240
|
|-----------|-------|
|
|
241
|
+
| **Dùng ngay** | `htn-tunnel http 3000` chạy ngay, không cần đăng ký |
|
|
233
242
|
| **HTTP tunnels** | Subdomain HTTPS (random hoặc cố định vĩnh viễn) |
|
|
234
243
|
| **TCP tunnels** | Forward port bất kỳ (database, SSH, ...) |
|
|
244
|
+
| **Đăng nhập qua browser** | `htn-tunnel login` mở browser, key tự lưu |
|
|
235
245
|
| **Auto-TLS** | Wildcard Let's Encrypt qua DNS-01 (Cloudflare) |
|
|
236
246
|
| **WebSocket** | Proxy đầy đủ, hỗ trợ HMR (Next.js, Vite) |
|
|
237
|
-
| **API key** | Người dùng tự đăng ký qua dashboard |
|
|
238
247
|
| **Subdomain cố định** | Claim 1 lần, dùng mãi mãi |
|
|
239
|
-
| **
|
|
240
|
-
| **
|
|
248
|
+
| **Analytics trực tiếp** | Request log real-time, biểu đồ traffic, phân tích status |
|
|
249
|
+
| **User dashboard** | Đăng ký, quản lý subdomain, xem traffic |
|
|
250
|
+
| **Admin dashboard** | Quản lý users, tunnels, config, analytics |
|
|
241
251
|
| **Tự động kết nối lại** | Heartbeat + exponential backoff |
|
|
242
252
|
| **Single binary** | Không cần cài thêm gì, chạy mọi nền tảng |
|
|
243
253
|
|
|
@@ -290,24 +300,28 @@ sudo mv htn-tunnel /usr/local/bin/
|
|
|
290
300
|
|
|
291
301
|
## Hướng dẫn nhanh
|
|
292
302
|
|
|
293
|
-
###
|
|
303
|
+
### Dùng ngay (không cần đăng ký)
|
|
294
304
|
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
305
|
+
```bash
|
|
306
|
+
htn-tunnel http 3000
|
|
307
|
+
```
|
|
298
308
|
|
|
299
|
-
|
|
309
|
+
```
|
|
310
|
+
Tunnel: https://abc12xyz.33.id.vn → localhost:3000
|
|
311
|
+
Status: connected
|
|
312
|
+
```
|
|
300
313
|
|
|
301
|
-
|
|
314
|
+
Xong! Bạn nhận subdomain ngẫu nhiên, giới hạn 1 tunnel, tự hết hạn sau 2h.
|
|
302
315
|
|
|
303
|
-
|
|
304
|
-
htn-tunnel auth htk_key_của_bạn --server 33.id.vn:4443
|
|
305
|
-
```
|
|
316
|
+
### Với subdomain cố định
|
|
306
317
|
|
|
307
|
-
|
|
318
|
+
Đăng ký qua browser để claim subdomain riêng:
|
|
308
319
|
|
|
309
320
|
```bash
|
|
310
|
-
htn-tunnel
|
|
321
|
+
htn-tunnel login --server 33.id.vn:4443
|
|
322
|
+
# Mở browser → đăng ký → key tự động lưu
|
|
323
|
+
|
|
324
|
+
htn-tunnel http 3000:myapp
|
|
311
325
|
```
|
|
312
326
|
|
|
313
327
|
```
|
|
@@ -315,9 +329,9 @@ htn-tunnel http 3000 --subdomain myapp
|
|
|
315
329
|
Status: connected
|
|
316
330
|
```
|
|
317
331
|
|
|
318
|
-
|
|
332
|
+
> Subdomain của bạn là vĩnh viễn. Kết nối lại bất kỳ lúc nào.
|
|
319
333
|
|
|
320
|
-
|
|
334
|
+
Nếu dùng subdomain cố định mà chưa đăng nhập, htn-tunnel sẽ tự mở browser cho bạn đăng ký.
|
|
321
335
|
|
|
322
336
|
### TCP tunnel
|
|
323
337
|
|
|
@@ -331,15 +345,17 @@ htn-tunnel tcp 5432
|
|
|
331
345
|
## Hướng dẫn CLI
|
|
332
346
|
|
|
333
347
|
```
|
|
334
|
-
htn-tunnel http <port>
|
|
335
|
-
htn-tunnel tcp <port> Tạo TCP tunnel
|
|
336
|
-
htn-tunnel
|
|
348
|
+
htn-tunnel http <port>[:<subdomain>] Tạo HTTP tunnel (ẩn danh hoặc đã đăng ký)
|
|
349
|
+
htn-tunnel tcp <port> Tạo TCP tunnel (cần đăng ký)
|
|
350
|
+
htn-tunnel login [--server host:port] Đăng ký/đăng nhập qua browser
|
|
351
|
+
htn-tunnel logout Xóa key đã lưu
|
|
352
|
+
htn-tunnel dashboard Mở dashboard trên browser
|
|
337
353
|
htn-tunnel status Xem thông tin tài khoản
|
|
354
|
+
htn-tunnel auth <key> [--server host:port] Lưu API key thủ công
|
|
338
355
|
```
|
|
339
356
|
|
|
340
357
|
| Flag | Mô tả |
|
|
341
358
|
|------|-------|
|
|
342
|
-
| `--subdomain <tên>` | Subdomain cố định (chỉ HTTP) |
|
|
343
359
|
| `--server <host:port>` | Địa chỉ server |
|
|
344
360
|
| `--token <key>` | Override auth token |
|
|
345
361
|
|
|
@@ -352,9 +368,9 @@ htn-tunnel status Xem thông tin tài khoản
|
|
|
352
368
|
| **Người dùng** | `https://dashboard.33.id.vn/_dashboard/` | API key |
|
|
353
369
|
| **Admin** | `https://dashboard.33.id.vn/_admin/` | Admin key |
|
|
354
370
|
|
|
355
|
-
**User dashboard:** đăng ký, quản lý subdomain,
|
|
371
|
+
**User dashboard:** đăng ký, quản lý subdomain, request log real-time, biểu đồ traffic, top paths
|
|
356
372
|
|
|
357
|
-
**Admin dashboard:** quản lý users
|
|
373
|
+
**Admin dashboard:** quản lý users/tunnels, sửa config, analytics toàn server với live log stream
|
|
358
374
|
|
|
359
375
|
---
|
|
360
376
|
|
package/package.json
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "htn-tunnel",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"description": "Self-hosted tunnel client — expose localhost to the internet",
|
|
5
5
|
"bin": {
|
|
6
6
|
"htn-tunnel": "./bin/htn-tunnel.js"
|
|
7
7
|
},
|
|
8
|
+
"files": [
|
|
9
|
+
"bin/htn-tunnel.js",
|
|
10
|
+
"lib/install.js",
|
|
11
|
+
"README.md"
|
|
12
|
+
],
|
|
8
13
|
"scripts": {
|
|
9
14
|
"postinstall": "node lib/install.js"
|
|
10
15
|
},
|