はじめに
Square Cloud で Phoenix アプリケーション を開発してホストするには、構成と前提条件の体系的な手順に従うことが不可欠です。この技術ガイドでは、初期セットアップから本番環境へのデプロイまで、プロセス全体を解説します。前提条件
- Square Cloud アカウント: 登録ページからメールアドレスを使って登録します。
- 有効なプラン: アプリケーションに専用リソースと最適化されたパフォーマンスを提供します。利用可能なプランを確認し、ニーズに最も適したものを選択してください。
プロジェクトの作成
手元のマシンに Erlang/OTP と Elixir が必要です。まだの場合は、Elixir 公式のインストールガイドに従ってください。Phoenix のプロジェクトジェネレーターをインストールし、プロジェクトを作成します。--no-ecto はデータベースなしのプロジェクトを作成し、デプロイが最もシンプルになります。Ecto が必要な場合は外し、データベースのアドレスについては環境変数を参照してください。開発サーバーを起動します。
http://localhost:4000 でリッスンします。
本番用にビルドする
Square Cloud はアプリの起動時にビルドを行います。START コマンドを実行する前に、mix deps.get で依存関係を取得します。続いて下記の START コマンドが、本番モード (MIX_ENV=prod) でアプリをコンパイルし、mix assets.deploy でアセットをビルドしてダイジェストを付け、サーバーを起動します。手元のマシンで何かをビルドする必要はなく、ZIP にはプロジェクトのソースを入れます。
初回起動時は依存関係をコンパイルし、アセットツール (esbuild と Tailwind) をダウンロードするため、数分かかります。2 回目以降の起動では、コンパイル済みのファイルが再利用されます。
ポートとホスト
変更する必要はありません。本番環境では、生成されたconfig/runtime.exs が Square Cloud が 80 に設定する環境変数 PORT を読み込み、すべてのネットワークインターフェースでリッスンします。
環境変数
次の環境変数を、ダッシュボードまたはsquarecloud app env set で設定します。
Square Cloud の設定
プロジェクトのルートにsquarecloud.app ファイルを作成します。
squarecloud.app
MAIN=mix.exs はプロジェクトが Elixir で動くことを Square Cloud に伝え、START はデフォルトの mix run --no-halt を置き換えます。mix phx.server がウェブサーバーを起動するため、PHX_SERVER は不要です。Ecto を使うプロジェクトでは、mix phx.server の前に MIX_ENV=prod mix ecto.migrate && を追加すると、起動のたびにマイグレーションを適用できます。
ZIP に含めるもの
mix.exsとmix.lock。config/、lib/、assets/、priv/などのソースフォルダ。squarecloud.app。
_build/ と、deps/ は含めないでください。Square Cloud が依存関係を取得し直し、Linux 上ですべてをコンパイルします。
リリースを使いたい場合: Windows や macOS でビルドしたリリースは、Linux で動作する Square Cloud では実行できません。WSL などを使って Linux 上でビルドしてください。起動スクリプトは
_build/prod/rel/my_app/bin/my_app なので、コマンドは START=PHX_SERVER=true _build/prod/rel/my_app/bin/my_app start になります。PHX_SERVER=true を指定すると、リリースがウェブサーバーを起動します。Square Cloud は START の前に mix deps.get を実行するため、mix.exs と mix.lock は ZIP に残してください。デプロイと動作確認
ダッシュボード経由
1
アップロードページにアクセス
アップロードページにアクセスし、プロジェクトの zip ファイルをアップロードします。
2
環境を設定
zip をアップロードした後、プロジェクトの名前、メインファイルまたはランタイム環境、その他の設定を構成する必要があります。
ウェブプロジェクトをアップロードする場合は、必ず「Web Publication」を選択し、プロジェクトにサブドメインを設定してください。
ウェブプロジェクトをアップロードする場合は、必ず「Web Publication」を選択し、プロジェクトにサブドメインを設定してください。
3
プロジェクトをデプロイ
最後に「Deploy」ボタンをクリックして、プロジェクトを Square Cloud にホストします。
デプロイ後、ダッシュボードからプロジェクトのステータスとログを監視できます。
デプロイ後、ダッシュボードからプロジェクトのステータスとログを監視できます。

