withvibe 0.1.6 → 0.1.8
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.
|
@@ -208,6 +208,51 @@ const WEB_LABELS_PLAIN = ` ${WEB_LABELS_BEGIN}
|
|
|
208
208
|
- "traefik.http.routers.web.entrypoints=web"
|
|
209
209
|
- "traefik.http.services.web.loadbalancer.server.port=3000"
|
|
210
210
|
${WEB_LABELS_END}`;
|
|
211
|
+
// Routing labels for the *api* service. Most /api/* traffic is handled by
|
|
212
|
+
// Next.js (Route Handlers / rewrites that forward to the api over the
|
|
213
|
+
// compose network), so the catch-all `web` router stays the default. But a
|
|
214
|
+
// few endpoints must reach NestJS directly because Next.js can't carry them:
|
|
215
|
+
//
|
|
216
|
+
// - /api/terminal/ — xterm WebSocket (Next rewrites don't upgrade)
|
|
217
|
+
// - /api/qa-browser/ws/ — QA-extension pairing WebSocket
|
|
218
|
+
// - /api/qa-browser/view/ — QA-browser noVNC viewer page + asset proxy
|
|
219
|
+
// - /api/qa-browser/view-ws/ — QA-browser noVNC frame relay WebSocket
|
|
220
|
+
// - /api/code-server/view/ — code-server reverse proxy (HTTP + WS)
|
|
221
|
+
// - /api/db-viewer/view/ — Adminer reverse proxy (HTTP)
|
|
222
|
+
//
|
|
223
|
+
// This router is more specific than `web` (Host + PathPrefix) and pinned to
|
|
224
|
+
// a high priority so it wins for exactly those prefixes and nothing else.
|
|
225
|
+
// Without it the browser has no public path to the api on a domain deploy,
|
|
226
|
+
// which is why the QA browser / Terminal pointed at 127.0.0.1 / localhost.
|
|
227
|
+
const API_ROUTE_RULE = "Host(`${TRAEFIK_BASE_DOMAIN}`) && (PathPrefix(`/api/terminal/`) || PathPrefix(`/api/qa-browser/ws/`) || PathPrefix(`/api/qa-browser/view/`) || PathPrefix(`/api/qa-browser/view-ws/`) || PathPrefix(`/api/code-server/view/`) || PathPrefix(`/api/db-viewer/view/`))";
|
|
228
|
+
const API_LABELS_BEGIN = "# >>> withvibe-api-labels";
|
|
229
|
+
const API_LABELS_END = "# <<< withvibe-api-labels";
|
|
230
|
+
const API_LABELS_TLS = ` ${API_LABELS_BEGIN}
|
|
231
|
+
labels:
|
|
232
|
+
- "traefik.enable=true"
|
|
233
|
+
- "traefik.http.routers.wvapi.rule=${API_ROUTE_RULE}"
|
|
234
|
+
- "traefik.http.routers.wvapi.entrypoints=websecure"
|
|
235
|
+
- "traefik.http.routers.wvapi.tls.certresolver=letsencrypt"
|
|
236
|
+
- "traefik.http.routers.wvapi.priority=1000"
|
|
237
|
+
- "traefik.http.services.wvapi.loadbalancer.server.port=4000"
|
|
238
|
+
${API_LABELS_END}`;
|
|
239
|
+
const API_LABELS_BYOCERT = ` ${API_LABELS_BEGIN}
|
|
240
|
+
labels:
|
|
241
|
+
- "traefik.enable=true"
|
|
242
|
+
- "traefik.http.routers.wvapi.rule=${API_ROUTE_RULE}"
|
|
243
|
+
- "traefik.http.routers.wvapi.entrypoints=websecure"
|
|
244
|
+
- "traefik.http.routers.wvapi.tls=true"
|
|
245
|
+
- "traefik.http.routers.wvapi.priority=1000"
|
|
246
|
+
- "traefik.http.services.wvapi.loadbalancer.server.port=4000"
|
|
247
|
+
${API_LABELS_END}`;
|
|
248
|
+
const API_LABELS_PLAIN = ` ${API_LABELS_BEGIN}
|
|
249
|
+
labels:
|
|
250
|
+
- "traefik.enable=true"
|
|
251
|
+
- "traefik.http.routers.wvapi.rule=${API_ROUTE_RULE}"
|
|
252
|
+
- "traefik.http.routers.wvapi.entrypoints=web"
|
|
253
|
+
- "traefik.http.routers.wvapi.priority=1000"
|
|
254
|
+
- "traefik.http.services.wvapi.loadbalancer.server.port=4000"
|
|
255
|
+
${API_LABELS_END}`;
|
|
211
256
|
const TRAEFIK_VOLUME_BEGIN = "# >>> withvibe-traefik-volume";
|
|
212
257
|
const TRAEFIK_VOLUME_END = "# <<< withvibe-traefik-volume";
|
|
213
258
|
const TRAEFIK_VOLUME_BLOCK = `${TRAEFIK_VOLUME_BEGIN}
|
|
@@ -238,6 +283,11 @@ export function setTraefik(yaml, enabled, baseDomain, certMode = "acme") {
|
|
|
238
283
|
: byo
|
|
239
284
|
? WEB_LABELS_BYOCERT
|
|
240
285
|
: WEB_LABELS_TLS;
|
|
286
|
+
const apiLabels = mode !== "tls"
|
|
287
|
+
? API_LABELS_PLAIN
|
|
288
|
+
: byo
|
|
289
|
+
? API_LABELS_BYOCERT
|
|
290
|
+
: API_LABELS_TLS;
|
|
241
291
|
// The Let's Encrypt named volume is only needed for ACME.
|
|
242
292
|
const wantVolume = enabled && mode === "tls" && !byo;
|
|
243
293
|
// Always strip first so a switch tls↔plain swaps the body cleanly.
|
|
@@ -245,11 +295,13 @@ export function setTraefik(yaml, enabled, baseDomain, certMode = "acme") {
|
|
|
245
295
|
out = setSection(out, TRAEFIK_BEGIN, TRAEFIK_END, block, false, "services");
|
|
246
296
|
out = setSection(out, TRAEFIK_VOLUME_BEGIN, TRAEFIK_VOLUME_END, TRAEFIK_VOLUME_BLOCK, false, "volumes");
|
|
247
297
|
out = setWebLabels(out, "");
|
|
298
|
+
out = setApiLabels(out, "");
|
|
248
299
|
if (!enabled)
|
|
249
300
|
return out;
|
|
250
301
|
out = setSection(out, TRAEFIK_BEGIN, TRAEFIK_END, block, true, "services");
|
|
251
302
|
out = setSection(out, TRAEFIK_VOLUME_BEGIN, TRAEFIK_VOLUME_END, TRAEFIK_VOLUME_BLOCK, wantVolume, "volumes");
|
|
252
303
|
out = setWebLabels(out, webLabels);
|
|
304
|
+
out = setApiLabels(out, apiLabels);
|
|
253
305
|
return out;
|
|
254
306
|
}
|
|
255
307
|
// Inject (or remove, by passing "") the marker-bracketed Traefik labels
|
|
@@ -260,12 +312,20 @@ export function setTraefik(yaml, enabled, baseDomain, certMode = "acme") {
|
|
|
260
312
|
// declarations — labels on the traefik container itself would route to
|
|
261
313
|
// the traefik container's own port, which is the wrong target.
|
|
262
314
|
function setWebLabels(yaml, block) {
|
|
315
|
+
return setServiceLabels(yaml, "web", WEB_LABELS_BEGIN, WEB_LABELS_END, block);
|
|
316
|
+
}
|
|
317
|
+
// Same as setWebLabels but for the `api` service — injects the high-priority
|
|
318
|
+
// router that sends WebSocket / noVNC-proxy prefixes straight to NestJS.
|
|
319
|
+
function setApiLabels(yaml, block) {
|
|
320
|
+
return setServiceLabels(yaml, "api", API_LABELS_BEGIN, API_LABELS_END, block);
|
|
321
|
+
}
|
|
322
|
+
function setServiceLabels(yaml, service, beginMarker, endMarker, block) {
|
|
263
323
|
// Remove any existing block first.
|
|
264
|
-
const beginIdx = yaml.indexOf(
|
|
324
|
+
const beginIdx = yaml.indexOf(beginMarker);
|
|
265
325
|
if (beginIdx !== -1) {
|
|
266
|
-
const endIdx = yaml.indexOf(
|
|
326
|
+
const endIdx = yaml.indexOf(endMarker, beginIdx);
|
|
267
327
|
if (endIdx !== -1) {
|
|
268
|
-
const after = endIdx +
|
|
328
|
+
const after = endIdx + endMarker.length;
|
|
269
329
|
// Eat the trailing newline so we don't leave a blank line behind.
|
|
270
330
|
const eatNewline = yaml[after] === "\n" ? 1 : 0;
|
|
271
331
|
// And eat the indentation that preceded the begin marker on the
|
|
@@ -278,13 +338,13 @@ function setWebLabels(yaml, block) {
|
|
|
278
338
|
}
|
|
279
339
|
if (!block)
|
|
280
340
|
return yaml;
|
|
281
|
-
// Insert at the end of the
|
|
341
|
+
// Insert at the end of the service block. Find the ` <service>:` line
|
|
282
342
|
// (two-space indent), then walk forward until we hit either another
|
|
283
343
|
// top-level service (line with same indent) or a top-level key.
|
|
284
|
-
const
|
|
285
|
-
const m = yaml.match(
|
|
344
|
+
const serviceRe = new RegExp(`(^|\\n) ${service}:\\s*\\n`);
|
|
345
|
+
const m = yaml.match(serviceRe);
|
|
286
346
|
if (!m)
|
|
287
|
-
return yaml; // no
|
|
347
|
+
return yaml; // no such service to label — leave as-is
|
|
288
348
|
const webStart = m.index + m[0].length;
|
|
289
349
|
const after = yaml.slice(webStart);
|
|
290
350
|
const lines = after.split("\n");
|
|
@@ -294,7 +354,7 @@ function setWebLabels(yaml, block) {
|
|
|
294
354
|
if (line.length === 0)
|
|
295
355
|
continue;
|
|
296
356
|
if (/^ /.test(line) || /^ #/.test(line))
|
|
297
|
-
continue; // child of
|
|
357
|
+
continue; // child of service
|
|
298
358
|
cutAt = i;
|
|
299
359
|
break;
|
|
300
360
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compose-rewriter.js","sourceRoot":"","sources":["../../src/install/compose-rewriter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"compose-rewriter.js","sourceRoot":"","sources":["../../src/install/compose-rewriter.ts"],"names":[],"mappings":"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"}
|