69 lines
1.9 KiB
TypeScript
69 lines
1.9 KiB
TypeScript
import { postgresAdapter } from '@payloadcms/db-postgres';
|
|
import { lexicalEditor } from '@payloadcms/richtext-lexical';
|
|
import { s3Storage } from '@payloadcms/storage-s3';
|
|
import { NodeHttpHandler } from '@smithy/node-http-handler';
|
|
import https from 'https';
|
|
import path from 'path';
|
|
import { buildConfig } from 'payload';
|
|
import sharp from 'sharp';
|
|
import { fileURLToPath } from 'url';
|
|
|
|
import { CommunitiesSection } from './collections/CommunitiesSection';
|
|
import { FeaturesSection } from './collections/FeaturesSection';
|
|
import { HeroSection } from './collections/HeroSection';
|
|
import { Media } from './collections/Media';
|
|
import { Users } from './collections/Users';
|
|
|
|
const filename = fileURLToPath(import.meta.url);
|
|
const dirname = path.dirname(filename);
|
|
|
|
export default buildConfig({
|
|
admin: {
|
|
user: Users.slug,
|
|
importMap: {
|
|
importMapFile: path.resolve(
|
|
__dirname,
|
|
'app',
|
|
'(payload)',
|
|
'admin',
|
|
'importMap.js'
|
|
),
|
|
},
|
|
},
|
|
collections: [Users, Media],
|
|
globals: [HeroSection, FeaturesSection, CommunitiesSection],
|
|
editor: lexicalEditor(),
|
|
secret: process.env.CMS_SECRET || '',
|
|
typescript: {
|
|
outputFile: path.resolve(dirname, 'payload-types.ts'),
|
|
},
|
|
db: postgresAdapter({
|
|
pool: {
|
|
connectionString: process.env.CMS_POSTGRES_URL || '',
|
|
},
|
|
}),
|
|
sharp,
|
|
plugins: [
|
|
s3Storage({
|
|
collections: {
|
|
media: {
|
|
disableLocalStorage: true,
|
|
},
|
|
},
|
|
bucket: 'landing-cms',
|
|
config: {
|
|
endpoint: process.env.CMS_STORAGE_ENDPOINT,
|
|
credentials: {
|
|
accessKeyId: process.env.CMS_STORAGE_ACCESS_KEY_ID!,
|
|
secretAccessKey: process.env.CMS_STORAGE_SECRET_ACCESS_KEY!,
|
|
},
|
|
region: process.env.CMS_STORAGE_REGION!,
|
|
forcePathStyle: true,
|
|
requestHandler: new NodeHttpHandler({
|
|
httpsAgent: new https.Agent({ rejectUnauthorized: false }),
|
|
}),
|
|
},
|
|
}),
|
|
],
|
|
});
|