4
アプリが稼働していることを確認
最初のデプロイは、通常 1 分もかからずに完了します。ダッシュボードでアプリケーションのステータスが running になるのを待ち、起動時のエラーがないかログを確認してください。
ウェブサイトや API をデプロイした場合は、ブラウザで
ウェブサイトや API をデプロイした場合は、ブラウザで
https://<your-subdomain>.squareweb.app を開き、アプリケーションが応答することを確認してください。ボットをデプロイした場合は、コマンドを送信してオンラインになっていることを確認してください。
CLI 経由
この方法を使用するには、プロジェクトのルートにsquarecloud.app という名前の設定ファイルが必要です。このファイルは、アプリケーションの実行方法を Square Cloud に伝えます。
設定ファイルガイド
アプリケーションの環境を定義する
squarecloud.app 設定ファイルの作成方法を学びます。1
CLI をインストール
Square Cloud CLI をインストールします。すでにお持ちの場合は、同じコマンドを実行すると更新されます:
2
ログイン
次のコマンドを実行します。ブラウザが開くので、そこでログインを承認すれば CLI の準備は完了です。API キーをコピーする必要はありません。スクリプトや CI については、CLI の認証を参照してください。
3
プロジェクトをアップロード
プロジェクトのフォルダで次のコマンドを実行します。CLI は 自分で作成した zip をアップロードするには、
squarecloud.ignore に記載されたものを除いて現在のフォルダを zip にし、アップロードします:--file で指定します:4
アプリが稼働していることを確認
最初のデプロイは、通常 1 分もかからずに完了します。ターミナルから直接、アプリケーションのステータスとログを確認してください。ウェブサイトや API をデプロイした場合は、ブラウザで
https://<your-subdomain>.squareweb.app を開き、アプリケーションが応答することを確認してください。ボットをデプロイした場合は、コマンドを送信してオンラインになっていることを確認してください。
よくあるエラー
カスタムドメイン
デフォルトの URL
mysite.squareweb.app の代わりにカスタムドメイン(例: mysite.com)を使用するには、Standard プラン以上が必要です。デフォルトの URL は設定ファイルの SUBDOMAIN フィールドから決まります。独自ドメインを接続するには、独自ドメインの設定方法に従ってください。最小 RAM 要件
ウェブサイトと API は最小 512MB RAMです。これは静的ランタイムで静的ビルドを配信するには十分な量です。サーバー上でページをレンダリングするアプリ(Next.js、Nuxt、Angular SSR など)には、最低 1GB RAMを推奨します。より大規模なアプリケーションでは、メモリ不足でアプリケーションがクラッシュするのを防ぐため、より多くの RAM を割り当ててください。
このサイトが見つかりませんでした。
サブドメイン/ドメインが SUBDOMAIN フィールドまたはカスタムドメイン設定で構成されている内容と一致しているか確認してください。サイトをアップロードしたばかりの場合は、Square が初回アクセスを有効化するまで最大 60 秒お待ちください。
サイトの応答に時間がかかりすぎました…
サーバーはポート 80 とホスト 0.0.0.0 でリッスンする必要があります。Square Cloud はアプリケーションに環境変数 PORT(
80)と HOST(0.0.0.0)を設定します。別の値をハードコーディングせず、コードでこれらを読み込んでください。localhost や 127.0.0.1 だけでリッスンしているサーバーには、リクエストが届きません。environment variable SECRET_KEY_BASE is missing
環境変数のとおりにSECRET_KEY_BASE を設定し、アプリケーションを再起動してください。
LiveView が再接続を繰り返す
PHX_HOST がブラウザのアドレスと一致していません。サブドメインまたはカスタムドメインを設定し、アプリケーションを再起動してください。
次のステップ
環境変数
シークレットや設定をコードから切り離し、実行時に読み込みます。
カスタムドメイン
Standard プラン以上で、独自ドメインからアプリを配信します。
トラブルシューティング
起動しないアプリや応答しないサイトを修正します。

