summaryrefslogtreecommitdiff
path: root/payload.config.ts
diff options
context:
space:
mode:
authorBertrand Yuan <bert.yuan@outlook.com>2025-12-16 00:12:49 +0800
committerBertrand Yuan <bert.yuan@outlook.com>2025-12-16 00:12:49 +0800
commit02ae938c238c9d18448d17a8ec92c0edd8c17463 (patch)
treedcd6a30505adb52522b20af2c0ac27f713403f10 /payload.config.ts
parent48b07bc308a35734a6a7a305c8fdccbfa47de7d8 (diff)
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.
Diffstat (limited to 'payload.config.ts')
-rw-r--r--payload.config.ts50
1 files changed, 50 insertions, 0 deletions
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,
+});