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

# ボットホスティング

> Discord、WhatsApp、Telegram のボットをラテンアメリカ最大のプラットフォームでホスティング。エンタープライズ級のパフォーマンス、高度なセキュリティ、そしてプロジェクトのための開発ツール。

<Frame>
  <img src="https://squarecloud.app/banners/ja/bots.png" alt="Square Cloud Bots サービスの概要" style={{ borderRadius: "0.2rem" }} />
</Frame>

## なぜ Square Cloud を選ぶのか？

私たちは**ラテンアメリカ最大のボットホスティングプラットフォーム**であり、**ブラジルの大規模 Discord サーバー上位 100 のうち 80** に信頼されています。ボットの生死は、その稼働時間と Discord、WhatsApp、Telegram のゲートウェイへのレイテンシーで決まります。だからこそ、ハードウェアからネットワークエッジに至るまで、スタックのあらゆる層を、あなたのプロセスを 24 時間 365 日オンラインかつ応答性の高い状態に保つよう最適化しています。

<CardGroup cols={2}>
  <Card title="目的に特化したパフォーマンス" icon="bolt">
    すべてのボットは、**10Gbps** のアップリンクを備えた**エンタープライズ Samsung NVMe SSD** 上で、**カーネルによって強制される CPU および RAM** を割り当てられた隔離コンテナ内で稼働します。隣人のトラフィック急増が、あなたのレイテンシー問題になることはありません。
  </Card>

  <Card title="完全な開発者エコシステム" icon="code">
    CI/CD 向けの **CLI**、**JavaScript & Python SDK**、**VSCode 拡張機能**、そして **GitHub Actions/Webhooks**。ターミナル、エディタ、あるいは `git push` からデプロイできます。
  </Card>

  <Card title="Square Shield + Cloudflare" icon="shield-halved">
    **Cloudflare を前段に配置した**エッジと **Square Shield** が、あなたのボットをプラットフォーム API のレート制限 (Discord など) の範囲内に保ち、ボットをオフラインにする BAN やクールダウンを防ぎます。
  </Card>

  <Card title="即時 snapshot" icon="server">
    追加費用なしで含まれる**ワンクリックの復元ポイント**。壊れた deploy を数秒でロールバックでき、データ損失もダウンタイムもありません。
  </Card>
</CardGroup>

<Info>
  **スケールで実証済み:** 私たちの評判は、ラテンアメリカで最も繁忙なコミュニティを支えるボットを運用することで築かれました。それは、脆弱なインフラを静かに露呈させるような、持続的で高イベントレートの負荷です。あなたのボットも同じクラスターで稼働します。
</Info>

***

## サポートされている環境

幅広い互換性を提供しているため、お好みの技術で開発できます。

### プラットフォーム

<CardGroup cols={4}>
  <Card title="Discord" icon="discord" />

  <Card title="WhatsApp" icon="whatsapp" />

  <Card title="Telegram" icon="telegram" />

  <Card title="Twitter" icon="twitter" />

  <Card title="Instagram" icon="instagram" />

  <Card title="Facebook" icon="facebook" />

  <Card title="Slack" icon="slack" />

  <Card title="YouTube" icon="youtube" />
</CardGroup>

### 言語

<CardGroup cols={3}>
  <Card title="JavaScript" icon="node-js" href="../articles/getting-started-with-nodejs" />

  <Card title="Python" icon="python" href="../articles/getting-started-with-python" />

  <Card title="Java" icon="java" href="../articles/getting-started-with-java" />

  <Card title="Rust" icon="rust" href="../articles/getting-started-with-rust" />

  <Card title="Elixir" icon="droplet" href="../articles/getting-started-with-elixir" />

  <Card title="PHP" icon="php" href="../articles/getting-started-with-php" />

  <Card title="Go" icon="golang" href="../articles/getting-started-with-go" />

  <Card title="C#" icon="c" href="../articles/getting-started-with-csharp" />

  <Card title="Ruby" icon="gem" href="../articles/getting-started-with-ruby" />
</CardGroup>

<Info>
  これら以外にも、さまざまな言語やライブラリをサポートしています。当インフラは柔軟で、プロジェクトのニーズに適応します。
</Info>

***

## 主な機能

### 常時稼働ワークロードのために構築されたインフラ

各クラスターは、**10Gbps アップリンク**を備えた**エンタープライズ Samsung NVMe SSD** 上で稼働し、あなたのボットは専用の CPU および RAM 上限を持つ、隔離された非特権コンテナ内で動作します。「紙の上では速い」を本番環境でも速くするのは、この隔離です。あなたのプロセスが I/O や CPU をめぐって騒がしい隣人と争うことは決してないため、持続的なイベント負荷下でも応答時間は低く保たれます。

### Square Shield: レート制限の範囲内に留まる

