76 lines
2.2 KiB
TypeScript
76 lines
2.2 KiB
TypeScript
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,
|
|
},
|
|
},
|
|
],
|
|
},
|
|
},
|
|
]
|
|
: []),
|
|
],
|
|
})
|