railway について
Railway CLI でデプロイとインフラを管理するためのコマンド手順ガイドです。状態確認、デプロイ、ログ確認、環境変数管理に加え、事前確認や機密値の保護、破壊的操作の確認方法を示します。
主な機能
- 01プロジェクト、サービス、最新デプロイを確認
- 02サービスのデプロイ、再デプロイ、再起動
- 03デプロイログの絞り込みと要約
- 04環境変数の表示、設定、削除
- 05プロジェクト連携、ドメイン、DB 接続を管理
- 06破壊的操作の前に確認を要求
活用シーン
- 01Railway サービスの稼働状態を確認
- 02更新をデプロイして結果を検証
- 03ビルドや実行ログの問題を調査
- 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"
自動リカバリ
コマンドを実行する前に、上記の事前チェックのステータスを確認してください。
- 「command not found」の場合:
npm install -g @railway/cliを実行します - 「Not logged in」の場合: ユーザーに
railway loginを手動で実行するよう伝えます(ブラウザが必要です) - 「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
その後、待機して確認します:
railway deployment list --limit 1を実行してステータスを取得します- SUCCESS の場合、ドメイン URL を取得して応答するか確認します:
curl -s -o /dev/null -w "%{http_code}" <domain> - 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 行のステータス(✓ 成功 / ✗ 失敗 / ⚠ 警告)
- 詳細: クリーンな表またはリストでの関連情報
- URL: 該当する場合は公開 URL
- 次のステップ: 何かが失敗した場合、修正方法を提案します
応答例
ステータス確認:
✓ 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