Skip to main content
Mastra 1.0 is available 🎉 Read announcement

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.

info

If you're using a server adapter or web framework, deploy the way you normally would for that framework.

Before you begin
Direct 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.

Installation
Direct link to Installation

Add the @mastra/deployer-cloudflare package to your project:

npm install @mastra/deployer-cloudflare@latest

Import CloudflareDeployer and set it as the deployer in your Mastra configuration:

src/mastra/index.ts
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 install -D wrangler

Usage
Direct link to Usage

After setting up your project, push it to your remote Git provider of choice (e.g. GitHub).

  1. 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.

    note

    Remember to set your environment variables needed to run your application (e.g. your model provider API key).

  2. Once you're ready, click the Deploy button and wait for the first deployment to complete.

  3. 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.

  4. You can now call your Mastra endpoints over HTTP.

    note

    Set up authentication before exposing your endpoints publicly.

On this page