Sailsアプリのデプロイ
このステップバイステップガイドで、RailwayにSailsアプリをデプロイする方法を学びます。クイックセットアップ、データベース統合、Boring JavaScriptスタック、ワンクリックデプロイ、その他のデプロイ戦略について説明します。
著者: AIイノベーションズ 阿部隼也(X / Twitter)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アプリをデプロイする複数の方法を提供します。次のいずれかの方法を選択してください。
テンプレートからのワンクリックデプロイ
最速で始めたい場合は、ワンクリックデプロイオプションが最適です。SailsアプリとPostgresデータベース、Redisをセットアップします。
下のボタンをクリックして開始します。
デプロイ後はテンプレートから Eject して、GitHub アカウントにリポジトリのコピーを作成することを強くおすすめします。これにより、ソースコードとプロジェクトを完全に制御できます。
CLIからデプロイ
Railway CLIを使用してSailsアプリをデプロイするには、次の手順に従ってください。
- Railway CLIのインストール:
- CLIをインストールし、Railwayアカウントで認証します。
- Railwayプロジェクトの初期化:
- Sailsアプリディレクトリで以下のコマンドを実行します。
railway init
- プロンプトに従ってプロジェクトに名前を付けます。
- プロジェクトが作成されたら、提供されたリンクをクリックしてブラウザで表示します。
- Sailsアプリディレクトリで以下のコマンドを実行します。
- Sails構成の変更:
config/env/production.js
ファイルを開き、いくつかの変更を加えます。- アプリはプロキシの背後にあるため、
http.trustProxy
をtrue
に設定します。 session.cookie.secure
をtrue
に設定しますonlyAllowOrigins
配列の直後に、socket
オブジェクトにこの関数を追加します。beforeConnect: function(handshake, proceed) { // ソケットの接続を許可するには `true` を返します。 // (または、試行を拒否するには `false` を返します。) return proceed(undefined, false); },
- アプリはプロキシの背後にあるため、
onlyAllowOrigins
配列にパブリックアプリのURLを追加してください。この関数は、ソケット接続の試行を単に拒否します。 - アプリケーションのデプロイ:
- 以下のコマンドを使用してアプリをデプロイします。
railway up
- このコマンドは、アプリのファイルをスキャン、圧縮し、Railwayにアップロードします。ターミナルにはリアルタイムのデプロイログが表示されます。
- 以下のコマンドを使用してアプリをデプロイします。
- 注: デフォルトの
sails-disk
アダプターとconnect.session()
MemoryStoreは本番データベースとして使用するようには設計されていないというエラーが表示されても心配しないでください。次の手順で修正します。
- PostgreSQLとRedisデータベースサービスの追加:
railway add
を実行します。- スペースを押して
PostgreSQL
を選択します - スペースを再度押して
Redis
を選択し、Enter を押して両方のデータベースサービスをプロジェクトに追加します。
- 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
を実行して、新しいアダプターをローカルのアプリに追加します。
- Railwayでの環境変数の設定:
- アプリサービスの変数セクションに移動し、以下を追加します。
DATABASE_URL
:値を${{Postgres.DATABASE_URL}}
に設定します(これは新しいPostgresデータベースのURLを参照します)。サービス変数の参照について詳しくはこちら。REDIS_URL
:値を${{Redis.REDIS_URL}}
に設定します(これは新しいRedisデータベースのURLを参照します)
- Raw Editorを使用して、その他必要な環境変数を一度に追加します。
- アプリサービスの変数セクションに移動し、以下を追加します。
- サービスの再デプロイ:
- Railwayダッシュボードでデプロイをクリックして、変更を適用します。
- ローカルの変更のアップロード:
railway up
を実行して、ローカルで行ったすべての変更をアップロードし、サービスを再デプロイします。
- デプロイの確認:
- デプロイが完了したら、View logs に移動して、サーバーが正常に実行されていることを確認します。
- 公開URLの設定:
- 新しいサービスの「設定」タブのNetworkingセクションに移動します。
- 「Generate Domain」をクリックして、アプリの公開URLを作成します。
GitHubリポジトリからデプロイ
SailsアプリをRailwayにデプロイするには、まずアプリをGitHubリポジトリにプッシュします。それが設定されたら、以下の手順に従ってデプロイプロセスを完了します。
- Railwayで新しいプロジェクトを作成:
- Railwayにアクセスして、新しいプロジェクトを作成します。
- GitHubからデプロイ:
- Deploy from GitHub repo を選択し、リポジトリを選択します。
- RailwayアカウントがまだGitHubにリンクされていない場合は、リンクするように求められます。
- Deploy from GitHub repo を選択し、リポジトリを選択します。
- 環境変数の追加:
- Add Variables をクリックし、アプリに必要なすべての環境変数を設定します。
- アプリのデプロイ:
- Deploy をクリックして、デプロイプロセスを開始します。
- デプロイされると、アプリ用にRailwayサービスが作成されますが、デフォルトでは公開されません。
- データベースサービスの追加:
- Railwayプロジェクトキャンバスを右クリックするか、Create ボタンをクリックします。
- Database を選択します。
- 利用可能なデータベースから Add PostgreSQL を選択します。
- これにより、プロジェクト用に新しいPostgresデータベースサービスが作成され、デプロイされます。
- Redisデータベースサービスの追加:
- Railwayプロジェクトキャンバスを右クリックするか、Create ボタンをクリックします。
- Database を選択します。
- 利用可能なデータベースから Add Redis を選択します。
- これにより、プロジェクト用に新しいRedisデータベースサービスが作成され、デプロイされます。
- 環境変数の設定:
- アプリサービスの変数セクションに移動し、以下を追加します。
DATABASE_URL
:値を${{Postgres.DATABASE_URL}}
に設定します(これは新しいPostgresデータベースのURLを参照します)。サービス変数の参照について詳しくはこちら。REDIS_URL
:値を${{Redis.REDIS_URL}}
に設定します(これは新しいRedisデータベースのURLを参照します)
- Raw Editorを使用して、その他必要な環境変数を一度に追加します。
- アプリサービスの変数セクションに移動し、以下を追加します。
- Sails構成の変更:
- CLIガイドで説明されている手順3と5に従います。
- サービスの再デプロイ:
- Railwayダッシュボードでデプロイをクリックして、変更を適用します。
- デプロイの確認:
- デプロイが完了したら、View logs に移動して、サーバーが正常に実行されていることを確認します。
- 公開URLの設定:
- 新しいサービスの「設定」タブのNetworkingセクションに移動します。
- 「Generate Domain」をクリックして、アプリの公開URLを作成します。
このガイドでは、Railwayの主なデプロイオプションについて説明しました。セットアップに適したアプローチを選択し、Sailsアプリを簡単にデプロイし始めてください!
セットアップは次のようになります。
これらの手順に従うことで、完全に機能するSailsアプリが完成します。問題が発生した場合や調整が必要な場合は、ログを確認し、環境変数の構成を再確認してください。
Boring JavaScriptスタックSailsスターター
Boring JavaScriptスタックのファンなら、ワンクリックデプロイオプションがあります。
下のボタンをクリックするだけで始められます。
注: デプロイ後はテンプレートから Eject して独自の GitHub リポジトリを作成することをおすすめします。これにより、プロジェクトとソースコードを完全に制御できます。
次のステップ
Railwayでのエクスペリエンスを最大限に活用するために、これらのリソースを調べてください。
PR