my payload config:
// storage-adapter-import-placeholder
import { lexicalEditor } from '@payloadcms/richtext-lexical';
import path from 'path';
import { buildConfig } from 'payload';
import { fileURLToPath } from 'url';
import sharp from 'sharp';
import { postgresAdapter } from '@payloadcms/db-postgres';
import { Media } from './collections/Media';
import { Posts } from './collections/Posts';
import { Users } from './collections/Users';
import { s3Storage } from '@payloadcms/storage-s3';
const filename = fileURLToPath(import.meta.url);
const dirname = path.dirname(filename);
export default buildConfig({
admin: {
user: Users.slug,
importMap: {
baseDir: path.resolve(dirname)
}
},
collections: [Users, Media, Posts],
editor: lexicalEditor(),
secret: process.env.PAYLOAD_SECRET || '',
typescript: {
outputFile: path.resolve(dirname, 'payload-types.ts')
},
// database-adapter-config-start
db: postgresAdapter({
schemaName: 'cms',
pool: {
connectionString: process.env.DATABASE_URI || ''
}
}),
// database-adapter-config-end
sharp,
plugins: [
// storage-adapter-placeholder
s3Storage({
collections: {
media: {
prefix: 'media'
}
},
bucket: process.env.S3_BUCKET || '',
config: {
forcePathStyle: true,
credentials: {
accessKeyId: process.env.S3_ACCESS_KEY_ID || '',
secretAccessKey: process.env.S3_SECRET_ACCESS_KEY || ''
},
region: process.env.S3_REGION || '',
endpoint: process.env.S3_ENDPOINT || ''
}
})
]
});