From 02ae938c238c9d18448d17a8ec92c0edd8c17463 Mon Sep 17 00:00:00 2001 From: Bertrand Yuan Date: Tue, 16 Dec 2025 00:12:49 +0800 Subject: feat(back-end): introduce payload Payload is the next.js Headless CMS and App Framework, I would like to pick it up and modify it as it is MIT licensed. Many features in Payload is not applicable for our project. So, I modify it so that it is light and clear. --- payload.config.ts | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 payload.config.ts (limited to 'payload.config.ts') diff --git a/payload.config.ts b/payload.config.ts new file mode 100644 index 0000000..23f4cce --- /dev/null +++ b/payload.config.ts @@ -0,0 +1,50 @@ +import { buildConfig } from 'payload'; +import { postgresAdapter } from '@payloadcms/db-postgres'; +import { lexicalEditor } from '@payloadcms/richtext-lexical'; +import path from 'path'; +import { fileURLToPath } from 'url'; +import sharp from 'sharp'; + +import { Users } from './src/payload/collections/Users'; +import { Posts } from './src/payload/collections/Posts'; +import { Media } from './src/payload/collections/Media'; + +const filename = fileURLToPath(import.meta.url); +const dirname = path.dirname(filename); + +export default buildConfig({ + admin: { + user: Users.slug, + importMap: { + baseDir: path.resolve(dirname), + }, + meta: { + titleSuffix: ' - Blog Admin', + }, + autoLogin: + process.env.NODE_ENV === 'development' + ? { + email: 'admin@example.com', + password: 'admin123', + prefillOnly: true, + } + : false, + }, + i18n: { + fallbackLanguage: 'en', + }, + collections: [Users, Posts, Media], + editor: lexicalEditor(), + secret: process.env.PAYLOAD_SECRET || 'your-secret-key', + typescript: { + outputFile: path.resolve(dirname, 'payload-types.ts'), + }, + db: postgresAdapter({ + pool: { + connectionString: process.env.DATABASE_URL || '', + }, + schemaName: 'payload', + push: false, + }), + sharp, +}); -- cgit v1.2.3