HooStore-Backend/medusa-config.ts
2026-10-27 15:08:53 +07:00

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,
},
},
],
},
},
]
: []),
],
})