5.11. Environment Variables

In this chapter, you'll learn how environment variables are loaded in Medusa.

System Environment Variables#

The Medusa application loads and uses system environment variables.

For example, if you set the PORT environment variable to 8000, the Medusa application runs on that port instead of 9000.

In production, you should always use system environment variables that you set through your hosting provider.


Environment Variables in .env Files#

During development, it's easier to set environment variables in a .env file in your repository.

Based on your NODE_ENV system environment variable, which is considered as development if not set, Medusa will try to load environment variables from the following .env files:

Environment

.env File

NODE_ENV = development or not set

.env

NODE_ENV = production

.env.production

NODE_ENV = staging

.env.staging

NODE_ENV = test

.env.test

Set Environment in loadEnv#

In the medusa-config.ts file of your Medusa application, you'll find a loadEnv function used that accepts process.env.NODE_ENV as a first parameter.

This function is responsible for loading the correct .env file based on the value of process.env.NODE_ENV.

To ensure that the correct .env file is loaded as shown in the table above, only specify development, production, staging or test as the value of process.env.NODE_ENV or as the parameter of loadEnv.

Was this chapter helpful?
Edit this page