@serve.zone/remoteingress 4.19.0 → 4.20.0
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/deno.json +1 -1
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/index.js +8 -1
- package/package.json +1 -1
- package/readme.md +45 -3
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/index.ts +8 -0
package/deno.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@serve.zone/remoteingress',
|
|
6
|
-
version: '4.
|
|
6
|
+
version: '4.20.0',
|
|
7
7
|
description: 'Edge ingress tunnel for DcRouter - tunnels TCP and UDP traffic from the network edge to SmartProxy over TLS or QUIC, preserving client IP via PROXY protocol.'
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSwyQkFBMkI7SUFDakMsT0FBTyxFQUFFLFFBQVE7SUFDakIsV0FBVyxFQUFFLCtKQUErSjtDQUM3SyxDQUFBIn0=
|
package/dist_ts/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { RemoteIngressEdge } from './classes.remoteingressedge.js';
|
|
2
2
|
import { RemoteIngressHub } from './classes.remoteingresshub.js';
|
|
3
|
+
import { commitinfo } from './00_commitinfo_data.js';
|
|
3
4
|
export * from './classes.remoteingresshub.js';
|
|
4
5
|
export * from './classes.remoteingressedge.js';
|
|
5
6
|
export * from './classes.token.js';
|
|
@@ -9,6 +10,8 @@ Usage:
|
|
|
9
10
|
remoteingress hub [--tunnel-port 8443] [--target-host 127.0.0.1]
|
|
10
11
|
remoteingress edge --token <connection-token>
|
|
11
12
|
remoteingress edge --hub-host <host> --edge-id <id> --secret <secret> [--hub-port 8443]
|
|
13
|
+
remoteingress --version
|
|
14
|
+
remoteingress --help
|
|
12
15
|
|
|
13
16
|
Environment:
|
|
14
17
|
REMOTEINGRESS_MODE=hub|edge
|
|
@@ -64,6 +67,10 @@ const waitForever = async (stop) => {
|
|
|
64
67
|
};
|
|
65
68
|
export const runCli = async () => {
|
|
66
69
|
const args = process.argv.slice(2);
|
|
70
|
+
if (args.includes('--version') || args.includes('-v') || args.includes('version')) {
|
|
71
|
+
console.log(commitinfo.version);
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
67
74
|
if (args.includes('--help') || args.includes('-h')) {
|
|
68
75
|
console.log(usage);
|
|
69
76
|
return;
|
|
@@ -118,4 +125,4 @@ export const runCli = async () => {
|
|
|
118
125
|
}
|
|
119
126
|
console.log(usage);
|
|
120
127
|
};
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQXNDLE1BQU0sK0JBQStCLENBQUM7QUFDckcsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXJELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLG9CQUFvQixDQUFDO0FBRW5DLE1BQU0sS0FBSyxHQUFHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FrQmIsQ0FBQztBQUVGLE1BQU0sT0FBTyxHQUFHLENBQUMsSUFBYyxFQUFFLElBQVksRUFBc0IsRUFBRTtJQUNuRSxNQUFNLE1BQU0sR0FBRyxLQUFLLElBQUksR0FBRyxDQUFDO0lBQzVCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUMvRCxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2hCLE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ2YsT0FBTyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDLENBQUM7QUFFRixNQUFNLFVBQVUsR0FBRyxDQUFDLEtBQXlCLEVBQUUsUUFBZ0IsRUFBVSxFQUFFO0lBQ3pFLElBQUksQ0FB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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@serve.zone/remoteingress",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.20.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Edge ingress tunnel for DcRouter - tunnels TCP and UDP traffic from the network edge to SmartProxy over TLS or QUIC, preserving client IP via PROXY protocol.",
|
|
6
6
|
"main": "dist_ts/index.js",
|
package/readme.md
CHANGED
|
@@ -37,10 +37,24 @@ The edge binds public TCP and UDP ports assigned by the hub. Each accepted conne
|
|
|
37
37
|
|
|
38
38
|
## Install
|
|
39
39
|
|
|
40
|
+
Use the package as a TypeScript library:
|
|
41
|
+
|
|
40
42
|
```bash
|
|
41
43
|
pnpm add @serve.zone/remoteingress
|
|
42
44
|
```
|
|
43
45
|
|
|
46
|
+
Install the CLI on a Linux edge or hub host with the released self-extracting binary:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
curl -sSL https://code.foss.global/serve.zone/remoteingress/raw/branch/main/install.sh | sudo bash
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
The installer downloads `remoteingress-linux-x64` or `remoteingress-linux-arm64` from the latest Gitea release, installs it under `/opt/remoteingress`, and links `/usr/local/bin/remoteingress`. Use `--version vX.Y.Z` to pin a release, `--install-dir /path` to change the target directory, or `--source` to clone the tag and build the NodeNext package locally.
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
curl -sSL https://code.foss.global/serve.zone/remoteingress/raw/branch/main/install.sh | sudo bash -s -- --source
|
|
56
|
+
```
|
|
57
|
+
|
|
44
58
|
## Hub Side
|
|
45
59
|
|
|
46
60
|
Run the hub next to the private service you want to expose. In dcrouter deployments the target is usually SmartProxy on `127.0.0.1`.
|
|
@@ -133,11 +147,11 @@ await edge.start({ token });
|
|
|
133
147
|
|
|
134
148
|
## CLI Mode
|
|
135
149
|
|
|
136
|
-
The package entry point exports `runCli()`, and the
|
|
150
|
+
The package entry point exports `runCli()`, and the `remoteingress` CLI can run hub or edge mode.
|
|
137
151
|
|
|
138
152
|
```bash
|
|
139
|
-
|
|
140
|
-
|
|
153
|
+
remoteingress hub --tunnel-port 8443 --target-host 127.0.0.1
|
|
154
|
+
remoteingress edge --token eyJoIjoiaW5ncmVzcy1odWIuZXhhbXBsZS5jb20i...
|
|
141
155
|
```
|
|
142
156
|
|
|
143
157
|
Environment-based startup is also supported:
|
|
@@ -152,6 +166,34 @@ Environment-based startup is also supported:
|
|
|
152
166
|
| `REMOTEINGRESS_ALLOWED_EDGES_JSON` | Hub-side allowed edge list |
|
|
153
167
|
| `REMOTEINGRESS_PERFORMANCE_JSON` | Optional performance configuration |
|
|
154
168
|
|
|
169
|
+
## Docker Image
|
|
170
|
+
|
|
171
|
+
Release builds publish a multi-arch OCI image at `code.foss.global/serve.zone/remoteingress:latest` for `linux/amd64` and `linux/arm64`.
|
|
172
|
+
|
|
173
|
+
Hub example:
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
docker run --rm --name remoteingress-hub \
|
|
177
|
+
--network host \
|
|
178
|
+
-e REMOTEINGRESS_MODE=hub \
|
|
179
|
+
-e REMOTEINGRESS_TARGET_HOST=127.0.0.1 \
|
|
180
|
+
-e REMOTEINGRESS_ALLOWED_EDGES_JSON='[{"id":"edge-fra-01","secret":"replace-me","listenPorts":[80,443]}]' \
|
|
181
|
+
code.foss.global/serve.zone/remoteingress:latest
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
Edge example:
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
docker run --rm --name remoteingress-edge \
|
|
188
|
+
--network host \
|
|
189
|
+
--cap-add NET_ADMIN \
|
|
190
|
+
-e REMOTEINGRESS_MODE=edge \
|
|
191
|
+
-e REMOTEINGRESS_TOKEN='<connection-token>' \
|
|
192
|
+
code.foss.global/serve.zone/remoteingress:latest
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
Use host networking when the container must bind public ports directly or reach a localhost target on the host. `NET_ADMIN` is needed only when the edge should apply nftables firewall snapshots.
|
|
196
|
+
|
|
155
197
|
## Transport Modes
|
|
156
198
|
|
|
157
199
|
| Mode | Behavior |
|
package/ts/00_commitinfo_data.ts
CHANGED
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@serve.zone/remoteingress',
|
|
6
|
-
version: '4.
|
|
6
|
+
version: '4.20.0',
|
|
7
7
|
description: 'Edge ingress tunnel for DcRouter - tunnels TCP and UDP traffic from the network edge to SmartProxy over TLS or QUIC, preserving client IP via PROXY protocol.'
|
|
8
8
|
}
|
package/ts/index.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { RemoteIngressEdge } from './classes.remoteingressedge.js';
|
|
2
2
|
import { RemoteIngressHub, type IHubConfig, type TAllowedEdge } from './classes.remoteingresshub.js';
|
|
3
|
+
import { commitinfo } from './00_commitinfo_data.js';
|
|
3
4
|
|
|
4
5
|
export * from './classes.remoteingresshub.js';
|
|
5
6
|
export * from './classes.remoteingressedge.js';
|
|
@@ -11,6 +12,8 @@ Usage:
|
|
|
11
12
|
remoteingress hub [--tunnel-port 8443] [--target-host 127.0.0.1]
|
|
12
13
|
remoteingress edge --token <connection-token>
|
|
13
14
|
remoteingress edge --hub-host <host> --edge-id <id> --secret <secret> [--hub-port 8443]
|
|
15
|
+
remoteingress --version
|
|
16
|
+
remoteingress --help
|
|
14
17
|
|
|
15
18
|
Environment:
|
|
16
19
|
REMOTEINGRESS_MODE=hub|edge
|
|
@@ -78,6 +81,11 @@ const waitForever = async (stop: () => Promise<void>) => {
|
|
|
78
81
|
|
|
79
82
|
export const runCli = async () => {
|
|
80
83
|
const args = process.argv.slice(2);
|
|
84
|
+
if (args.includes('--version') || args.includes('-v') || args.includes('version')) {
|
|
85
|
+
console.log(commitinfo.version);
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
|
|
81
89
|
if (args.includes('--help') || args.includes('-h')) {
|
|
82
90
|
console.log(usage);
|
|
83
91
|
return;
|