Skip to main content

Configuration

Medusa applications are configured using a medusa-config.js or medusa-config.ts file in the root of your project.

Configuration File

The configuration file exports a configuration object using the defineConfig helper:
medusa-config.ts
medusa-config.js

Configuration Structure

The configuration object has the following structure:
  • projectConfig: General configurations (database, HTTP, Redis)
  • admin: Admin dashboard configurations
  • modules: Module configurations and providers
  • plugins: Plugin configurations
  • featureFlags: Feature flag toggles

Project Configuration

Database Configuration

medusa-config.ts
The database URL format is: postgres://[user][:password]@[host][:port]/[dbname]

HTTP Configuration

medusa-config.ts
jwtSecret and cookieSecret are required for production. Use strong, random secrets.

Redis Configuration

For production, configure Redis for caching and event handling:
medusa-config.ts

Worker Mode

Configure how your application handles HTTP requests and background jobs:
medusa-config.ts
You can also set this via environment variable:

Admin Configuration

medusa-config.ts

Module Configuration

Configure Medusa modules and providers:
medusa-config.ts

Module Provider Configuration

Modules can have multiple providers configured. Each provider needs:
  • resolve: Package name or path to the provider
  • id: Unique identifier for the provider
  • options: Provider-specific configuration
  • is_default (optional): Set as the default provider

Plugin Configuration

medusa-config.ts

Feature Flags

Enable or disable experimental features:
medusa-config.ts
Feature flags allow you to enable experimental features. Check the documentation for each feature flag before enabling.

Complete Production Example

medusa-config.ts

Configuration Validation

Medusa validates your configuration on startup. Common errors:
  • Missing jwtSecret: Required for JWT authentication
  • Missing cookieSecret: Required for session management
  • Invalid database URL: Check connection string format
  • Module configuration errors: Verify module options
In production mode (NODE_ENV=production), configuration errors will cause the application to fail to start. In development, warnings are logged instead.

Environment-Specific Configuration

You can create different configurations for different environments:
medusa-config.ts