Cloud Projects

Overview

Payload Cloud Overview Page A screenshot of the Overview page for a Cloud project.

Database

Your Payload Cloud project comes with a MongoDB serverless Atlas DB instance or a Dedicated Atlas cluster, depending on your plan. To interact with your cloud database, you will be provided with a MongoDB connection string. This can be found under the Database tab of your project.

mongodb+srv://your_connection_string

File Storage

Payload Cloud gives you S3 file storage backed by Cloudflare as a CDN, and this plugin extends Payload so that all of your media will be stored in S3 rather than locally.

AWS Cognito is used for authentication to your S3 bucket. The Payload Cloud Plugin will automatically pick up these values. These values are only if you'd like to access your files directly, outside of Payload Cloud.

Accessing Files Outside of Payload Cloud

If you'd like to access your files outside of Payload Cloud, you'll need to retrieve some values from your project's settings and put them into your environment variables. In Payload Cloud, navigate to the File Storage tab and copy the values using the copy button. Put these values in your .env file. Also copy the Cognito Password value separately and put into your .env file as well.

When you are done, you should have the following values in your .env file:

1
PAYLOAD_CLOUD=true
2
PAYLOAD_CLOUD_ENVIRONMENT=prod
3
PAYLOAD_CLOUD_COGNITO_USER_POOL_CLIENT_ID=
4
PAYLOAD_CLOUD_COGNITO_USER_POOL_ID=
5
PAYLOAD_CLOUD_COGNITO_IDENTITY_POOL_ID=
6
PAYLOAD_CLOUD_PROJECT_ID=
7
PAYLOAD_CLOUD_BUCKET=
8
PAYLOAD_CLOUD_BUCKET_REGION=
9
PAYLOAD_CLOUD_COGNITO_PASSWORD=

The plugin will pick up these values and use them to access your files.

Build Settings

You can update settings from your Project’s Settings tab. Changes to your build settings will trigger a redeployment of your project.

Environment Variables

From the Environment Variables page of the Settings tab, you can add, update and delete variables for use in your project. Like build settings, these changes will trigger a redeployment of your project.

Custom Domains

With Payload Cloud, you can add custom domain names to your project. To do so, first go to the Domains page of the Settings tab of your project. Here you can see your default domain. To add a new domain, type in the domain name you wish to use.

Once you click save, a DNS record will be generated for your domain name to point to your live project. Add this record into your DNS provider’s records, and once the records are resolving properly (this can take 1hr to 48hrs in some cases), your domain will now to point to your live project.

You will also need to configure your Payload project to use your specified domain. In your payload.config.ts file, specify your serverURL with your domain:

1
export default buildConfig({
2
serverURL: 'https://example.com',
3
// the rest of your config,
4
})

Email

Powered by Resend, Payload Cloud comes with integrated email support out of the box. No configuration is needed, and you can use payload.sendEmail() to send email right from your Payload app. To learn more about sending email with Payload, checkout the Email Configuration overview.

If you are on the Pro or Enterprise plan, you can add your own custom Email domain name. From the Email page of your project’s Settings, add the domain you wish to use for email delivery. This will generate a set of DNS records. Add these records to your DNS provider and click verify to check that your records are resolving properly. Once verified, your emails will now be sent from your custom domain name.

Developing Locally

To make changes to your project, you will need to clone the repository defined in your project settings to your local machine. In order to run your project locally, you will need configure your local environment first. Refer to your repository’s README.md file to see the steps needed for your specific template.

From there, you are ready to make updates to your project. When you are ready to make your changes live, commit your changes to the branch you specified in your Project settings, and your application will automatically trigger a redeploy and build from your latest commit.

Cloud Plugin

Projects generated from a template will come pre-configured with the official Cloud Plugin, but if you are using your own repository you will need to add this into your project. To do so, add the plugin to your Payload config:

yarn add @payloadcms/plugin-cloud

1
import { payloadCloud } from '@payloadcms/plugin-cloud'
2
import { buildConfig } from 'payload/config'
3
4
export default buildConfig({
5
plugins: [payloadCloud()],
6
// rest of config
7
})
Optional configuration

If you wish to opt-out of any Payload cloud features, the plugin also accepts options to do so.

1
payloadCloud({
2
storage: false, // Disable file storage
3
email: false, // Disable email delivery
4
})