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

# デプロイ

## Githubリポジトリとの連携によるデプロイ

Morphプラットフォームへのアプリのデプロイは、Githubリポジトリとの連携によって自動で行われます。
デプロイされたアプリには、Morphアカウントによるユーザー認証がかかります。

<Steps>
  <Step title="Githubリポジトリを作成する">
    Githubリポジトリを作成します。

    デプロイ時の設定は、[`morph_project.yml`](/reference/ja/framework/morph-project)に設定をしてください。
  </Step>

  <Step title="morph-data.ioにログイン、Githubアカウントと連携する">
    [https://app.morph-data.io/](https://app.morph-data.io/) にログインして、Projectタブから新規プロジェクトの作成画面に移動します。
    画面内の指示に従って、Githubアカウントと連携後、Githubリポジトリを選択します。
  </Step>

  <Step title="コードをプッシュする">
    Githubリポジトリにコードをプッシュすると、自動でビルドが開始します。ビルドが完了すると、アプリのURLが有効になります。
    デプロイされたアプリには、Morphアカウントによるユーザー認証が自動でかかっています。誰かに共有するには、まずユーザーを招待してからURLを共有してください。
  </Step>
</Steps>

<Frame>
  <iframe height={500} width="100%" src="https://www.youtube.com/embed/IEe4SqKnx54?si=6FS0td-gOinBh3hn" />
</Frame>

## DockerイメージをCLIでデプロイする

<Warning>
  この手順は、非推奨です。Githubリポジトリとの連携によるデプロイができない場合に使用してください。
</Warning>

<Note>
  この手順には`morph`コマンドが必要となります。
  まだインストールされていない場合は、`pip install morph-data`コマンドでインストールしてください。
</Note>

<Note>
  MorphアプリのビルドにはDockerを使用します。Dockerがインストールされていない場合は、[Docker公式サイト](https://docs.docker.com/get-docker/)からインストールしてください。
</Note>

<Steps>
  <Step title="プロジェクトをセットアップする">
    1. プロジェクトのルート階層に移動します。
       ```bash Shell theme={"dark"}
       cd /path/to/your-project
       ```
    2. `morph_project.yml`を編集して`project_id`を設定します。
       ```yaml YAML theme={"dark"}
       # Profile Section in `~/.morph/credentials`
       profile: default

       # Project ID
       project_id: [YOUR_PROJECT_ID]

       # Python Package Manager
       package_manager: pip

       -- 省略 --
       ```
       * `profile`は`~/.morph/credentials`のセクションに紐付きます。通常は`default`で問題ありませんが、複数の認証情報をお持ちの場合は必要に応じて変更してください。
       * `package_manager`はプロジェクト作成時のパッケージマネージャーが設定されています。通常変更する必要はありませんが、`morph deploy`コマンドではこの設定に基づいてビルドを行います。
         * `package_manager=pip`が指定されている場合は、プロジェクト直下の`requirements.txt`を編集してデプロイ環境でインストールするパッケージを指定してください。それ以外の場合は`requirements.txt`がビルド時に自動で生成されます。
  </Step>

  <Step title="morph CLIを設定する">
    下記のコマンドを実行してAPIキーを`~/.morph/credentials`に設定します。

    ```bash Shell theme={"dark"}
    morph config
    ```
  </Step>

  <Step title="クラウド環境で使用するPythonのパッケージを指定する">
    <AccordionGroup>
      <Accordion title="poetry">
        pyproject.tomlに設定されているパッケージがデプロイ環境でインストールされます。
        デプロイ前に必ず`poetry update`コマンドを実行して、poetry.lockファイルを最新の状態に更新してください。
      </Accordion>

      <Accordion title="uv">
        pyproject.tomlに設定されているパッケージがデプロイ環境でインストールされます。
        デプロイ前に必ず`uv sync`コマンドを実行して、uv.lockファイルを最新の状態に更新してください。
      </Accordion>

      <Accordion title="pip">
        requirements.txtに設定されているパッケージがデプロイ環境でインストールされます。

        以下のコマンドを実行してrequirements.txtを生成してください。

        ```bash Shell theme={"dark"}
        pip freeze > requirements.txt
        ```
      </Accordion>
    </AccordionGroup>
  </Step>

  <Step title="クラウドにデプロイする">
    コマンドを実行してクラウドにデプロイします。

    ```bash Shell theme={"dark"}
    morph deploy
    ```

    * Dockerキャッシュを無効化する場合:

    ```bash Shell theme={"dark"}
    morph deploy --no-cache
    ```

    デプロイ後、[https://app.morph-data.io/](https://app.morph-data.io/) にログインして結果を確認してください。
  </Step>
</Steps>
