Skip to content

[Bug]: CodeNomad Server doesn't run anymore starting with 0.17.0 #544

@nuudles

Description

@nuudles

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

  1. 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"]
  1. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions