Deploy Mastra to Cloudflare
Use @mastra/deployer-cloudflare to deploy your Mastra server to Cloudflare Workers. The deployer bundles your code and generates a wrangler.jsonc file conforming to Cloudflare's wrangler configuration, ready to deploy with no additional configuration.
If you're using a server adapter or web framework, deploy the way you normally would for that framework.
Before you beginDirect link to Before you begin
You'll need a Mastra application and a Cloudflare account.
Cloudflare Workers use an ephemeral filesystem, so any storage you configure (including observability storage) must be hosted externally. If you're using LibSQLStore with a file URL, switch to a remotely hosted database.
InstallationDirect link to Installation
Add the @mastra/deployer-cloudflare package to your project:
- npm
- pnpm
- Yarn
- Bun
npm install @mastra/deployer-cloudflare@latest
pnpm add @mastra/deployer-cloudflare@latest
yarn add @mastra/deployer-cloudflare@latest
bun add @mastra/deployer-cloudflare@latest
Import CloudflareDeployer and set it as the deployer in your Mastra configuration:
import { Mastra } from "@mastra/core";
import { CloudflareDeployer } from "@mastra/deployer-cloudflare";
export const mastra = new Mastra({
deployer: new CloudflareDeployer({
name: "your-project-name",
vars: {
NODE_ENV: "production",
},
}),
});
In order to test your Cloudflare Worker locally, also install the wrangler CLI:
- npm
- pnpm
- Yarn
- Bun
npm install -D wrangler
pnpm add -D wrangler
yarn add --dev wrangler
bun add --dev wrangler
UsageDirect link to Usage
After setting up your project, push it to your remote Git provider of choice (e.g. GitHub).
Connect your repository to Cloudflare. On the "Workers & Pages" dashboard, select Create application and choose your Git provider in the next step. Continue with the setup process and select the repository you want to deploy.
noteRemember to set your environment variables needed to run your application (e.g. your model provider API key).
Once you're ready, click the Deploy button and wait for the first deployment to complete.
Try out your newly deployed function by going to
https://<your-project-name>.<slug>.workers.dev/api/agents. You should get a JSON response listing all available agents.Since the Mastra server prefixes every API endpoint with
/api, you have to add it to your URLs when making requests.You can now call your Mastra endpoints over HTTP.
noteSet up authentication before exposing your endpoints publicly.