# Node.js Apps

`/admin/node-apps` mirrors the Python apps page for the Node.js runtime. Same per-app shape:

| Tab | What it covers |
|---|---|
| Overview | Account, app slug, port, Node version (18 / 20 / 22), state, process manager (systemd → node), package.json path |
| Settings | Node version, entry point file (`server.js`, etc.), env vars, worker count (`node_workers_limit`), max memory (`node_max_memory_mb`) |
| Logs | App stdout / stderr, npm install tail, systemd unit journal |
| Actions | Start / stop / restart, `npm install` (SSE), reset state |

Plan gate: `plan.max_node_apps > 0`. Multi-version Node runtime is installed once at server-level via the plugin system (`/admin/plugins → Node Runtime`). The same domain-binding rule as Python apps applies: the app's domain must already be registered to the account.

**Endpoints used:** `GET /accounts/{u}/node-apps`, `POST /accounts/{u}/node-apps`, `GET/PUT/DELETE /accounts/{u}/node-apps/{app}`, `POST /accounts/{u}/node-apps/{app}/{start,stop,restart}`, `POST /accounts/{u}/node-apps/{app}/install`, `GET /accounts/{u}/node-apps/{app}/logs`.

---
