Neo Guide
Neo home

For developers

Run Neo on your computer

The shortest safe setup guide for a developer working locally.

Quick start

cp .env.example .env
npm ci
npm run env:check
npm run db:migrate
npm run dev

Node.js 24, npm, and a local PostgreSQL database are required. Mock providers are the safe local default. Do not enable a live adapter merely to make local development work.

Environment-variable groups

GroupVariablesPurpose
Origins/runtimeAPP_ENV, public/app/API/docs URLs, host, port, process roleEnvironment, host separation, and process topology.
DatabaseDATABASE_URL, POSTGRES_DATABASE_URLRuntime and explicit migration/test target.
Provider selectionMock flags and provider namesSelect a reviewed adapter or safe double.
Delivery/gatesDelivery modes, commerce, payout, refund, and beta flagsControl external writes and sandbox boundaries.
CertificationEnvironment and credential-version labelsBind non-secret deployment identity to evidence.
SecretsProvider tokens, webhook secrets, session secret, OTP pepper, AI keyServer-only secret store values; never public or committed.
UploadsMinIO endpoint, keys, bucket, region, private directoryPrivate object storage.

.env.example is the authoritative field-level reference. It contains placeholders only.

Validation behavior

Production rejects mock providers. Automated commerce writes require outbox delivery. Payout and refund gates fail closed when their provider or certification boundary is missing. Runtime database configuration accepts PostgreSQL only. Live tests are opt-in.

Environment errors are startup failures, not warnings. Fix the configuration rather than bypassing validation.

Safe commands

npm run db:start
npm run env:check
npm run typecheck
npm test
npm audit --omit=dev
npm run docs:check

Provider canaries and live AI smokes are intentionally not part of routine local setup. They require the correct target, credentials, cost/side-effect approval, and the relevant runbook.

  • README.md
  • .env.example
  • src/env.ts
  • src/db.ts
  • test/env.test.ts