A minimal production-ready node HTTP server with Express
and Typescript.
✅ Typescript
✅ Graceful shutdown
✅ Tracing with OpenTelemetry
✅ Trust proxy
✅ Structured logging with pino
✅ Rich request logging middleware including request id, trace id, context propagation, and more
✅ Testing with jest
and supertest
✅ helmet
& compression
git clone https://github.com/dillonstreator/template-node-express
cd template-node-express
yarn install
yarn dev
See all example configuration via environment variables in .env-example
Open Telemetry is disabled by default but can be enabled by setting the OTEL_ENABLED
environment to true
.
By default, the trace exporter is set to standard output. This can be overridden by setting OTEL_EXPORTER_OTLP_ENDPOINT
.
Start the jaegertracing/all-in-one
container with docker-compose up
and set OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
to collect logs in jaeger. Docker compose will expose jaeger at http://localhost:16686