---
title: ソースコードからデプロイ
description: JavaScript プロジェクトを Dockerfile なしでそのままアップロードできます。Agent Lab がフレームワークを検出してビルドし、ウェブページまたはアプリにします。
url: https://agentlab.cresclab.com/docs/ja/deploy/source-build
language: ja
updated: 2026-10-08
---

# ソースコードからデプロイ

JavaScript プロジェクトを Dockerfile なしでそのままアップロードできます。Agent Lab がフレームワークを検出してビルドし、ウェブページまたはアプリにします。

## 何が起きるか

`package.json` が最上位にくるようにプロジェクトを zip にしてアップロードします。プラットフォームがプロジェクトを読み取り、ビルドプランを作ってビルドします。

- ブラウザ向けのファイルだけを生成するプロジェクトは**ウェブページ**になり、CDN から配信されます。シングルページアプリのパス（`/orders/42` など）はすべて `index.html` を返します。
- サーバーを動かすプロジェクトは**コンテナアプリ**になり、非 root ユーザーで 8080 番ポートで動くイメージにビルドされます。

Dockerfile を書く必要はありません。最上位に Dockerfile がある場合は検出の代わりにそれが使われます。無効にするには[ビルド設定](https://agentlab.cresclab.com/docs/ja/deploy/source-build.md#build-settings)を参照してください。

> [!TIP] zip に入れないもの
> `node_modules`、`.git`、`dist`、`.env`。依存関係はプラットフォームがインストールし、含まれていてもスキップします。

## 対応フレームワーク

| ウェブページになる                                    | アプリになる                                             |
| ----------------------------------------------------- | -------------------------------------------------------- |
| Vite（React、Vue、Svelte）、Create React App、Vue CLI | Next.js（`output: "export"` ならウェブページ）           |
| Angular、静的 Astro、ビルドスクリプト付きの HTML      | Nuxt、SvelteKit、Remix、React Router 7、SSR の Astro     |
|                                                       | Express、Fastify、Koa、Hono、NestJS などの Node サーバー |

npm、pnpm、Yarn、Bun はロックファイルか `packageManager` フィールドで判定します。Node.js は `engines.node`、`.nvmrc`、`.node-version` の順に読み、なければ最新 LTS（24）を使います。18、20、22、24 が使えます。

## 環境変数

プランには、コードが読む変数（`.env.example`、`process.env.*`、`import.meta.env.*`）が並び、シークレットらしいものやビルド時に必要なもの（`VITE_*`、`NEXT_PUBLIC_*` など）に印が付きます。

1. デプロイ前に入力します。アプリは **設定 › 実行設定**（シークレットは **シークレット**）、ウェブページは **設定 › ビルド変数** です。ソースからビルドしたバージョンには、コードが読むのに未設定の変数が表示されます。
2. 変数はビルドにも渡されます。ビルド時の変数はウェブページに埋め込まれるため、`VITE_` や `NEXT_PUBLIC_` の変数にシークレットを入れないでください。
3. シークレットはインストールとビルドの手順にマウントで渡されます（プライベートレジストリのトークンなど）。イメージには書き込まれません。

## ビルド設定

検出が外れたときは **設定 › ビルド設定** で上書きします。空欄は検出されます。

| 設定                               | 例                    | 変数                       |
| ---------------------------------- | --------------------- | -------------------------- |
| Node.js バージョン                 | `22`                  | `ALPACK_NODE_VERSION`      |
| インストールコマンド               | `npm ci`              | `ALPACK_INSTALL_CMD`       |
| ビルドコマンド                     | `npm run build:prod`  | `ALPACK_BUILD_CMD`         |
| 起動コマンド                       | `node dist/server.js` | `ALPACK_START_CMD`         |
| 出力ディレクトリ                   | `dist/browser`        | `ALPACK_OUTPUT_DIR`        |
| リポジトリの Dockerfile を使わない | オン                  | `ALPACK_IGNORE_DOCKERFILE` |
| アプリのパス                       | `apps/web`            | —                          |

ブランチの実行設定に同じ名前の変数があれば、そちらが優先されます。`ALPACK_*` はビルドだけに使われ、実行中のアプリには渡されません。

ウェブページと検出されたプロジェクトに起動コマンドを設定すると、アプリになります。

## モノレポ

複数のプロジェクトを含むリポジトリは、リポジトリ全体をアップロードし、ビルド設定の **アプリのパス** にアプリのフォルダ（例: `apps/web`）を入力します。プラットフォームはそのフォルダで検出・ビルドするため、そのフォルダの `package.json` とロックファイルでビルド方法が決まります。リポジトリの他の場所にあるパッケージ（`workspace:*` の依存など）はまだ使えません。

## ビルドが失敗したとき

| 表示                                 | 対処                                                                                       |
| ------------------------------------ | ------------------------------------------------------------------------------------------ |
| このソースのビルド方法がわからない   | zip の最上位に `package.json` を置くか、起動コマンドを設定します。                         |
| ビルドが何も出力しなかった           | 出力ディレクトリを、ビルドが実際にファイルを書く場所に設定します。                         |
| アプリへのアップロードがウェブページ | アプリはウェブページに戻せません。新しいアプリを作るか、起動コマンドを設定します。         |
| ネイティブモジュールのコンパイル失敗 | ロックファイルをコミットしてください。ネイティブ依存を検出するとコンパイラが追加されます。 |

各手順はバージョンページのビルドログで確認できます。AI ツールでは、先にビルドプランを取得させてください。[MCP ツール](https://agentlab.cresclab.com/docs/ja/deploy/mcp-tools.md#sites)を参照。
