From a073fb63a3da1e58f77c16b66ea55f3032b5dca1 Mon Sep 17 00:00:00 2001 From: Richard R Date: Tue, 26 May 2026 17:00:41 -0600 Subject: [PATCH] runtime: default embedded worker startup when worker url is unset --- .env.example | 4 +++- scripts/openreader-entrypoint.mjs | 16 ++++++++++------ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/.env.example b/.env.example index 0171ff3..34f3147 100644 --- a/.env.example +++ b/.env.example @@ -85,7 +85,9 @@ IMPORT_LIBRARY_DIRS= # COMPUTE_WORKER_URL=http://localhost:8081 # COMPUTE_WORKER_TOKEN=local-compute-token # Optional embedded worker stack controls (used by scripts/openreader-entrypoint.mjs): -# START_EMBEDDED_COMPUTE_WORKER=true +# If COMPUTE_WORKER_URL is unset, entrypoint defaults to starting embedded worker+NATS. +# Set START_EMBEDDED_COMPUTE_WORKER=false to force external worker URL/token config. +# START_EMBEDDED_COMPUTE_WORKER= # EMBEDDED_COMPUTE_WORKER_PORT=8081 # EMBEDDED_NATS_PORT=4222 # EMBEDDED_NATS_MONITOR_PORT=8222 diff --git a/scripts/openreader-entrypoint.mjs b/scripts/openreader-entrypoint.mjs index 000719e..164cfd8 100644 --- a/scripts/openreader-entrypoint.mjs +++ b/scripts/openreader-entrypoint.mjs @@ -445,17 +445,21 @@ async function main() { const embeddedWorkerPort = Number.parseInt(withDefault(runtimeEnv.EMBEDDED_COMPUTE_WORKER_PORT, '8081'), 10); const embeddedNatsPort = Number.parseInt(withDefault(runtimeEnv.EMBEDDED_NATS_PORT, '4222'), 10); const embeddedNatsMonitorPort = Number.parseInt(withDefault(runtimeEnv.EMBEDDED_NATS_MONITOR_PORT, '8222'), 10); - const shouldStartEmbeddedWorker = resolveBooleanEnv( - runtimeEnv, - 'START_EMBEDDED_COMPUTE_WORKER', - isRunningInDocker() && !Boolean(runtimeEnv.COMPUTE_WORKER_URL?.trim()), + const embeddedWorkerEnvRaw = runtimeEnv.START_EMBEDDED_COMPUTE_WORKER; + let shouldStartEmbeddedWorker = isTrue( + embeddedWorkerEnvRaw, + !Boolean(runtimeEnv.COMPUTE_WORKER_URL?.trim()), ); - if (shouldStartEmbeddedWorker) { - if (!hasNatsBinary()) { + if (shouldStartEmbeddedWorker && !hasNatsBinary()) { + if (embeddedWorkerEnvRaw && isTrue(embeddedWorkerEnvRaw, true)) { throw new Error('START_EMBEDDED_COMPUTE_WORKER=true but `nats-server` binary is not available in PATH.'); } + shouldStartEmbeddedWorker = false; + console.warn('`nats-server` binary not found; skipping embedded compute worker startup.'); + } + if (shouldStartEmbeddedWorker) { runtimeEnv.NATS_URL = withDefault(runtimeEnv.NATS_URL, `nats://127.0.0.1:${embeddedNatsPort}`); runtimeEnv.COMPUTE_WORKER_URL = withDefault(runtimeEnv.COMPUTE_WORKER_URL, `http://127.0.0.1:${embeddedWorkerPort}`); runtimeEnv.COMPUTE_WORKER_TOKEN = withDefault(