AIイノベーションズ
Railway/Guides

Sailsアプリのデプロイ

このステップバイステップガイドで、RailwayにSailsアプリをデプロイする方法を学びます。クイックセットアップ、データベース統合、Boring JavaScriptスタック、ワンクリックデプロイ、その他のデプロイ戦略について説明します。

著者: AIイノベーションズ 阿部隼也X / Twitter

Railwayはこちら

Sailsアプリのデプロイ

SailsはNode.jsのMVCフレームワークです。Ruby on RailsのようなフレームワークのおなじみのMVCパターンをエミュレートするように設計されていますが、最新のアプリの要件をサポートしています:スケーラブルなサービス指向アーキテクチャを備えたデータ駆動型API。

Sailsを使用すると、カスタムのエンタープライズグレードのNode.jsアプリを簡単に構築できます。

Sailsアプリの作成

注: SailsアプリがローカルまたはGitHubに既にある場合は、この手順をスキップして、SailsアプリをRailwayにデプロイに直接進むことができます。

新しいSailsアプリを作成するには、お使いのマシンにNodeがインストールされていることを確認してください。

ターミナルで次のコマンドを実行してSailsをインストールします。

npm install sails -g

次に、以下のコマンドを実行して新しいSailsアプリを作成します

sails new workapp

新しいSailsアプリのテンプレートとして Web App を選択します。依存関係がインストールされたら、workapp ディレクトリに cd して sails lift を実行してアプリを起動します。

ブラウザを開き、http://localhost:1337 にアクセスしてアプリを表示します。

それでは、Railwayにデプロイしましょう!

SailsアプリをRailwayにデプロイする

Railwayは、セットアップと好みに応じて、Sailsアプリをデプロイする複数の方法を提供します。次のいずれかの方法を選択してください。

  1. テンプレートからのワンクリックデプロイ
  2. CLIを使用
  3. GitHubリポジトリから

テンプレートからのワンクリックデプロイ

最速で始めたい場合は、ワンクリックデプロイオプションが最適です。SailsアプリとPostgresデータベース、Redisをセットアップします。

下のボタンをクリックして開始します。

Railwayにデプロイ

デプロイ後はテンプレートから Eject して、GitHub アカウントにリポジトリのコピーを作成することを強くおすすめします。これにより、ソースコードとプロジェクトを完全に制御できます。

CLIからデプロイ

Railway CLIを使用してSailsアプリをデプロイするには、次の手順に従ってください。

  1. Railway CLIのインストール
    • CLIをインストールし、Railwayアカウントで認証します。
  2. Railwayプロジェクトの初期化
    • Sailsアプリディレクトリで以下のコマンドを実行します。
      railway init
    • プロンプトに従ってプロジェクトに名前を付けます。
    • プロジェクトが作成されたら、提供されたリンクをクリックしてブラウザで表示します。
  3. Sails構成の変更
    • config/env/production.js ファイルを開き、いくつかの変更を加えます。
      • アプリはプロキシの背後にあるため、http.trustProxytrue に設定します。
      • session.cookie.securetrue に設定します
      • onlyAllowOrigins 配列の直後に、socket オブジェクトにこの関数を追加します。
        beforeConnect: function(handshake, proceed) {
            // ソケットの接続を許可するには `true` を返します。
            // (または、試行を拒否するには `false` を返します。)
            return proceed(undefined, false);
        },
    注: 現時点ではソケットは必要ないため、これを追加しただけです。必要な場合は、この手順をスキップして、onlyAllowOrigins 配列にパブリックアプリのURLを追加してください。この関数は、ソケット接続の試行を単に拒否します。
  4. アプリケーションのデプロイ
    • 以下のコマンドを使用してアプリをデプロイします。
      railway up
    • このコマンドは、アプリのファイルをスキャン、圧縮し、Railwayにアップロードします。ターミナルにはリアルタイムのデプロイログが表示されます。
  • 注: デフォルトの sails-disk アダプターと connect.session() MemoryStoreは本番データベースとして使用するようには設計されていないというエラーが表示されても心配しないでください。次の手順で修正します。
  1. PostgreSQLとRedisデータベースサービスの追加
    • railway add を実行します。
    • スペースを押して PostgreSQL を選択します
    • スペースを再度押して Redis を選択し、Enter を押して両方のデータベースサービスをプロジェクトに追加します。
  2. Sailsデータベース構成の変更
    • config/env/production.js ファイルを開き、アプリが接続するデータベースとセッションの保存場所を知らせるためにいくつかの変更を加えます。
      • datastores: セクションで、
        • adapter: 'sails-postgresql' を追加します。
        • url: process.env.DATABASE_URL を追加します。
      • session: セクションで、
        • adapter: '@sailshq/connect-redis' を追加します。
        • url: process.env.REDIS_URL を追加します。
    • npm install sails-postgresql --save を実行して、新しいアダプターをローカルのアプリに追加します。
  3. Railwayでの環境変数の設定
    • アプリサービスの変数セクションに移動し、以下を追加します。
      • DATABASE_URL:値を ${{Postgres.DATABASE_URL}} に設定します(これは新しいPostgresデータベースのURLを参照します)。サービス変数の参照について詳しくはこちら
      • REDIS_URL:値を ${{Redis.REDIS_URL}} に設定します(これは新しいRedisデータベースのURLを参照します)
    • Raw Editorを使用して、その他必要な環境変数を一度に追加します。
  4. サービスの再デプロイ
    • Railwayダッシュボードでデプロイをクリックして、変更を適用します。
  5. ローカルの変更のアップロード
    • railway up を実行して、ローカルで行ったすべての変更をアップロードし、サービスを再デプロイします。
  6. デプロイの確認
    • デプロイが完了したら、View logs に移動して、サーバーが正常に実行されていることを確認します。
  7. 公開URLの設定
    • 新しいサービスの「設定」タブのNetworkingセクションに移動します。
    • 「Generate Domain」をクリックして、アプリの公開URLを作成します。

