NetlifyDeployer

The NetlifyDeployer deploys Mastra applications to Netlify Functions, handling site creation, configuration, and deployment processes. It extends the abstract Deployer class to provide Netlify-specific deployment functionality.

Usage Example

import { Mastra } from '@mastra/core';
import { NetlifyDeployer } from '@mastra/deployer-netlify';
 
const mastra = new Mastra({
  deployer: new NetlifyDeployer({
    scope: 'your-team-slug',
    projectName: 'your-project-name',
    token: 'your-netlify-token'
  }),
  // ... other Mastra configuration options
});

Parameters

Constructor Parameters

scope:

string
Your Netlify team slug or ID.

projectName:

string
Name of your Netlify site (will be created if it doesn't exist).

token:

string
Your Netlify authentication token.

Netlify Configuration

The NetlifyDeployer automatically generates a netlify.toml configuration file with the following settings:

[functions]
node_bundler = "esbuild"            
directory = "netlify/functions"
 
[[redirects]]
force = true
from = "/*"
status = 200
to = "/.netlify/functions/api/:splat"

Environment Variables

The NetlifyDeployer handles environment variables from multiple sources:

  1. Environment Files: Variables from .env.production and .env files.
  2. Configuration: Variables passed through the Mastra configuration.
  3. Netlify Dashboard: Variables can also be managed through Netlify’s web interface.

Project Structure

The deployer creates the following structure in your output directory:

output-directory/
├── netlify/
│   └── functions/
│       └── api/
│           └── index.mjs    # Application entry point with Hono server integration
└── netlify.toml             # Deployment configuration