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 });