Files
cms-template/payload.config.ts
T
2026-08-31 19:55:41 +02:00

83 lines
1.8 KiB
TypeScript

import sharp from 'sharp';
import { lexicalEditor } from '@payloadcms/richtext-lexical';
import { postgresAdapter } from '@payloadcms/db-postgres';
import { sqliteAdapter } from '@payloadcms/db-sqlite';
import { nodemailerAdapter } from '@payloadcms/email-nodemailer';
import { buildConfig } from 'payload';
import { de } from '@payloadcms/translations/languages/de';
import { Users } from '@/collections/Users';
import { Media } from '@/collections/Media';
import { Posts } from '@/collections/Posts';
export default buildConfig({
admin: {
user: 'users',
avatar: 'default',
meta: {
icons: [
{
rel: 'icon',
url: '/favicon.ico'
}
]
},
components: {
graphics: {
Logo: '/components/PayloadInjects#Logo',
Icon: '/components/PayloadInjects#Icon'
},
actions: [ '/components/PayloadInjects#Action' ]
},
livePreview: {
url: ({ collectionConfig, data }) => {
if (collectionConfig?.slug === 'posts')
return `${process.env.NEXT_PUBLIC_PAYLOAD_URL}/post/${data.slug}/?preview`;
return process.env.NEXT_PUBLIC_PAYLOAD_URL;
},
collections: [ 'posts' ]
}
},
i18n: {
supportedLanguages: { de }
},
editor: lexicalEditor(),
collections: [
Users,
Media,
Posts
],
secret: process.env.PAYLOAD_SECRET || '',
// db: postgresAdapter({
// pool: {
// connectionString: process.env.DATABASE_URL
// }
// }),
db: sqliteAdapter({
client: {
url: process.env.DATABASE_URL || '',
authToken: process.env.DATABASE_AUTH_TOKEN
}
}),
email: nodemailerAdapter({
defaultFromAddress: process.env.MAIL_USER ?? '',
defaultFromName: process.env.MAIL_DISPLAYNAME ?? '',
transportOptions: {
host: process.env.MAIL_HOST,
port: process.env.MAIL_PORT,
auth: {
user: process.env.MAIL_USER,
pass: process.env.MAIL_PASSWORD
}
}
}),
sharp
});