> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ale.run/llms.txt
> Use this file to discover all available pages before exploring further.

# エールでデプロイ

<video autoPlay muted loop playsInline className="w-full aspect-video" src="https://storage.googleapis.com/files.cloudtype.io/ale-docs/developers/images/ja/deploy_jp.mp4" />

> ダッシュボードの <Icon icon="circle-plus" iconType="solid" size={15} color="2396F1" /> または `⌘ + K` でデプロイを開始します。

<Tip>
  エールが提供する各テンプレートには、デフォルトで異なるモジュールやライブラリが含まれています。<Icon icon="windows" size={15} color="9fa3a5" /> Windowsや<Icon icon="chrome" size={15} color="9fa3a5" /> Chromeライブラリなど、デフォルトに含まれないものを使用する場合は、<Icon icon="docker" size={15} color="9fa3a5" />[Dockerfile](/ja/developers/dockerfile)を作成してデプロイしてください。
</Tip>

***

## デプロイ方式の選択

<AccordionGroup>
  <Accordion title="GitHubリポジトリからデプロイ">
    #### デプロイするリポジトリの選択

    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/ja/06_02.png" />
    </Frame>

    > デプロイモーダルで**Gitリポジトリをデプロイ**をクリックし、デプロイするリポジトリを選択してください。

    #### 言語/フレームワークの選択

    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/ja/06_03.png" />
    </Frame>

    > デプロイするリポジトリに適したプリセットを選択してください。

    <Tip>
      ReactやVueなどのスタティックサイトの場合は、**Web Application**を選択してください。
    </Tip>
  </Accordion>

  <Accordion title="Git URLからデプロイ">
    #### デプロイキーの登録

    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/ja/06_04.png" />
    </Frame>

    > Gitリポジトリをデプロイ画面でGit URL タブを選択し、SSH形式のGit URLを入力すると、自動生成されたデプロイキー(Deploy Key)が表示されます。

    <Info>
      エールでは、**GitHub**をはじめ、**GitLab、Bitbucket**などのプライベートリポジトリのコードもデプロイできるよう、SSH認証をサポートしています。各プラットフォームでのデプロイキーの登録方法は以下をご参照ください。
    </Info>

    <AccordionGroup>
      <Accordion title="GitHub ">
        <Frame>
          <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/ja/06_06.png" />
        </Frame>

        > デプロイするリポジトリの**Settings > Deploy keys**ページ右上の`Add deploy key`をクリックし、エールで確認したデプロイキーの値を入力してキーを追加します
      </Accordion>

      <Accordion title="GitLab">
        <Frame>
          <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/ja/06_07.png" />
        </Frame>

        > デプロイするリポジトリの**Settings > Repository**画面から、**Deploy keys**セクションの`Expand`をクリックし、`Add new key`をクリックします。表示されたフィールドにエールで確認したデプロイキーの値を入力してキーを追加します。
      </Accordion>

      <Accordion title="Bitbucket">
        <Frame>
          <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/ja/06_08.png" />
        </Frame>

        > デプロイするリポジトリの**Repository settings > Access keys**ページで`Add key`をクリックし、エールで確認したデプロイキーの値を入力してキーを追加します。
      </Accordion>
    </AccordionGroup>

    #### 言語/フレームワークの選択

    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/ja/06_05.png" />
    </Frame>

    > デプロイするリポジトリに適したプリセットを選択してください。

    <Tip>
      ReactやVueなどのスタティックサイトの場合は、**Web Application**を選択してください。
    </Tip>
  </Accordion>

  <Accordion title="テンプレートを選択してデプロイ">
    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/ja/06_01.png" />
    </Frame>

    > 開発するサービスに適したテンプレートを選択し、連携するGitHubリポジトリを選択してください。

    <Tip>
      ReactやVueなどのスタティックサイトの場合は、**Web Application**を選択してください。
    </Tip>
  </Accordion>
</AccordionGroup>

## 設定とデプロイ

> デプロイするリポジトリとプリセットまたはテンプレートを選択した後、以下の項目を設定してデプロイしてください。

