App Variant
Server CLI
Operating System & Version
node:26-bookworm Docker Container
Issue Summary
The CodeNomad server terminates instead of running the server
Steps to Reproduce
- Start with this Dockerfile:
# syntax=docker/dockerfile:1
FROM node:26-bookworm
WORKDIR /home/node
RUN apt-get update && apt-get install -y --no-install-recommends \
python3 \
python3-pip \
python3-venv \
curl \
docker.io \
nano \
&& rm -rf /var/lib/apt/lists/*
RUN npm i -g opencode-ai
USER node
EXPOSE 9898
ENTRYPOINT ["/bin/bash", "-c", "yes | npx @neuralnomads/codenomad --launch --host 0.0.0.0"]
- Attempt to run the Dockerfile
Expected Behavior
The server should run
Logs & Screenshots
When I try to run it manually, it looks like this:
node@e572170a15d5:~$ npx @neuralnomads/codenomad --log-level trace --password 1234 --launch --host 0.0.0.0
[INFO] [app] Starting CodeNomad CLI server options={"host":"0.0.0.0","https":true,"http":false,"httpsPort":9898,"httpPort":9899,"rootDir":"/home/node","configPath":"~/.config/codenomad/config.json","unrestrictedRoot":false,"logLevel":"trace","uiStaticDir":"/home/node/.npm/_npx/36b66b6c865b4a29/node_modules/@neuralnomads/codenomad/public","uiAutoUpdate":true,"uiNoUpdate":false,"launch":true,"authUsername":"codenomad","authPassword":"[REDACTED]","authCookieName":"codenomad_session","generateToken":false,"dangerouslySkipAuth":false}
[DEBUG] [auth] Using runtime auth password override; ignoring auth file authFilePath=/home/node/.config/codenomad/auth.json
(node:188) [DEP0205] DeprecationWarning: `module.register()` is deprecated. Use `module.registerHooks()` instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
[DEBUG] [ui] Downloaded remote UI bundle url=https://download.codenomad.neuralnomads.ai/ui/ui-0.17.1.zip targetPath=/home/node/.config/codenomad/ui/ui-0.17.1.zip
node@e572170a15d5:~$
The older version still works correctly:
node@e572170a15d5:~$ npx @neuralnomads/codenomad@0.16.0 --log-level trace --password 1234 --launch --host 0.0.0.0
Need to install the following packages:
@neuralnomads/codenomad@0.16.0
Ok to proceed? (y) Y
npm warn deprecated glob@10.5.0: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
[INFO] [app] Starting CodeNomad CLI server options={"host":"0.0.0.0","https":true,"http":false,"httpsPort":9898,"httpPort":9899,"rootDir":"/home/node","configPath":"~/.config/codenomad/config.json","unrestrictedRoot":false,"logLevel":"trace","uiStaticDir":"/home/node/.npm/_npx/79e832ec54244465/node_modules/@neuralnomads/codenomad/public","uiAutoUpdate":true,"uiNoUpdate":false,"launch":true,"authUsername":"codenomad","authPassword":"[REDACTED]","authCookieName":"codenomad_session","generateToken":false,"dangerouslySkipAuth":false}
[DEBUG] [auth] Using runtime auth password override; ignoring auth file authFilePath=/home/node/.config/codenomad/auth.json
(node:221) [DEP0205] DeprecationWarning: `module.register()` is deprecated. Use `module.registerHooks()` instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
[INFO] [app] HTTP server listening port=9898 host=0.0.0.0 protocol=https
Local Connection URL : https://127.0.0.1:9898
Remote Connection URL : https://172.17.0.2:9898
Attempting to launch browser (Linux) using:
- google-chrome: google-chrome
- google-chrome-stable: google-chrome-stable
- chromium: chromium
- chromium-browser: chromium-browser
- brave-browser: brave-browser
- microsoft-edge: microsoft-edge
- microsoft-edge-stable: microsoft-edge-stable
- vivaldi: vivaldi
[DEBUG] [launcher] Browser launch failed err=Error: spawn google-chrome ENOENT stack="Error: spawn google-chrome ENOENT
at ChildProcess._handle.onexit (node:internal/child_process:286:19)
at onErrorNT (node:internal/child_process:507:16)
at process.processTicksAndRejections (node:internal/process/task_queues:90:21)" candidate=google-chrome command=google-chrome args=["--app=https://127.0.0.1:9898","--new-window"]
[DEBUG] [launcher] Browser launch failed err=Error: spawn google-chrome-stable ENOENT stack="Error: spawn google-chrome-stable ENOENT
at ChildProcess._handle.onexit (node:internal/child_process:286:19)
at onErrorNT (node:internal/child_process:507:16)
at process.processTicksAndRejections (node:internal/process/task_queues:90:21)" candidate=google-chrome-stable command=google-chrome-stable args=["--app=https://127.0.0.1:9898","--new-window"]
[DEBUG] [launcher] Browser launch failed err=Error: spawn chromium ENOENT stack="Error: spawn chromium ENOENT
at ChildProcess._handle.onexit (node:internal/child_process:286:19)
at onErrorNT (node:internal/child_process:507:16)
at process.processTicksAndRejections (node:internal/process/task_queues:90:21)" candidate=chromium command=chromium args=["--app=https://127.0.0.1:9898","--new-window"]
[DEBUG] [launcher] Browser launch failed err=Error: spawn chromium-browser ENOENT stack="Error: spawn chromium-browser ENOENT
at ChildProcess._handle.onexit (node:internal/child_process:286:19)
at onErrorNT (node:internal/child_process:507:16)
at process.processTicksAndRejections (node:internal/process/task_queues:90:21)" candidate=chromium-browser command=chromium-browser args=["--app=https://127.0.0.1:9898","--new-window"]
[DEBUG] [launcher] Browser launch failed err=Error: spawn brave-browser ENOENT stack="Error: spawn brave-browser ENOENT
at ChildProcess._handle.onexit (node:internal/child_process:286:19)
at onErrorNT (node:internal/child_process:507:16)
at process.processTicksAndRejections (node:internal/process/task_queues:90:21)" candidate=brave-browser command=brave-browser args=["--app=https://127.0.0.1:9898","--new-window"]
[DEBUG] [launcher] Browser launch failed err=Error: spawn microsoft-edge ENOENT stack="Error: spawn microsoft-edge ENOENT
at ChildProcess._handle.onexit (node:internal/child_process:286:19)
at onErrorNT (node:internal/child_process:507:16)
at process.processTicksAndRejections (node:internal/process/task_queues:90:21)" candidate=microsoft-edge command=microsoft-edge args=["--app=https://127.0.0.1:9898","--new-window"]
[DEBUG] [launcher] Browser launch failed err=Error: spawn microsoft-edge-stable ENOENT stack="Error: spawn microsoft-edge-stable ENOENT
at ChildProcess._handle.onexit (node:internal/child_process:286:19)
at onErrorNT (node:internal/child_process:507:16)
at process.processTicksAndRejections (node:internal/process/task_queues:90:21)" candidate=microsoft-edge-stable command=microsoft-edge-stable args=["--app=https://127.0.0.1:9898","--new-window"]
[DEBUG] [launcher] Browser launch failed err=Error: spawn vivaldi ENOENT stack="Error: spawn vivaldi ENOENT
at ChildProcess._handle.onexit (node:internal/child_process:286:19)
at onErrorNT (node:internal/child_process:507:16)
at process.processTicksAndRejections (node:internal/process/task_queues:90:21)" candidate=vivaldi command=vivaldi args=["--app=https://127.0.0.1:9898","--new-window"]
No supported browser found to launch. Run without --launch and use one of the commands below or install a compatible browser.
Manual launch commands:
google-chrome --app="https://127.0.0.1:9898" --new-window
chromium --app="https://127.0.0.1:9898" --new-window
brave-browser --app="https://127.0.0.1:9898" --new-window
microsoft-edge --app="https://127.0.0.1:9898" --new-window
Additional Context
No response
App Variant
Server CLI
Operating System & Version
node:26-bookworm Docker Container
Issue Summary
The CodeNomad server terminates instead of running the server
Steps to Reproduce
Expected Behavior
The server should run
Logs & Screenshots
When I try to run it manually, it looks like this:
The older version still works correctly:
Additional Context
No response