Skip to main content

はじめに

Square Cloud で Ruby on Rails アプリケーション を開発してホストするには、構成と前提条件の体系的な手順に従うことが不可欠です。この技術ガイドでは、初期セットアップから本番環境へのデプロイまで、プロセス全体を解説します。

前提条件

  • Square Cloud アカウント: 登録ページからメールアドレスを使って登録します。
  • 有効なプラン: アプリケーションに専用リソースと最適化されたパフォーマンスを提供します。利用可能なプランを確認し、ニーズに最も適したものを選択してください。
このガイドは Ruby ランタイムで動作します。

プロジェクトの作成

手元のマシンに Ruby と Bundler が必要です。Ruby がまだない場合は、Ruby 公式サイトからダウンロードしてください。Rails をインストールしてプロジェクトを作成します。
新しい Rails プロジェクトは storage/ フォルダに保存される SQLite を使うため、外部のデータベースなしで動作します。開発サーバーを起動します。
開発環境では、Rails は http://localhost:3000 でリッスンします。手元のマシンではデフォルトのポートのままで問題ありません。ローカルでポート 80 を使う必要はありません。

本番用にビルドする

Square Cloud はアプリの起動時に準備を行います。bundle install を実行して Gemfile の gem をインストールし、続いて START コマンドがアセットをプリコンパイルしてデータベースを準備します。Ruby ランタイムは RACK_ENV=production を設定するため、Rails は本番モードで動作します。

ポートとホスト

変更する必要はありません。rails server は Square Cloud が 80 に設定する環境変数 PORT を読み込み、本番環境ではすべてのネットワークインターフェースでリッスンします。

環境変数

次の環境変数を、ダッシュボードまたは squarecloud app env set で設定します。

Square Cloud の設定

プロジェクトのルートに squarecloud.app ファイルを作成します。
squarecloud.app
このコマンドは起動のたびに次の処理を行います。
  • 前回の実行で残ったサーバーの PID ファイルを削除します。残っていると Rails が起動しません。
  • rails assets:precompile が CSS と JavaScript を public/assets にビルドします。
  • rails db:prepare がデータベースを作成するか、未適用のマイグレーションを適用します。
  • rails server が Puma を起動します。
RUNTIME=ruby は MAIN ファイルなしで Ruby ランタイムを選択します。Windows で作成した ZIP では bin/rails の実行権限が失われることがあるため、コマンドでは bin/rails ではなく bundle exec rails を使っています。

ZIP に含めるもの

  • プロジェクト全体: app/、bin/、config/、db/、lib/、public/、Gemfile、Gemfile.lock、config.ru。
  • squarecloud.app。
config/master.key (キーは RAILS_MASTER_KEY に設定します)、log/、tmp/、storage/ 内のローカルデータベースは含めないでください。

デプロイと動作確認

ダッシュボード経由

1

アップロードページにアクセス

アップロードページにアクセスし、プロジェクトの zip ファイルをアップロードします。
2

環境を設定

zip をアップロードした後、プロジェクトの名前、メインファイルまたはランタイム環境、その他の設定を構成する必要があります。
ウェブプロジェクトをアップロードする場合は、必ず「Web Publication」を選択し、プロジェクトにサブドメインを設定してください。
3

プロジェクトをデプロイ

最後に「Deploy」ボタンをクリックして、プロジェクトを Square Cloud にホストします。
デプロイ後、ダッシュボードからプロジェクトのステータスとログを監視できます。
Square Cloud へのアプリケーションのアップロード
4

アプリが稼働していることを確認

最初のデプロイは、通常 1 分もかからずに完了します。ダッシュボードでアプリケーションのステータスが running になるのを待ち、起動時のエラーがないかログを確認してください。
ウェブサイトや 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 は squarecloud.ignore に記載されたものを除いて現在のフォルダを zip にし、アップロードします:
自分で作成した 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 だけでリッスンしているサーバーには、リクエストが届きません。

Missing secret_key_base or ActiveSupport::MessageEncryptor::InvalidMessage

RAILS_MASTER_KEY がないか、config/credentials.yml.enc と一致していません。その認証情報を作成した config/master.key の内容をコピーして設定し、アプリケーションを再起動してください。

次のステップ

環境変数

シークレットや設定をコードから切り離し、実行時に読み込みます。

カスタムドメイン

Standard プラン以上で、独自ドメインからアプリを配信します。

トラブルシューティング

起動しないアプリや応答しないサイトを修正します。
Rails の詳細は公式の Rails ガイドを参照してください。

お問い合わせ

技術的な問題が解決しない場合は、専門のサポートチームがお手伝いします。お問い合わせいただければ、どのような問題でも喜んで解決をサポートいたします。サポートの質の高さも、開発者が Google と Trustpilot で Square Cloud に402 件のレビューで 4.9/5という評価をつけている理由の 1 つです。