<AccordionGroup>
  <Accordion title="ブランチとサブディレクトリ">
    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/ja/06_10.png" />
    </Frame>

    > リポジトリを選択すると、ブランチとサブディレクトリを設定するフィールドが表示されます。1つのリポジトリで複数のサービスを別々のフォルダで管理している場合など、ルートディレクトリではなく、サブフォルダにデプロイするサービスが存在する場合は、サブディレクトリフィールドにそのパスを入力してください。

    <Info>
      サブディレクトリを設定しない場合、ルートディレクトリからデプロイが行われます。
    </Info>

    <Tip>
      詳細については、[サブディレクトリデプロイページ](/ja/developers/subdir)をご参照ください。
    </Tip>
  </Accordion>

  <Accordion title="バージョン">
    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/ja/06_11.png" />
    </Frame>

    > プリセットのバージョンをデプロイするリポジトリに合わせて選択してください。

    <Warning>
      プロジェクト設定ファイル（build.gradle、requirements.txt、package.jsonなど）に記載されているバージョンと、デプロイ設定時に選択したバージョンが一致しない場合、ビルドまたはランタイムエラーが発生する可能性があります。
    </Warning>
  </Accordion>

  <Accordion title="環境変数">
    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/ja/06_12.png" />
    </Frame>

    > 環境変数は以下の方法を組み合わせて追加できます：

    * ENVファイルの**ドラッグ＆ドロップ**
    * +アイコンをクリックして新規変数を直接入力
    * 鍵アイコンから保存済みのシークレットを選択

    <Info>
      環境変数の設定とシークレット管理の詳細については、[環境変数ページ](/ja/developers/env)をご参照ください。
    </Info>
  </Accordion>

  <Accordion title="ポート番号">
    > ポート番号はソースコードまたは環境変数の設定と一致する必要があり、正確でないポート番号を入力するか空欄にした場合、サービスが正常に動作しない可能性があります。

    <Warning>
      ポート番号にはデフォルト値が適用されません。ポート設定の詳細については、[ポート設定ページ](/ja/developers/port)をご参照ください。
    </Warning>
  </Accordion>

  <Accordion title="Install、Build、Start command">
    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/ja/06_13.png" />
    </Frame>

    > サービスの実行に使用するコマンドを設定します。各フィールドにはデフォルトコマンドが表示されており、プロジェクトの設定に応じて変更できます。

    * **Install Command**: 依存パッケージのインストールコマンド (例: `npm install`, `pip install -r requirements.txt`)
    * **Build Command**: アプリケーションのビルドコマンド (例: `npm run build`, `gradle build`)
    * **Start Command**: サービス実行コマンド (例: `npm start`, `python app.py`)

    <Info>
      フィールド値を入力しない場合は、プレースホルダーに表示されているデフォルト値が適用されます。
    </Info>
  </Accordion>

  <Accordion title="詳細オプション">
    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/ja/06_14.png" />
    </Frame>

    > 追加の設定値を入力できるフィールドが表示されます。

    <Info>
      表示されるフィールドはテンプレート/プリセットによって異なります。主な言語別の設定項目については、以下のカードをご参照ください。
    </Info>

    <CardGroup cols={4}>
      <Card title="springboot" icon="leaf" href="/ja/developers/springboot" horizontal />

      <Card title="node.js" icon="node" href="/ja/developers/node" horizontal />

      <Card title="Database" icon="database" href="/ja/developers/database" horizontal />

      <Card title="docker" icon="docker" href="/ja/developers/dockerfile" horizontal />
    </CardGroup>
  </Accordion>

  <Accordion title="リソース設定とデプロイ">
    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/ja/06_15.png" />
    </Frame>

    * **リソースタイプ**：[オンデマンドとスポットリソース](/ja/developers/resource#on-demand-spot)から選択

    * **CPU**：サービスで利用可能なvCPUの上限を設定。最小構成時は0.1 vCPUを割り当て

    * **メモリ**：サービスで利用可能なメモリの上限を設定

    * **ディスク**：データベースが使用するディスク容量(データベースデプロイ時に表示)

    * [レプリカ](/ja/developers/replica)：設定した数に応じサービスを水平スケーリングし、負荷分散と可用性確保

    * **デプロイ**：`デプロイ`をクリック
  </Accordion>
</AccordionGroup>

<Tip>
  リソース制限によりデプロイできない場合は、[スペースとリソースの管理ページ](/ja/operations/spaces#%E3%83%AA%E3%82%BD%E3%83%BC%E3%82%B9%E3%81%AE%E4%BB%98%E4%B8%8E)を参照してスペースにリソースを追加してください。
</Tip>

<Info>
  表示されるフィールドはテンプレート/プリセットによって異なります。主な言語別の設定項目については、以下のカードをご参照ください。
</Info>

<CardGroup cols={4}>
  <Card title="springboot" icon="leaf" href="/ja/developers/springboot" horizontal />

  <Card title="node.js" icon="node" href="/ja/developers/node" horizontal />

  <Card title="Database" icon="database" href="/ja/developers/database" horizontal />

  <Card title="docker" icon="docker" href="/ja/developers/dockerfile" horizontal />
</CardGroup>

## ログとターミナル

<Frame>
  <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/ja/06_16.png" />
</Frame>

> サービスカードまたはサービスページの<Icon icon="terminal" size={15} color="9fa3a5" />アイコンをクリックすると、デプロイ/実行ログの確認やターミナルへのアクセスできます。

## メトリクス

<Frame>
  <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/ja/06_25.png" />
</Frame>

> サービスページのメトリクスタブでサービスのメトリクスを確認できます。

## 再デプロイ（更新）

<Frame>
  <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/ja/06_17.png" />
</Frame>

> コードの変更やリソース設定の更新がある場合は、サービスページの設定タブ下部にある`デプロイ`ボタンをクリックして、変更を反映した新しいデプロイを実行できます。

<Tip>
  デプロイ自動化のためのGitHub Actions適用については、[GitHub Actionsページ](/ja/developers/githubactions)をご参照ください。
</Tip>

## ロールバック（復元）

<Frame>
  <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/ja/06_20.png" />
</Frame>

> **サービスページのデプロイ履歴タブ**から、以前のバージョンへロールバックできます。

<Tip>
  ロールバックする前に、対象バージョンのコミットメッセージを確認してください。
</Tip>

## トラブルシューティング

<AccordionGroup>
  <Accordion title="サブディレクトリが適用されない (Error: Project files not found)">
    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/ja/06_10.png" />
    </Frame>

    > デプロイ時ルートディレクトリからビルドが行われます。リポジトリのルートディレクトリではなく、サブディレクトリに実行するソースがある場合は、別途サブディレクトリを指定する必要があります。
  </Accordion>

  <Accordion title="バージョンの不一致">
    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/ja/06_11.png" />
    </Frame>

    > プロジェクト設定ファイル（build.gradle、requirements.txt、package.jsonなど）に記載されているバージョンと、デプロイ設定時に選択したバージョンが一致しない場合、ビルドまたはランタイムエラーが発生する可能性があります。
    > プロジェクトの言語/プラットフォームのバージョンに合わせて、[デプロイ設定のバージョンを適切に設定してから再デプロイしてください。](/ja/developers/deploy#%E5%86%8D%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4%EF%BC%88%E6%9B%B4%E6%96%B0%EF%BC%89)
  </Accordion>

  <Accordion title="ポート番号の問題">
    * 特定のポートでサービスを起動するプロジェクトでは、デプロイ設定のポート番号が未入力または誤って設定されている場合、正常に実行されない可能性があります。**なお、特定のポートにバインドする必要がないプロジェクトの場合は、ポート番号の欄は空白のままにしてください。**
  </Accordion>

  <Accordion title="selenium、puppeteer などのChrome ライブラリの使用">
    * エールが提供する各テンプレートには、デフォルトで異なるモジュールやライブラリが含まれています。<Icon icon="windows" size={15} color="9fa3a5" /> Windowsや<Icon icon="chrome" size={15} color="9fa3a5" /> Chromeライブラリなど、デフォルトに含まれないものを使用する場合は、<Icon icon="docker" size={15} color="9fa3a5" />[Dockerfile](/ja/developers/dockerfile)を作成してデプロイしてください。

    <Tip>
      該当ライブラリをサポートするテンプレートを追加するプラグインをインストールするか、プラグインを開発して直接追加することができます。
    </Tip>
  </Accordion>

  <Accordion title="CORS問題">
    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/ja/reverse02.png" />
    </Frame>

    > CORSの問題は各フレームワークによって解決方法が異なり、各フレームワークが提供するライブラリやモジュールを使用して対応できます。Next.jsのようなリバースプロキシを標準搭載しているフレームワークでは、内蔵のRewrites機能で対応可能です。ReactやVueなどのフレームワークの場合は、エールの[Rewrites設定でリバースプロキシを構成して解決](/ja/developers/reverseproxy)できます。
  </Accordion>

  <Accordion title="エラーの実行ログが表示されない場合">
    >

    * サービスカードの［play］ボタンで再起動後、実行ログを確認してください。ログが表示されない場合は、サービスページのイベントタブで発生したイベントを確認し、問題を解決してください。
  </Accordion>

  <Accordion title="リソース不足（out of memory）">
    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/ja/06_23.png" />
    </Frame>

    * JVMベースのアプリケーションをデプロイする場合、JVMに割り当てられたメモリが使用可能なリソースを超えると、OOM（Out of Memory）エラーが発生する可能性があります。Node.jsもまた、ヒープメモリ不足によって同様の問題が発生することがあります。言語またはフレームワークで適切にメモリを割り当てるか、[リソースを追加で割り当ててデプロイ](/ja/developers/resource#%E3%83%AA%E3%82%BD%E3%83%BC%E3%82%B9%E3%81%AE%E5%A4%89%E6%9B%B4)する必要があります。
  </Accordion>

  <Accordion title="タイムゾーン">
    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/ja/06_21.png" />
    </Frame>

    * 一般的なフレームワークでは、環境変数 TZ を使用してタイムゾーンを設定できます。設定可能な国・地域の一覧は[こちらのリスト](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)をご確認ください。フレームワークによっては設定方法が異なる場合があるため、その場合は各フレームワークの公式ドキュメントをご参照ください。
  </Accordion>
</AccordionGroup>

## 参考

* [GitHub Actions](/ja/developers/githubactions)
* [Dockerfile](/ja/developers/dockerfile)
* [リソースの追加](/ja/operations/spaces#%E3%83%97%E3%83%AD%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%A7%E4%BB%98%E4%B8%8E)
