Config & Environments
How to configure Jeasx
Jeasx provides sensible defaults to get you started quickly, but it also allows you to override important settings with environment variables. This makes it easy to adapt the framework to your needs.
To facilitate managing multiple configurations, Jeasx leverages layers of .env-files. This enables the use of different .env-files based on the NODE_ENV value, such as .env.development
to override values from .env
for development. The order of loading .env-files is the same as it is used by the well-known dotenv-flow library. To load the env-files into process.env
, Jeasx makes use of the native implementation provided by Node.js via process.loadEnvFile via a custom utility function. An existing environment variable will not be overwritten by subsequent files.
- .env.[NODE_ENV].local (e.g. .env.development.local or .env.production.local)
- .env.[NODE_ENV] (e.g. .env.development or .env.production)
- .env.local
- .env
- .env.defaults
Please note: Jeasx only sets NODE_ENV=development
automatically when running jeasx dev
. For production or testing environments, you'll need to set the NODE_ENV
environment variable to the desired value (e.g. production
or test
) depending on your requirements and workflows.
For security reasons, only environment variables prefixed with BROWSER_PUBLIC_
are accessible in client-side JavaScript (src/browser
) to prevent accidental exposure of sensitive data. The values are only updated at build time, so changes to environment variables will require a rebuild to take effect.
Environment Variables
Name | Description |
---|---|
HOST | The hostname or IP address that the server should listen on. Defaults to |
PORT | The port number that the server should listen on. Defaults to |
BUILD_TIME | A read-only value set at build time and encoded as |
ESBUILD_BROWSER_TARGET | Defaults to |
FASTIFY_BODY_LIMIT | The default maximum body size for incoming requests is |
FASTIFY_DISABLE_REQUEST_LOGGING | Set this to true to disable request logging. |
FASTIFY_REWRITE_URL | If you want to rewrite incoming URLs (e.g. running behind a proxy server or when you want to fake non-existing URLs), you can provide a function which takes a request object and returns an URL as string. To ignore a leading segment like |
FASTIFY_STATIC_HEADERS | Custom headers for static files, such as JavaScript, CSS, and assets from the public directory. Use these headers to configure cache settings for static content.
The keys of the mapping are compared via Please note: If you set caching headers in global |
FASTIFY_TRUST_PROXY | By enabling the trustProxy option, Fastify will know that it is sitting behind a proxy and that the X-Forwarded-* header fields may be trusted, which otherwise may be easily spoofed. Please note: the option only supports boolean or string values. |