Configuration
Medusa applications are configured using amedusa-config.js or medusa-config.ts file in the root of your project.
Configuration File
The configuration file exports a configuration object using thedefineConfig 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 configurationsmodules: Module configurations and providersplugins: Plugin configurationsfeatureFlags: 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
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
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 providerid: Unique identifier for the provideroptions: Provider-specific configurationis_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
Environment-Specific Configuration
You can create different configurations for different environments:medusa-config.ts