【Railway】Sailsアプリのデプロイ
この記事で、RailwayにSailsアプリをデプロイする方法を学びます。クイックセットアップ、データベース統合、Boring JavaScriptスタック、ワンクリックデプロイ、その他のデプロイ戦略について説明します。
Railwayはこちら (←このリンクから登録すると20ドル分のクレジットがもらえます)
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アプリをデプロイする複数の方法を提供します。次のいずれかの方法を選択してください。
- テンプレートからのワンクリックデプロイ
- CLIでデプロイ
- GitHubリポジトリからデプロイ
テンプレートからのワンクリックデプロイ
最速で始めたい場合は、ワンクリックデプロイオプションが最適です。SailsアプリとPostgresデータベース、Redisをセットアップします。
下のボタンをクリックして開始します。
デプロイ後はテンプレートから Eject して、GitHub アカウントにリポジトリのコピーを作成することを強くおすすめします。これにより、ソースコードとプロジェクトを完全に制御できます。
CLIでデプロイ
Railway CLIを使用してSailsアプリをデプロイするには、次の手順に従ってください。
- Railway CLIのインストール:
- CLIをインストールし、Railwayアカウントで認証します。
- Railwayプロジェクトの初期化:
- プロンプトに従ってプロジェクトに名前を付けます。
- プロジェクトが作成されたら、提供されたリンクをクリックしてブラウザで表示します。
- Sails構成の変更:注: 現時点ではソケットは必要ないため、これを追加しただけです。必要な場合は、この手順をスキップして、
onlyAllowOrigins配列にパブリックアプリのURLを追加してください。この関数は、ソケット接続の試行を単に拒否します。config/env/production.jsファイルを開き、いくつかの変更を加えます。- アプリはプロキシの背後にあるため、
http.trustProxyをtrueに設定します。 session.cookie.secureをtrueに設定します
- アプリはプロキシの背後にあるため、
- アプリケーションのデプロイ:
- このコマンドは、アプリのファイルをスキャン、圧縮し、Railwayにアップロードします。ターミナルにはリアルタイムのデプロイログが表示されます。
以下のコマンドを使用してアプリをデプロイします。
railway uponlyAllowOrigins 配列の直後に、socket オブジェクトにこの関数を追加します。
beforeConnect: function(handshake, proceed) {
// ソケットの接続を許可するには `true` を返します。
// (または、試行を拒否するには `false` を返します。)
return proceed(undefined, false);
},Sailsアプリディレクトリで以下のコマンドを実行します。
railway init- 注: デフォルトの
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でのエクスペリエンスを最大限に活用するために、これらのリソースを調べてください。
Railwayはこちら (←このリンクから登録すると20ドル分のクレジットがもらえます)