NODERYX
FRAMEWORK v0.7.1

GETTING STARTED

BUILDING

PRODUCTION

DEVICES

REFERENCE

NODERYX / DOCS / PRODUCTION / 05
PRODUCTION / 05

Deployment

Take a Noderyx application to a server, a container, or a platform—and know it is healthy when it arrives.

01

What ships

A Noderyx application is a normal Node.js project: source files, package.json, and production dependencies. There is no bundler step for the server, and no build artefact you must keep in sync.

TERMINAL
npm ci --omit=dev NODE_ENV=production node server.js
NOTE

Run npm run build only when you also want static HTML in public/generated.

02

Environment on the server

Set configuration through your host's environment settings where possible, and treat these four as mandatory.

ENVIRONMENT
NODE_ENV=production APP_KEY=<a unique 32+ character key> SITE_URL=https://www.example.com PORT=3000
NOTE

The application refuses to start in production without APP_KEY—that is deliberate, not a bug to work around.

03

Start command

Platforms that read a Procfile need one line. Process managers and systemd units call the same command.

Procfile
web: node server.js
04

Docker

The generated Dockerfile is deliberately short: install production dependencies, copy the source, drop privileges, and run the server.

Dockerfile
FROM node:24-alpine ENV NODE_ENV=production WORKDIR /app COPY package*.json ./ RUN npm install --omit=dev COPY . . EXPOSE 3000 USER node CMD ["node", "server.js"]
NOTE

Pass secrets as container environment variables—never bake .env into an image.

05

Behind a proxy

Terminate TLS in front of the application so Secure cookies and HSTS work. Then—and only then—let the app trust forwarded headers.

.env
TRUST_PROXY=true
NOTE

With trustProxy off behind a proxy, every client looks like the proxy to the rate limiter. With it on and no proxy, any client can spoof its address. Match the setting to reality.

06

Health checks

Generated projects expose a health endpoint. Point your platform's health check, your load balancer, and your uptime monitor at it.

TERMINAL
curl -s https://example.com/health # {"status":"ok","runtime":"Node.js"}
07

Database migrations in a release

Run migrations as an explicit release step, not from application startup, so a failed migration does not take down running instances.

TERMINAL
npm run migrate npx noderyx migrate:status
NOTE

migrate:status in the deploy log is the cheapest schema-drift alarm you will ever install.

08

Release checklist

The short version of everything on this page.

  • NODE_ENV=production and a unique APP_KEY are set.
  • HTTPS is terminated in front of the app, and SITE_URL matches it exactly.
  • Migrations have run and migrate:status is clean.
  • The health endpoint answers.
  • Error pages under resources/views/errors/ match your brand.
  • Rate limits, CORS origins, and body limits reflect real traffic.
  • Logs are collected somewhere you will actually read them.
09

After deploying

Verify the running thing rather than the plan for it.

TERMINAL
curl -sI https://example.com | grep -i "content-security-policy\|strict-transport"
NOTE

Then run Lighthouse against the production URL—see SEO & performance.