runtime: default embedded worker startup when worker url is unset

This commit is contained in:
Richard R 2026-05-26 17:00:41 -06:00
parent 943e547836
commit a073fb63a3
2 changed files with 13 additions and 7 deletions

View file

@ -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

View file

@ -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(