import { loadEnv, defineConfig } from '@medusajs/framework/utils' loadEnv(process.env.NODE_ENV || 'development', process.cwd()) module.exports = defineConfig({ projectConfig: { databaseUrl: process.env.DATABASE_URL, databaseDriverOptions: { pool: { min: 0, max: 4 }, }, redisUrl: process.env.REDIS_URL, http: { storeCors: process.env.STORE_CORS!, adminCors: process.env.ADMIN_CORS!, authCors: process.env.AUTH_CORS!, jwtSecret: process.env.JWT_SECRET, cookieSecret: process.env.COOKIE_SECRET, } }, admin: { vite: () => ({ server: { allowedHosts: true, }, }), }, modules: [ { resolve: "./src/modules/newsletter", }, { // Uploaded product/category images are served from /static. Set // BACKEND_URL to the PUBLIC url of this backend (e.g. the ngrok https // url) so image URLs saved in the DB are reachable from the storefront. resolve: "@medusajs/medusa/file", options: { providers: [ { resolve: "@medusajs/medusa/file-local", id: "local", options: { backend_url: `${(process.env.BACKEND_URL || "http://localhost:9000").replace(/\/$/, "")}/static`, }, }, ], }, }, // Order confirmation emails (see src/subscribers/order-placed.ts). Only // registered once SMTP_HOST and SMTP_FROM are configured. ...(process.env.SMTP_HOST && process.env.SMTP_FROM ? [ { resolve: "@medusajs/medusa/notification", options: { providers: [ { resolve: "./src/modules/smtp-notification", id: "smtp", options: { channels: ["email"], host: process.env.SMTP_HOST, port: Number(process.env.SMTP_PORT || 587), secure: process.env.SMTP_SECURE === "true", user: process.env.SMTP_USER, pass: process.env.SMTP_PASS, from: process.env.SMTP_FROM, }, }, ], }, }, ] : []), ], })