GitHubリポジトリからデプロイ

SailsアプリをRailwayにデプロイするには、まずアプリをGitHubリポジトリにプッシュします。それが設定されたら、以下の手順に従ってデプロイプロセスを完了します。

  1. Railwayで新しいプロジェクトを作成
    • Railwayにアクセスして、新しいプロジェクトを作成します。
  2. GitHubからデプロイ
    • Deploy from GitHub repo を選択し、リポジトリを選択します。
      • RailwayアカウントがまだGitHubにリンクされていない場合は、リンクするように求められます。
  3. 環境変数の追加
    • Add Variables をクリックし、アプリに必要なすべての環境変数を設定します。
  4. アプリのデプロイ
    • Deploy をクリックして、デプロイプロセスを開始します。
    • デプロイされると、アプリ用にRailwayサービスが作成されますが、デフォルトでは公開されません。
  5. データベースサービスの追加
    • Railwayプロジェクトキャンバスを右クリックするか、Create ボタンをクリックします。
    • Database を選択します。
    • 利用可能なデータベースから Add PostgreSQL を選択します。
      • これにより、プロジェクト用に新しいPostgresデータベースサービスが作成され、デプロイされます。
  6. Redisデータベースサービスの追加
    • Railwayプロジェクトキャンバスを右クリックするか、Create ボタンをクリックします。
    • Database を選択します。
    • 利用可能なデータベースから Add Redis を選択します。
      • これにより、プロジェクト用に新しいRedisデータベースサービスが作成され、デプロイされます。
  7. 環境変数の設定
    • アプリサービスの変数セクションに移動し、以下を追加します。
      • DATABASE_URL:値を ${{Postgres.DATABASE_URL}} に設定します(これは新しいPostgresデータベースのURLを参照します)。サービス変数の参照について詳しくはこちら
      • REDIS_URL:値を ${{Redis.REDIS_URL}} に設定します(これは新しいRedisデータベースのURLを参照します)
    • Raw Editorを使用して、その他必要な環境変数を一度に追加します。
  8. Sails構成の変更
    • CLIガイドで説明されている手順3と5に従います。
  9. サービスの再デプロイ
    • Railwayダッシュボードでデプロイをクリックして、変更を適用します。
  10. デプロイの確認
    • デプロイが完了したら、View logs に移動して、サーバーが正常に実行されていることを確認します。
  11. 公開URLの設定
    • 新しいサービスの「設定」タブのNetworkingセクションに移動します。
    • 「Generate Domain」をクリックして、アプリの公開URLを作成します。

このガイドでは、Railwayの主なデプロイオプションについて説明しました。セットアップに適したアプローチを選択し、Sailsアプリを簡単にデプロイし始めてください!

セットアップは次のようになります。

これらの手順に従うことで、完全に機能するSailsアプリが完成します。問題が発生した場合や調整が必要な場合は、ログを確認し、環境変数の構成を再確認してください。

Boring JavaScriptスタックSailsスターター

Boring JavaScriptスタックのファンなら、ワンクリックデプロイオプションがあります。

下のボタンをクリックするだけで始められます。

Railwayにデプロイ

注: デプロイ後はテンプレートから Eject して独自の GitHub リポジトリを作成することをおすすめします。これにより、プロジェクトとソースコードを完全に制御できます。

次のステップ

Railwayでのエクスペリエンスを最大限に活用するために、これらのリソースを調べてください。

Railwayはこちら

PR