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
Ask Anything
FAQ
What is Medusa?
How can I create a module?
How can I create a data model?
How do I create a workflow?
How can I extend a data model in the Product Module?
Recipes
How do I build a marketplace with Medusa?
How do I build digital products with Medusa?
How do I build subscription-based purchases with Medusa?
What other recipes are available in the Medusa documentation?
Chat is cleared on refresh
Line break