Studio のデプロイ
Studio はブラウザーで動作し、実行中の Mastra サーバーに接続する React ベースのシングルページアプリケーション(SPA)です。
Studio の主なデプロイ方法は2つあります。
- Mastra platform のホステッド Studio を使用し、リンクでチームにアクセスを共有する
- Mastra サーバーと同じ場所、または独立した SPA として別の場所に Studio をセルフホストする
このページでは、Studio を独自のインフラストラクチャにデプロイする方法を説明します。デプロイの詳細は要件や構成によって大きく異なるため、ここでは一般的な原則と利用可能な選択肢を取り上げます。
クイックスタートクイックスタートへの直接リンク
Studio を実行する最も簡単な方法は、mastra studio コマンドです。
mastra dev は開発用の Studio と API の両方を実行します。一方、mastra studio は、すでに実行中の Mastra サーバーに接続する独立した静的 UI を提供します。必要に応じて Studio を Mastra サーバーとは別にデプロイできます。
ターミナルを開き、mastra CLI をグローバルにインストールします。
- npm
- pnpm
- Yarn
- Bun
npm install -g mastra
pnpm add -g mastra
yarn global add mastra
bun add --global mastra
mastra studio コマンドを実行します。
mastra studio
ブラウザーで localhost:3000 を開くと Studio UI が表示されます。デフォルトでは、http://localhost:4111 で実行中の Mastra サーバーへの接続を試みます。見つからない場合は、Mastra インスタンスの URL と API プレフィックスを入力するフォームが表示されます。
このコマンドは Node の組み込み http モジュールと serve-handler を使用して静的ファイルを配信します。
Studio をサブパス(Nginx の背後にある /agents など)でホストする場合は、Studio を起動する前に MASTRA_STUDIO_BASE_PATH を設定します。
MASTRA_STUDIO_BASE_PATH=/agents mastra studio
これにより HTML のベース URL と静的アセットのルーティングが更新され、独立した Studio がそのサブパスで正しく動作します。
Mastra platformMastra platformへの直接リンク
Mastra platform のホステッド Studio については、Mastra platform の Studio を参照してください。
サーバーを実行するサーバーを実行するへの直接リンク
mastra studio を長時間実行するプロセスとして運用する方法は、他の Node.js サービスと変わりません。デプロイに関する一般的なベストプラクティス、ツール、選択肢をそのまま適用できます。PM2 などのプロセスマネージャー、Docker、Node.js アプリケーションに対応するクラウドサービスを利用できます。他の Web サービスと同様に、CORS を正しく設定し、エラーを監視してください。
Studio を Mastra サーバーに接続すると、Agent、Workflow、Tool に対するフルアクセスが与えられます。不正アクセスを防ぐため、本番環境では認証や VPN などを使用して適切に保護してください。
詳しくは認証ドキュメントを参照してください。
API と同じ場所で実行するAPI と同じ場所で実行するへの直接リンク
また、Mastra サーバーと同じ場所で Studio を配信することもできます。この方法なら、デプロイして管理するサービスは1つだけです。
これを行うには、--studio フラグを指定して mastra build を実行します。
mastra build --studio
ビルドされた Studio アセットを含む .mastra/output/studio フォルダーが作成されます。MASTRA_STUDIO_PATH 環境変数を定義すると、Mastra サーバーから Studio UI も配信できます。
MASTRA_STUDIO_PATH=.mastra/output/studio node .mastra/output/index.mjs
CDN を使用するCDN を使用するへの直接リンク
自動自動への直接リンク
一部のクラウド Provider には、サーバーレス関数とともに Studio をデプロイするオプションがあります。現在対応している Provider は次のとおりです。
手動手動への直接リンク
Studio UI は一部のランタイム設定に依存するため、ビルド済みの Studio アセットを CDN に直接デプロイすることはできません。少し設定を追加すれば、ビルド済みアセットから独立した SPA を作成し、任意の静的ホスティングサービスにデプロイできます。
次の例に従って、Vite を使用した SPA を作成します。
新しいフォルダーを作成し、Node.js プロジェクトを初期化します。
- npm
- pnpm
- Yarn
- Bun
mkdir studio-spacd studio-spanpm initmkdir studio-spacd studio-spapnpm initmkdir studio-spacd studio-spayarn initmkdir studio-spacd studio-spabun initviteとmastraを依存関係としてインストールします。- npm
- pnpm
- Yarn
- Bun
npm install vite mastrapnpm add vite mastrayarn add vite mastrabun add vite mastrapackage.jsonにビルドスクリプトを追加します。package.json{"scripts": {"build": "vite build"}}プレースホルダーとなる
index.htmlファイルを作成します。index.html<!doctype html><html><head></head><body></body></html>vite.config.jsファイルを作成します。このファイルは、ビルド済みの Studio アセットをdistフォルダーにコピーし、HTML 内の%%PLACEHOLDER%%値を環境変数の値に置き換えます。vite.config.jsimport { defineConfig, loadEnv } from 'vite'import { readFileSync, cpSync, writeFileSync } from 'node:fs'import { resolve, join } from 'node:path'const studioDir = resolve(import.meta.dirname, 'node_modules/mastra/dist/studio')export default defineConfig(({ mode }) => {const env = loadEnv(mode, process.cwd(), 'MASTRA_')return {plugins: [{name: 'mastra-studio',closeBundle() {const outDir = resolve(import.meta.dirname, 'dist')cpSync(studioDir, outDir, { recursive: true })const indexPath = join(outDir, 'index.html')const html = readFileSync(indexPath, 'utf-8')writeFileSync(indexPath,html.replaceAll(/%%(\w+)%%/g, (_, key) => env[key] ?? ''),)},},],build: {emptyOutDir: true,},}})必要な環境変数を指定した
.envファイルを作成します。.envMASTRA_SERVER_HOST=localhostMASTRA_SERVER_PORT=4111MASTRA_SERVER_PROTOCOL=httpMASTRA_API_PREFIX=/apiMASTRA_HIDE_CLOUD_CTA=falseMASTRA_CLOUD_API_ENDPOINT=MASTRA_EXPERIMENTAL_FEATURES=falseMASTRA_TEMPLATES=falseMASTRA_TELEMETRY_DISABLED=trueMASTRA_REQUEST_CONTEXT_PRESETS=MASTRA_THEME_TOGGLE=falseMASTRA_EXPERIMENTAL_UI=falseMASTRA_STUDIO_BASE_PATH=ビルドスクリプトを実行し、
distフォルダーに静的ファイルを生成します。- npm
- pnpm
- Yarn
- Bun
npm run buildpnpm run buildyarn buildbun run buildホスティング Provider のデプロイ対象を
distフォルダーに設定します。