Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 7s
Build & Deploy / 🧪 QA (push) Successful in 2m15s
Build & Deploy / 🏗️ Build (push) Successful in 3m51s
Build & Deploy / 🚀 Deploy (push) Successful in 21s
Build & Deploy / 🧪 Smoke Test (push) Failing after 1m3s
Build & Deploy / ⚡ Lighthouse (push) Has been skipped
Build & Deploy / ♿ WCAG (push) Has been skipped
Build & Deploy / 🛡️ Quality Gates (push) Has been skipped
Build & Deploy / 🔔 Notify (push) Successful in 9s
78 lines
2.7 KiB
TypeScript
78 lines
2.7 KiB
TypeScript
import { buildConfig } from 'payload';
|
|
import { postgresAdapter } from '@payloadcms/db-postgres';
|
|
import { lexicalEditor } from '@payloadcms/richtext-lexical';
|
|
import sharp from 'sharp';
|
|
import path from 'path';
|
|
import { fileURLToPath } from 'url';
|
|
import { nodemailerAdapter } from '@payloadcms/email-nodemailer';
|
|
import { BlocksFeature } from '@payloadcms/richtext-lexical';
|
|
import { payloadBlocks } from './src/payload/blocks/allBlocks';
|
|
import { migrations } from './src/migrations';
|
|
|
|
// Only disable sharp cache in production to prevent memory leaks.
|
|
// In dev, the cache avoids 41s+ re-processing per image through VirtioFS.
|
|
if (process.env.NODE_ENV === 'production') {
|
|
sharp.cache(false);
|
|
}
|
|
|
|
import { Users } from './src/payload/collections/Users';
|
|
import { Media } from './src/payload/collections/Media';
|
|
import { Posts } from './src/payload/collections/Posts';
|
|
import { FormSubmissions } from './src/payload/collections/FormSubmissions';
|
|
import { Products } from './src/payload/collections/Products';
|
|
import { Pages } from './src/payload/collections/Pages';
|
|
import { seedDatabase } from './src/payload/seed';
|
|
|
|
const filename = fileURLToPath(import.meta.url);
|
|
const dirname = path.dirname(filename);
|
|
|
|
export default buildConfig({
|
|
onInit: async (payload) => {
|
|
if (process.env.NODE_ENV === 'production') {
|
|
await seedDatabase(payload);
|
|
}
|
|
},
|
|
admin: {
|
|
user: Users.slug,
|
|
importMap: {
|
|
baseDir: path.resolve(dirname),
|
|
},
|
|
},
|
|
collections: [Users, Media, Posts, FormSubmissions, Products, Pages],
|
|
editor: lexicalEditor({
|
|
features: ({ defaultFeatures }) => [
|
|
...defaultFeatures,
|
|
BlocksFeature({
|
|
blocks: payloadBlocks,
|
|
}),
|
|
],
|
|
}),
|
|
secret: process.env.PAYLOAD_SECRET || 'fallback-secret-for-dev',
|
|
typescript: {
|
|
outputFile: path.resolve(dirname, 'payload-types.ts'),
|
|
},
|
|
db: postgresAdapter({
|
|
prodMigrations: migrations,
|
|
pool: {
|
|
connectionString:
|
|
process.env.DATABASE_URI ||
|
|
process.env.POSTGRES_URI ||
|
|
`postgresql://${process.env.PAYLOAD_DB_USER || 'payload'}:${process.env.PAYLOAD_DB_PASSWORD || '120in09oenaoinsd9iaidon'}@127.0.0.1:54322/${process.env.PAYLOAD_DB_NAME || 'payload'}`,
|
|
},
|
|
}),
|
|
email: nodemailerAdapter({
|
|
defaultFromAddress: process.env.MAIL_FROM?.replace(/.*<|>.*/g, '') || 'postmaster@mg.mintel.me',
|
|
defaultFromName: process.env.MAIL_FROM?.split('<')[0]?.trim() || 'KLZ Cables',
|
|
transportOptions: {
|
|
host: process.env.MAIL_HOST || 'smtp.eu.mailgun.org',
|
|
port: Number(process.env.MAIL_PORT) || 587,
|
|
auth: {
|
|
user: process.env.MAIL_USERNAME,
|
|
pass: process.env.MAIL_PASSWORD,
|
|
},
|
|
},
|
|
}),
|
|
sharp,
|
|
plugins: [],
|
|
});
|