mcpField
R
railway

railway

github.com/mshumerクラウド・DevOps30151 回インストール40 週間前に更新
リポジトリ

railway について

Railway CLI でデプロイとインフラを管理するためのコマンド手順ガイドです。状態確認、デプロイ、ログ確認、環境変数管理に加え、事前確認や機密値の保護、破壊的操作の確認方法を示します。

主な機能

  1. 01プロジェクト、サービス、最新デプロイを確認
  2. 02サービスのデプロイ、再デプロイ、再起動
  3. 03デプロイログの絞り込みと要約
  4. 04環境変数の表示、設定、削除
  5. 05プロジェクト連携、ドメイン、DB 接続を管理
  6. 06破壊的操作の前に確認を要求

活用シーン

  1. 01Railway サービスの稼働状態を確認
  2. 02更新をデプロイして結果を検証
  3. 03ビルドや実行ログの問題を調査
  4. 04プロジェクトの切り替えや変数の管理

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mshumer/claude-skill-railway --skill railway

インストール後、Claude Code で/railwayを入力して読み込まれたか確認します。

詳細

Railway CLI スキル

Railway CLI を使用して Railway のデプロイとインフラストラクチャを管理します。

事前チェック

現在のステータス: !railway status 2>&1 || echo "NOT_LINKED"

自動リカバリ

コマンドを実行する前に、上記の事前チェックのステータスを確認してください。

  1. 「command not found」の場合: npm install -g @railway/cli を実行します
  2. 「Not logged in」の場合: ユーザーに railway login を手動で実行するよう伝えます(ブラウザが必要です)
  3. 「NOT_LINKED」または「No project linked」の場合:
    • railway list を実行して利用可能なプロジェクトを表示します
    • ユーザーにリンクするプロジェクトを尋ねるか、package.json の名前から自動検出します
    • railway link -p <project-id> でリンクします

コマンドルーティング

$ARGUMENTS に基づいて、適切なワークフローを実行します。

「status」(引数なしの場合のデフォルト)
railway status
railway domain
railway deployment list --limit 1

報告内容: プロジェクト情報、URL、最後のデプロイのステータス/時刻。

「logs」[オプション]

自然言語のオプションを解析します:

  • 「errors」→ --filter "@level:error"
  • 「last hour」/「1h」→ --since 1h
  • 「build」→ --build
  • 「100」などの数値 → --lines 100

デフォルト: railway logs --lines 30

出力を要約します - エラー、警告、興味深いパターンを強調します。

「deploy」/「up」
railway up

その後、待機して確認します:

  1. railway deployment list --limit 1 を実行してステータスを取得します
  2. SUCCESS の場合、ドメイン URL を取得して応答するか確認します: curl -s -o /dev/null -w "%{http_code}" <domain>
  3. FAILED の場合、ビルドログを表示します: railway logs --build --lines 50
「redeploy」
railway redeploy

再ビルドせずに再デプロイします。環境変数の変更に便利です。

「restart」
railway restart

再ビルドや再デプロイを行わずにサービスを再起動します。

「vars」/「env」[アクション]
railway variables

重要: 変数を表示する際は、機密値をマスクしてください:

  • API キー: 最初の 8 文字 + 「...」を表示
  • パスワード: 「********」を表示
  • トークン: 最初の 8 文字 + 「...」を表示

設定する場合: railway variables set KEY=value 削除する場合: railway variables delete KEY(最初に確認を求めてください!)

「deployments」/「history」
railway deployment list --limit 10

ID(短縮)、ステータス、経過時間、コミットメッセージ(切り詰め)を含む表としてフォーマットします。

「domain」
railway domain

公開 URL を表示します。存在しない場合は、作成を提案します。

「health」
railway domain

次に、ドメインを curl して HTTP ステータスを確認します:

curl -s -o /dev/null -w "%{http_code}" -m 10 <domain-url>

正常(2xx)、異常、到達不能のいずれかを報告します。

「open」
railway open

ブラウザで Railway ダッシュボードを開きます。

「switch 」

名前で別の Railway プロジェクトに切り替えます(あいまい一致)。

# List all projects
railway list

名前に一致するプロジェクト ID を見つけ、次に:

railway link -p <project-id>

railway status で切り替えを確認します。

「db」/「connect」

プロジェクトのデータベースシェル(Postgres、MongoDB、Redis など)に接続します

railway connect

複数のデータベースが存在する場合、Railway が 1 つを選択するよう促します。

「link」

利用可能なプロジェクトを一覧表示し、1 つをリンクします:

railway list

プロジェクトを番号付きリストで表示します。リンクするものをユーザーに尋ね、次に:

railway link -p <project-id>

安全ガード

破壊的な操作の前に、確認を求めてください:

  • railway down - デプロイを削除します
  • railway variables delete - 環境変数を削除します
  • railway unlink - プロジェクトのリンクを解除します

フォーマット: 「This will [action]. Are you sure? (y/n)」

応答フォーマット

常に以下を提供します:

  1. サマリー: 1 行のステータス(✓ 成功 / ✗ 失敗 / ⚠ 警告)
  2. 詳細: クリーンな表またはリストでの関連情報
  3. URL: 該当する場合は公開 URL
  4. 次のステップ: 何かが失敗した場合、修正方法を提案します

応答例

ステータス確認:

✓ MyApp is deployed and healthy

| Project     | MyApp                                    |
| Environment | production                               |
| Service     | MyApp                                    |
| URL         | https://myapp-production.up.railway.app  |
| Last deploy | 2 hours ago (SUCCESS)                    |

デプロイ後:

✓ Deployment successful

Build completed in 45s
URL: https://myapp-production.up.railway.app
Health check: 200 OK

エラー時:

✗ Deployment failed

Build error at line 23: Module not found 'xyz'

Suggested fix: Run `npm install xyz` and redeploy

コメント