Discord、WhatsApp、Telegram は、ゲートウェイや REST のレート制限を超えたボットを BAN します。**Square Shield** はあなたのボットとこれらの API の間に位置し、リクエストパターンを監視して許可された枠内に留まるようにします。これが、きれいにスケールするボットと、最悪のタイミングでクールダウンされてオフラインになるボットとの違いを生みます。

### 完全な可視性を持って運用する

<AccordionGroup>
  <Accordion title="ワンクリック snapshot">
    復元ポイントを使えば、不正な deploy を数秒でロールバックできます。データ損失もダウンタイムもありません。Pro および Enterprise プランでは、これに加えて自動の日次 snapshot も利用できます。
  </Accordion>

  <Accordion title="リアルタイムログ">
    アプリケーションの stdout/stderr をライブでストリーミングし、何かがおかしくなった瞬間に、再デプロイすることなく本番環境でデバッグできます。
  </Accordion>

  <Accordion title="ライブ分析">
    直感的なパネルから CPU、RAM、ネットワーク消費量をリアルタイムで追跡できるため、リソースを適切なサイズに調整し、ユーザーが気づく前にリグレッションを捉えられます。
  </Accordion>
</AccordionGroup>

### 開発ツール

ワークフローを最適化するために、完全なツールエコシステムを提供しています。

<Steps>
  <Step title="Square Cloud CLI">
    ターミナルから直接アプリケーションを管理できます。deploy、ログの確認など、多くの操作を素早く実用的に行えます。

    ```bash theme={null}
    npm install -g @squarecloud/cli
    squarecloud auth login
    ```
  </Step>

  <Step title="VSCode 拡張機能">
    ホスティング管理をお気に入りのコードエディタに統合し、開発とデプロイのプロセスを簡素化します。
  </Step>

  <Step title="GitHub Actions">
    ボットの継続的デプロイ (CI/CD) を自動化します。リポジトリへの `push` ごとに、アプリケーションが当プラットフォーム上で自動的に更新されます。
  </Step>
</Steps>

<Warning>
  **注意:** GitHub Actions によるデプロイを使用するには、リポジトリのシークレットに API `token` を設定する必要があります。手順については専用のドキュメントをご確認ください。
</Warning>

## ボットをホスティングするには？

<Steps>
  <Step title="設定ファイル" icon="file">
    **Square Cloud** でボットをホスティングする最初のステップは、詳細な設定ファイルを作成することです。このファイルは単なるテキスト文書ではなく、**Square Cloud** 上でのアプリケーションの設定を定義する包括的なガイドです。プラットフォーム上でのプロジェクトの設計図として機能します。

    プランを取得したら、このファイルを作成し、各設定を詳細に記述して正しく入力する必要があります。このファイルの作成方法の詳細は、手順付きで[こちら](https://docs.squarecloud.app/ja/getting-started/config-file)で確認できます。
  </Step>

  <Step title="ZIP ファイルの作成" icon="file-zip">
    設定ファイルが準備できたら、次のステップはアップロード用にアプリケーションを準備することです。これには、アプリケーションファイルと **Square Cloud** の設定ファイルを .zip ファイルにまとめることが含まれます。

    ただし、すべてのファイルをこの .zip に含める必要はありません。`node_modules`、`package-lock.json`、`pyproject.toml`、`poetry.lock` などのファイルは、サーバー側で自動的に生成できるため不要です。
  </Step>

  <Step title="依存関係ファイル" icon="box">
    もう 1 つの重要な点は、依存関係ファイルを .zip に含めることです。このファイルは、プロジェクトにどの依存関係をインストールすべきかを **Square Cloud** プラットフォームに伝えます。Node.js プロジェクトの場合、このファイルは `package.json` であり、Python プロジェクトの場合は `requirements.txt` です。

    これらのファイルは、アプリケーションが正しく機能するために必要なライブラリとパッケージを列挙します。インストールエラーを避けるため、これらのファイルを最新に保つことが重要です。加えて、Node.js の `node-fetch` や Python の `random` のようなネイティブ依存関係は、ネイティブライブラリであるため、これらのファイルに含めるべきではない点に注意してください。
  </Step>

  <Step title="ボットのアップロード" icon="arrow-up">
    すべてのステップを踏み、**Square Cloud** 向けにプロジェクトを設定したら、いよいよボットをアップロードします。**Square Cloud** のウェブサイトのアップロードページにアクセスし、[こちら](https://squarecloud.app/ja/dashboard/new)から .zip ファイルを送信します。

    プロセスはシンプルです。.zip ファイルを選択してアップロードボタンをクリックするだけです。**Square Cloud** プラットフォームがデプロイプロセスを開始し、必要な依存関係をインストールし、設定ファイルに基づいて環境を構成します。

    <Frame>
      <img src="https://cdn.squarecloud.app/docs/articles/dashboard/uploading.gif" alt="Square Cloud へのアプリケーションのアップロード" style={{ borderRadius: "0.2rem" }} />
    </Frame>
  </Step>
</Steps>
