terminay 4.2.2 → 4.3.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/README.md +34 -1
- package/dist/advertise.d.ts +9 -0
- package/dist/advertise.js +10 -0
- package/dist/advertise.js.map +1 -0
- package/dist/args.d.ts +4 -1
- package/dist/args.js +53 -2
- package/dist/args.js.map +1 -1
- package/dist/commands/install.d.ts +1 -0
- package/dist/commands/install.js +21 -0
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/lifecycle.d.ts +1 -0
- package/dist/commands/lifecycle.js +8 -0
- package/dist/commands/lifecycle.js.map +1 -1
- package/dist/commands/upgrade.js +21 -1
- package/dist/commands/upgrade.js.map +1 -1
- package/dist/layout.d.ts +2 -0
- package/dist/layout.js.map +1 -1
- package/dist/unit.d.ts +10 -0
- package/dist/unit.js +29 -0
- package/dist/unit.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -100,7 +100,40 @@ install and can be overridden:
|
|
|
100
100
|
sudo npx terminay daemon install --direct-origin https://box.example.com:8443
|
|
101
101
|
```
|
|
102
102
|
|
|
103
|
-
`--expose off|hosted|direct|hosted,direct` and `--port` control the rest.
|
|
103
|
+
`--expose off|hosted|direct|hosted,direct` and `--port` control the rest. For a
|
|
104
|
+
server reachable only at a forwarded address — a container, or a box behind a
|
|
105
|
+
port forward — see [Trying it in a local container](#trying-it-in-a-local-container).
|
|
106
|
+
|
|
107
|
+
## Trying it in a local container
|
|
108
|
+
|
|
109
|
+
A server in a container on your own machine is not reachable from a client on
|
|
110
|
+
that machine by default. Every address the server can see about itself is one
|
|
111
|
+
the client cannot route to — on macOS and Windows the container runs inside a
|
|
112
|
+
virtual machine, and `--network host` does not change that, because the host is
|
|
113
|
+
the VM. Signalling succeeds and the connection then never forms.
|
|
114
|
+
|
|
115
|
+
`--advertise-address` names an address the client can reach, and offers it as an
|
|
116
|
+
additional connection candidate:
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
docker run -d --name terminay \
|
|
120
|
+
--privileged --tmpfs /run --tmpfs /run/lock \
|
|
121
|
+
--cgroupns=host -v /sys/fs/cgroup:/sys/fs/cgroup:rw \
|
|
122
|
+
-p 51000-51003:51000-51003/udp \
|
|
123
|
+
node:24-bookworm \
|
|
124
|
+
/bin/sh -c 'apt-get update -qq && apt-get install -y -qq systemd dbus && exec /lib/systemd/systemd'
|
|
125
|
+
|
|
126
|
+
docker exec -it terminay bash
|
|
127
|
+
npx terminay daemon install --system --run-as root \
|
|
128
|
+
--advertise-address 127.0.0.1:51000
|
|
129
|
+
npx terminay daemon qr-code
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
Four consecutive UDP ports are published rather than one, because the WebRTC
|
|
133
|
+
runtime gives each candidate its own socket from the range it is pinned to.
|
|
134
|
+
|
|
135
|
+
This is for a server reachable only at a forwarded address. It is not a general
|
|
136
|
+
answer to NAT — it works because someone forwarded a port.
|
|
104
137
|
|
|
105
138
|
## Where things live
|
|
106
139
|
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How many consecutive UDP ports an advertised address reserves.
|
|
3
|
+
*
|
|
4
|
+
* The WebRTC runtime gives every candidate its own socket from the pinned
|
|
5
|
+
* range, so this is a budget as well as a promise: it is small enough to
|
|
6
|
+
* publish in one `-p` range, and large enough for the advertised address plus a
|
|
7
|
+
* couple of the server's own. It must match the span the server uses.
|
|
8
|
+
*/
|
|
9
|
+
export declare const ADVERTISED_PORT_SPAN = 4;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How many consecutive UDP ports an advertised address reserves.
|
|
3
|
+
*
|
|
4
|
+
* The WebRTC runtime gives every candidate its own socket from the pinned
|
|
5
|
+
* range, so this is a budget as well as a promise: it is small enough to
|
|
6
|
+
* publish in one `-p` range, and large enough for the advertised address plus a
|
|
7
|
+
* couple of the server's own. It must match the span the server uses.
|
|
8
|
+
*/
|
|
9
|
+
export const ADVERTISED_PORT_SPAN = 4;
|
|
10
|
+
//# sourceMappingURL=advertise.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"advertise.js","sourceRoot":"","sources":["../src/advertise.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC"}
|
package/dist/args.d.ts
CHANGED
|
@@ -14,6 +14,9 @@ export interface DaemonOptions {
|
|
|
14
14
|
readonly runAs?: string;
|
|
15
15
|
readonly port?: number;
|
|
16
16
|
readonly directOrigin?: string;
|
|
17
|
+
/** An address and UDP port to offer as an additional ICE candidate. Empty
|
|
18
|
+
* string clears a previously configured one. */
|
|
19
|
+
readonly advertiseAddress?: string;
|
|
17
20
|
readonly hostedDomain?: string;
|
|
18
21
|
readonly expose?: string;
|
|
19
22
|
readonly projectRoot?: string;
|
|
@@ -34,4 +37,4 @@ export interface ParsedCommandLine {
|
|
|
34
37
|
export declare class UsageError extends Error {
|
|
35
38
|
}
|
|
36
39
|
export declare function parseCommandLine(argv: readonly string[]): ParsedCommandLine;
|
|
37
|
-
export declare const HELP_TEXT = "terminay \u2014 install and control a headless Terminay Server\n\nUsage:\n npx terminay daemon <command> [arguments] [flags]\n\nCommands:\n install [ref] Install and start the server. `ref` is a tag such as\n v4.1.1, `main` for the rolling channel, or a branch or\n commit to build from source. Defaults to the latest tag.\n upgrade [ref] Upgrade, following the installed channel by default.\n uninstall Stop and remove the service and installed versions.\n start | stop Start or stop the service.\n status Report unit state, version, channel, and exposure.\n qr-code Show a scannable pairing code and approve the device\n that scans it. Alias: pairing-url.\n approvals List pending device approvals.\n approve <id> Approve a pending device.\n deny <id> Deny a pending device.\n reset-identity Rotate the host key and revoke every paired device.\n\nFlags:\n --system, --user Install scope. Prompted when a terminal is attached.\n --run-as <user> Account the server and its terminals run as.\n --port <port> Port the server listens on.\n --direct-origin <o> Origin devices reach directly, such as\n https://box.example.com:8443.\n --hosted-domain <d> Hosted signalling domain.\n --expose <modes> off, hosted, direct, or hosted,direct.\n --project-root <p> Directory the server opens projects from.\n --allow-downgrade Permit upgrade to an older version.\n --purge Also remove the data root on uninstall.\n --yes Skip confirmation prompts.\n --no-wait Print pairing URLs and exit without waiting.\n --mode <m> Render the hosted or direct pairing URL.\n --help Show this help.\n";
|
|
40
|
+
export declare const HELP_TEXT = "terminay \u2014 install and control a headless Terminay Server\n\nUsage:\n npx terminay daemon <command> [arguments] [flags]\n\nCommands:\n install [ref] Install and start the server. `ref` is a tag such as\n v4.1.1, `main` for the rolling channel, or a branch or\n commit to build from source. Defaults to the latest tag.\n upgrade [ref] Upgrade, following the installed channel by default.\n uninstall Stop and remove the service and installed versions.\n start | stop Start or stop the service.\n status Report unit state, version, channel, and exposure.\n qr-code Show a scannable pairing code and approve the device\n that scans it. Alias: pairing-url.\n approvals List pending device approvals.\n approve <id> Approve a pending device.\n deny <id> Deny a pending device.\n reset-identity Rotate the host key and revoke every paired device.\n\nFlags:\n --system, --user Install scope. Prompted when a terminal is attached.\n --run-as <user> Account the server and its terminals run as.\n --port <port> Port the server listens on.\n --direct-origin <o> Origin devices reach directly, such as\n https://box.example.com:8443.\n --advertise-address <addr:port>\n An address and UDP port to offer as an extra connection\n candidate, for a server reachable only at a forwarded\n address \u2014 a container, or behind a port forward. That\n port and the three above it must be forwarded to this\n machine. Pass an empty value to remove one set earlier.\n --hosted-domain <d> Hosted signalling domain.\n --expose <modes> off, hosted, direct, or hosted,direct.\n --project-root <p> Directory the server opens projects from.\n --allow-downgrade Permit upgrade to an older version.\n --purge Also remove the data root on uninstall.\n --yes Skip confirmation prompts.\n --no-wait Print pairing URLs and exit without waiting.\n --mode <m> Render the hosted or direct pairing URL.\n --help Show this help.\n";
|
package/dist/args.js
CHANGED
|
@@ -27,11 +27,14 @@ const VALUE_FLAGS = Object.freeze([
|
|
|
27
27
|
'--run-as',
|
|
28
28
|
'--port',
|
|
29
29
|
'--direct-origin',
|
|
30
|
+
'--advertise-address',
|
|
30
31
|
'--hosted-domain',
|
|
31
32
|
'--expose',
|
|
32
33
|
'--project-root',
|
|
33
34
|
'--mode',
|
|
34
35
|
]);
|
|
36
|
+
/** Flags whose empty value means "remove what was configured before". */
|
|
37
|
+
const CLEARABLE_FLAGS = Object.freeze(['--advertise-address']);
|
|
35
38
|
const BOOLEAN_FLAGS = Object.freeze([
|
|
36
39
|
'--system',
|
|
37
40
|
'--user',
|
|
@@ -52,11 +55,19 @@ const ACCEPTED = Object.freeze({
|
|
|
52
55
|
'--run-as',
|
|
53
56
|
'--port',
|
|
54
57
|
'--direct-origin',
|
|
58
|
+
'--advertise-address',
|
|
55
59
|
'--hosted-domain',
|
|
56
60
|
'--expose',
|
|
57
61
|
'--project-root',
|
|
58
62
|
],
|
|
59
|
-
upgrade: [
|
|
63
|
+
upgrade: [
|
|
64
|
+
'--system',
|
|
65
|
+
'--user',
|
|
66
|
+
'--allow-downgrade',
|
|
67
|
+
// How a server is reached can change without changing its version,
|
|
68
|
+
// and an upgrade is the moment an operator is already editing it.
|
|
69
|
+
'--advertise-address',
|
|
70
|
+
],
|
|
60
71
|
uninstall: ['--system', '--user', '--purge', '--yes'],
|
|
61
72
|
start: ['--system', '--user'],
|
|
62
73
|
stop: ['--system', '--user'],
|
|
@@ -83,6 +94,32 @@ function parsePort(raw) {
|
|
|
83
94
|
fail('--port must be a whole number between 1 and 65535');
|
|
84
95
|
return port;
|
|
85
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* Validate `<host>:<port>` before anything is written.
|
|
99
|
+
*
|
|
100
|
+
* Literal addresses only: an ICE candidate is where a peer sends connectivity
|
|
101
|
+
* checks, and a hostname resolves on the peer's machine rather than naming the
|
|
102
|
+
* address an operator forwarded. Empty passes through as the clearing form.
|
|
103
|
+
*/
|
|
104
|
+
function parseAdvertiseAddress(raw) {
|
|
105
|
+
if (raw === '')
|
|
106
|
+
return raw;
|
|
107
|
+
const bracketed = /^\[([0-9A-Fa-f:.]+)\]:(\d{1,5})$/u.exec(raw.trim());
|
|
108
|
+
const plain = /^([0-9]{1,3}(?:\.[0-9]{1,3}){3}):(\d{1,5})$/u.exec(raw.trim());
|
|
109
|
+
const match = bracketed ?? plain;
|
|
110
|
+
if (match === null) {
|
|
111
|
+
fail(`--advertise-address must be a literal address and port, such as 127.0.0.1:51000 or [::1]:51000 (got ${raw}). An ICE candidate is a destination for the other side's connectivity checks, so a hostname cannot stand in for it.`);
|
|
112
|
+
}
|
|
113
|
+
const port = Number(match[2]);
|
|
114
|
+
if (port < 1 || port > 65535) {
|
|
115
|
+
fail('--advertise-address port must be between 1 and 65535');
|
|
116
|
+
}
|
|
117
|
+
if (bracketed === null &&
|
|
118
|
+
match[1].split('.').some((octet) => Number(octet) > 255)) {
|
|
119
|
+
fail(`--advertise-address is not a valid IPv4 address: ${match[1]}`);
|
|
120
|
+
}
|
|
121
|
+
return raw.trim();
|
|
122
|
+
}
|
|
86
123
|
function parseMode(raw) {
|
|
87
124
|
if (raw !== 'hosted' && raw !== 'direct')
|
|
88
125
|
fail('--mode must be hosted or direct');
|
|
@@ -139,8 +176,11 @@ export function parseCommandLine(argv) {
|
|
|
139
176
|
value = next;
|
|
140
177
|
index += 1;
|
|
141
178
|
}
|
|
142
|
-
|
|
179
|
+
// An empty value is a usage error everywhere except the advertised
|
|
180
|
+
// address, where it is how an operator removes one they set earlier.
|
|
181
|
+
if (value.length === 0 && !CLEARABLE_FLAGS.includes(name)) {
|
|
143
182
|
fail(`${name} requires a value`);
|
|
183
|
+
}
|
|
144
184
|
if (values.has(name))
|
|
145
185
|
fail(`${name} was given more than once`);
|
|
146
186
|
values.set(name, value);
|
|
@@ -188,6 +228,11 @@ export function parseCommandLine(argv) {
|
|
|
188
228
|
? { runAs: values.get('--run-as') }
|
|
189
229
|
: {}),
|
|
190
230
|
...(port === undefined ? {} : { port: parsePort(port) }),
|
|
231
|
+
...(values.has('--advertise-address')
|
|
232
|
+
? {
|
|
233
|
+
advertiseAddress: parseAdvertiseAddress(values.get('--advertise-address')),
|
|
234
|
+
}
|
|
235
|
+
: {}),
|
|
191
236
|
...(values.has('--direct-origin')
|
|
192
237
|
? { directOrigin: values.get('--direct-origin') }
|
|
193
238
|
: {}),
|
|
@@ -239,6 +284,12 @@ Flags:
|
|
|
239
284
|
--port <port> Port the server listens on.
|
|
240
285
|
--direct-origin <o> Origin devices reach directly, such as
|
|
241
286
|
https://box.example.com:8443.
|
|
287
|
+
--advertise-address <addr:port>
|
|
288
|
+
An address and UDP port to offer as an extra connection
|
|
289
|
+
candidate, for a server reachable only at a forwarded
|
|
290
|
+
address — a container, or behind a port forward. That
|
|
291
|
+
port and the three above it must be forwarded to this
|
|
292
|
+
machine. Pass an empty value to remove one set earlier.
|
|
242
293
|
--hosted-domain <d> Hosted signalling domain.
|
|
243
294
|
--expose <modes> off, hosted, direct, or hosted,direct.
|
|
244
295
|
--project-root <p> Directory the server opens projects from.
|
package/dist/args.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.js","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,6 +43,7 @@ export interface InstallResult {
|
|
|
43
43
|
readonly channel: string;
|
|
44
44
|
readonly revision: string;
|
|
45
45
|
readonly directOrigin?: string;
|
|
46
|
+
readonly advertiseAddress?: string;
|
|
46
47
|
readonly ready: boolean;
|
|
47
48
|
}
|
|
48
49
|
export declare function runInstall(ref: string | undefined, options: DaemonOptions, dependencies?: InstallDependencies): Promise<InstallResult>;
|
package/dist/commands/install.js
CHANGED
|
@@ -3,6 +3,7 @@ import { homedir, hostname } from 'node:os';
|
|
|
3
3
|
import { dirname } from 'node:path';
|
|
4
4
|
import { assertRootForSystemScope, prepareDataRoot, selectRunAs, selectScope, } from '../account.js';
|
|
5
5
|
import { defaultDirectOrigin } from '../address.js';
|
|
6
|
+
import { ADVERTISED_PORT_SPAN } from '../advertise.js';
|
|
6
7
|
import { discardDownloads, downloadAsset, downloadBytes, downloadText, } from '../download.js';
|
|
7
8
|
import { waitForReady } from '../health.js';
|
|
8
9
|
import { activate, installArchive, installedVersions, retain, } from '../install.js';
|
|
@@ -120,6 +121,10 @@ export async function runInstall(ref, options, dependencies = {}) {
|
|
|
120
121
|
const directOrigin = wantsDirect
|
|
121
122
|
? (options.directOrigin ?? (await defaultDirectOrigin(port)))
|
|
122
123
|
: options.directOrigin;
|
|
124
|
+
// An empty value clears; undefined means the operator said nothing.
|
|
125
|
+
const advertised = options.advertiseAddress === undefined
|
|
126
|
+
? undefined
|
|
127
|
+
: options.advertiseAddress;
|
|
123
128
|
if (wantsDirect && directOrigin === undefined) {
|
|
124
129
|
throw new Error('direct exposure needs an origin devices can reach, and this machine has no routable address to derive one from. Pass --direct-origin https://<host>:<port>.');
|
|
125
130
|
}
|
|
@@ -136,6 +141,7 @@ export async function runInstall(ref, options, dependencies = {}) {
|
|
|
136
141
|
expose,
|
|
137
142
|
hostedDomain: options.hostedDomain ?? DEFAULT_HOSTED_DOMAIN,
|
|
138
143
|
...(directOrigin === undefined ? {} : { directOrigin }),
|
|
144
|
+
...(advertised === undefined ? {} : { advertiseAddress: advertised }),
|
|
139
145
|
uiBundle: `${layout.currentLink}/ui`,
|
|
140
146
|
}), { mode: 0o640 });
|
|
141
147
|
// Readable only by the account the service runs as.
|
|
@@ -173,6 +179,9 @@ export async function runInstall(ref, options, dependencies = {}) {
|
|
|
173
179
|
expose,
|
|
174
180
|
hostedDomain: options.hostedDomain ?? DEFAULT_HOSTED_DOMAIN,
|
|
175
181
|
...(directOrigin === undefined ? {} : { directOrigin }),
|
|
182
|
+
...(advertised === undefined || advertised === ''
|
|
183
|
+
? {}
|
|
184
|
+
: { advertiseAddress: advertised }),
|
|
176
185
|
installedAt: new Date().toISOString(),
|
|
177
186
|
};
|
|
178
187
|
await writeInstallRecord(layout, record);
|
|
@@ -189,6 +198,15 @@ export async function runInstall(ref, options, dependencies = {}) {
|
|
|
189
198
|
write(` channel ${resolved.channel}`);
|
|
190
199
|
write(` data root ${dataRoot}`);
|
|
191
200
|
write(` exposure ${expose}`);
|
|
201
|
+
if (advertised !== undefined && advertised !== '') {
|
|
202
|
+
const first = Number(advertised.slice(advertised.lastIndexOf(':') + 1));
|
|
203
|
+
const last = first + ADVERTISED_PORT_SPAN - 1;
|
|
204
|
+
write(` advertised ${advertised}`);
|
|
205
|
+
write('');
|
|
206
|
+
write(`UDP ports ${first}-${last} must reach this machine for that address to work.`);
|
|
207
|
+
write('Forwarding them is the one step this command cannot take for you — in');
|
|
208
|
+
write(`Docker, publish them with -p ${first}-${last}:${first}-${last}/udp.`);
|
|
209
|
+
}
|
|
192
210
|
if (directOrigin !== undefined) {
|
|
193
211
|
write(` direct URL ${directOrigin}`);
|
|
194
212
|
write('');
|
|
@@ -207,6 +225,9 @@ export async function runInstall(ref, options, dependencies = {}) {
|
|
|
207
225
|
channel: resolved.channel,
|
|
208
226
|
revision: installed.manifest.revision,
|
|
209
227
|
...(directOrigin === undefined ? {} : { directOrigin }),
|
|
228
|
+
...(advertised === undefined || advertised === ''
|
|
229
|
+
? {}
|
|
230
|
+
: { advertiseAddress: advertised }),
|
|
210
231
|
ready,
|
|
211
232
|
});
|
|
212
233
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACN,wBAAwB,EACxB,eAAe,EACf,WAAW,EACX,WAAW,GACX,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,5 +19,6 @@ export interface StatusReport {
|
|
|
19
19
|
readonly ready: boolean;
|
|
20
20
|
readonly exposure: readonly string[] | 'off';
|
|
21
21
|
readonly activeVersion?: string;
|
|
22
|
+
readonly advertiseAddress?: string;
|
|
22
23
|
}
|
|
23
24
|
export declare function runStatus(context: CommandContext): Promise<StatusReport>;
|
|
@@ -54,6 +54,9 @@ export async function runStatus(context) {
|
|
|
54
54
|
ready: snapshot?.ready === true,
|
|
55
55
|
exposure,
|
|
56
56
|
...(active === undefined ? {} : { activeVersion: active }),
|
|
57
|
+
...(context.record.advertiseAddress === undefined
|
|
58
|
+
? {}
|
|
59
|
+
: { advertiseAddress: context.record.advertiseAddress }),
|
|
57
60
|
});
|
|
58
61
|
context.write(`unit ${report.unit}${report.enabled ? ' (enabled)' : ' (not enabled)'}`);
|
|
59
62
|
context.write(`version ${report.version}`);
|
|
@@ -61,6 +64,11 @@ export async function runStatus(context) {
|
|
|
61
64
|
context.write(`revision ${report.revision.slice(0, 12)}`);
|
|
62
65
|
context.write(`ready ${report.ready ? 'yes' : 'no'}`);
|
|
63
66
|
context.write(`exposure ${report.exposure === 'off' ? 'off' : report.exposure.join(', ') || 'off'}`);
|
|
67
|
+
// Service configuration an operator needs when a connection fails, and it
|
|
68
|
+
// names no workspace, path, account, or device.
|
|
69
|
+
if (report.advertiseAddress !== undefined) {
|
|
70
|
+
context.write(`advertised ${report.advertiseAddress}`);
|
|
71
|
+
}
|
|
64
72
|
return report;
|
|
65
73
|
}
|
|
66
74
|
//# sourceMappingURL=lifecycle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/commands/lifecycle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAEzE;;;;;;;;GAQG;AAEH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAuB;IACrD,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC/D,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CACZ,mBAAmB,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,YAAY,CACzE,CAAC;QACF,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO,CAAC,KAAK,CACZ,kEAAkE,CAClE,CAAC;IACF,OAAO,CAAC,KAAK,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IACjD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAuB;IACpD,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAC7B,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;AAC9C,CAAC;
|
|
1
|
+
{"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/commands/lifecycle.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/upgrade.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { readFile, writeFile } from 'node:fs/promises';
|
|
1
2
|
import { discardDownloads, downloadAsset, downloadBytes, downloadText, } from '../download.js';
|
|
2
3
|
import { waitForReady } from '../health.js';
|
|
3
4
|
import { activate, activeVersion, installArchive, retain } from '../install.js';
|
|
@@ -5,6 +6,7 @@ import { stagedName, writeInstallRecord } from '../layout.js';
|
|
|
5
6
|
import { hostArchitecture } from '../platform.js';
|
|
6
7
|
import { resolveRef } from '../resolve.js';
|
|
7
8
|
import { buildFromSource } from '../source.js';
|
|
9
|
+
import { withEnvironmentValue } from '../unit.js';
|
|
8
10
|
import { verifyArchive } from '../verify.js';
|
|
9
11
|
export class UpgradeError extends Error {
|
|
10
12
|
}
|
|
@@ -151,8 +153,26 @@ export async function runUpgrade(ref, options, context, dependencies = {}) {
|
|
|
151
153
|
write(await systemd.journal(20));
|
|
152
154
|
throw new UpgradeError(`the upgrade to ${installed.manifest.version} did not become ready, so ${record.version} was restored and ${recovered ? 'is running again' : 'was started, but has not reported ready either'}.`);
|
|
153
155
|
}
|
|
156
|
+
// An advertised address given here changes how the server is reached, which
|
|
157
|
+
// lives in the environment file rather than in the version that was staged.
|
|
158
|
+
// Absent, the recorded value carries forward with the rest of the record.
|
|
159
|
+
if (options.advertiseAddress !== undefined) {
|
|
160
|
+
const existing = await readFile(layout.environmentFile, 'utf8').catch(() => '');
|
|
161
|
+
await writeFile(layout.environmentFile, withEnvironmentValue(existing, 'TERMINAY_WEBRTC_ADVERTISE_ADDRESS', options.advertiseAddress === '' ? undefined : options.advertiseAddress), { mode: 0o640 });
|
|
162
|
+
}
|
|
163
|
+
// Cleared means the key is absent, not present and undefined, so the record
|
|
164
|
+
// is rebuilt without it rather than assigned over.
|
|
165
|
+
const { advertiseAddress: recorded, ...withoutAdvertised } = record;
|
|
166
|
+
const advertisedFields = options.advertiseAddress === undefined
|
|
167
|
+
? recorded === undefined
|
|
168
|
+
? {}
|
|
169
|
+
: { advertiseAddress: recorded }
|
|
170
|
+
: options.advertiseAddress === ''
|
|
171
|
+
? {}
|
|
172
|
+
: { advertiseAddress: options.advertiseAddress };
|
|
154
173
|
await writeInstallRecord(layout, {
|
|
155
|
-
...
|
|
174
|
+
...withoutAdvertised,
|
|
175
|
+
...advertisedFields,
|
|
156
176
|
channel: resolved.channel,
|
|
157
177
|
version: installed.manifest.version,
|
|
158
178
|
revision: installed.manifest.revision,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"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"}
|
package/dist/layout.d.ts
CHANGED
|
@@ -38,6 +38,8 @@ export interface InstallRecord {
|
|
|
38
38
|
readonly expose: string;
|
|
39
39
|
readonly hostedDomain: string;
|
|
40
40
|
readonly directOrigin?: string;
|
|
41
|
+
/** An address and UDP port offered as an additional ICE candidate. */
|
|
42
|
+
readonly advertiseAddress?: string;
|
|
41
43
|
readonly installedAt: string;
|
|
42
44
|
}
|
|
43
45
|
export declare function parseInstallRecord(value: unknown): InstallRecord;
|
package/dist/layout.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../src/layout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAKjC;;;;;;;GAOG;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG,yBAAyB,CAAC;AACnD,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,CAAC;AAa7C,MAAM,UAAU,aAAa,CAC5B,KAAmB,EACnB,OAAe,OAAO,EAAE;IAExB,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,eAAe,CAAC;QAC/B,OAAO,MAAM,CAAC,MAAM,CAAC;YACpB,KAAK;YACL,MAAM;YACN,iBAAiB,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC;YAC3C,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC;YACpC,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC;YACxC,eAAe,EAAE,0BAA0B;YAC3C,eAAe,EAAE,mBAAmB;YACpC,QAAQ,EAAE,IAAI,CAAC,qBAAqB,EAAE,SAAS,CAAC;SAChD,CAAC,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;IACnD,OAAO,MAAM,CAAC,MAAM,CAAC;QACpB,KAAK;QACL,MAAM;QACN,iBAAiB,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC;QAC3C,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC;QACpC,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC;QACxC,eAAe,EAAE,IAAI,CAAC,IAAI,EAAE,6BAA6B,CAAC;QAC1D,eAAe,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;QACrC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,sBAAsB,EAAE,SAAS,CAAC;KACvD,CAAC,CAAC;AACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../src/layout.ts"],"names":[],"mappings":"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"}
|
package/dist/unit.d.ts
CHANGED
|
@@ -21,6 +21,7 @@ export interface ServiceConfiguration {
|
|
|
21
21
|
readonly expose: string;
|
|
22
22
|
readonly hostedDomain: string;
|
|
23
23
|
readonly directOrigin?: string;
|
|
24
|
+
readonly advertiseAddress?: string;
|
|
24
25
|
readonly uiBundle: string;
|
|
25
26
|
}
|
|
26
27
|
export declare function renderEnvironmentFile(configuration: ServiceConfiguration): string;
|
|
@@ -29,6 +30,15 @@ export declare function renderEnvironmentFile(configuration: ServiceConfiguratio
|
|
|
29
30
|
* not being asked to change — the server id above all.
|
|
30
31
|
*/
|
|
31
32
|
export declare function parseEnvironmentFile(contents: string): Readonly<Record<string, string>>;
|
|
33
|
+
/**
|
|
34
|
+
* Set or remove one variable in an existing environment file, leaving every
|
|
35
|
+
* other line as it was.
|
|
36
|
+
*
|
|
37
|
+
* The file is documented as editable, so an upgrade that only needs to change
|
|
38
|
+
* one value edits that value rather than regenerating the file and discarding
|
|
39
|
+
* whatever the operator put there.
|
|
40
|
+
*/
|
|
41
|
+
export declare function withEnvironmentValue(contents: string, key: string, value: string | undefined): string;
|
|
32
42
|
export interface UnitConfiguration {
|
|
33
43
|
readonly layout: InstallLayout;
|
|
34
44
|
readonly runAs: string;
|
package/dist/unit.js
CHANGED
|
@@ -16,6 +16,13 @@ export function renderEnvironmentFile(configuration) {
|
|
|
16
16
|
...(configuration.directOrigin === undefined
|
|
17
17
|
? []
|
|
18
18
|
: [`TERMINAY_DIRECT_ORIGIN=${configuration.directOrigin}`]),
|
|
19
|
+
// Written even when empty: an empty variable is how a cleared address
|
|
20
|
+
// reaches the server, and it reads as unset there.
|
|
21
|
+
...(configuration.advertiseAddress === undefined
|
|
22
|
+
? []
|
|
23
|
+
: [
|
|
24
|
+
`TERMINAY_WEBRTC_ADVERTISE_ADDRESS=${configuration.advertiseAddress}`,
|
|
25
|
+
]),
|
|
19
26
|
'TERMINAY_AGENT_INTEGRATION=enabled',
|
|
20
27
|
'TERMINAY_AI_PROVIDERS=disabled',
|
|
21
28
|
'TERMINAY_LOG_SINK=journal',
|
|
@@ -40,6 +47,28 @@ export function parseEnvironmentFile(contents) {
|
|
|
40
47
|
}
|
|
41
48
|
return Object.freeze(values);
|
|
42
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* Set or remove one variable in an existing environment file, leaving every
|
|
52
|
+
* other line as it was.
|
|
53
|
+
*
|
|
54
|
+
* The file is documented as editable, so an upgrade that only needs to change
|
|
55
|
+
* one value edits that value rather than regenerating the file and discarding
|
|
56
|
+
* whatever the operator put there.
|
|
57
|
+
*/
|
|
58
|
+
export function withEnvironmentValue(contents, key, value) {
|
|
59
|
+
const lines = contents.split('\n');
|
|
60
|
+
const kept = lines.filter((line) => !line.trimStart().startsWith(`${key}=`));
|
|
61
|
+
if (value === undefined) {
|
|
62
|
+
return kept.join('\n');
|
|
63
|
+
}
|
|
64
|
+
// Appended before the trailing blank the file ends with, so the result keeps
|
|
65
|
+
// exactly one terminating newline.
|
|
66
|
+
const trailing = kept.length > 0 && kept[kept.length - 1] === '' ? kept.pop() : undefined;
|
|
67
|
+
kept.push(`${key}=${value}`);
|
|
68
|
+
if (trailing !== undefined)
|
|
69
|
+
kept.push(trailing);
|
|
70
|
+
return kept.join('\n');
|
|
71
|
+
}
|
|
43
72
|
export function renderUnit(configuration) {
|
|
44
73
|
const { layout } = configuration;
|
|
45
74
|
// System scope names the account explicitly; a user unit already runs as
|
package/dist/unit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unit.js","sourceRoot":"","sources":["../src/unit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"unit.js","sourceRoot":"","sources":["../src/unit.ts"],"names":[],"mappings":"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"}
|