railway-deploy
RailwayのCLIを使って、デプロイや状態確認、サービス管理、環境変数の設定、ログ確認など、Railwayに関する様々な操作を実行し、プロジェクトの立ち上げから本番環境の監視まで、デプロイの全工程をサポートするSkill。
📜 元の英語説明(参考)
Manage Railway deployments using the CLI. Use when a user asks to deploy to Railway, check deployment status, manage Railway services, set environment variables on Railway, view Railway logs, link a Railway project, add a database on Railway, scale Railway services, manage Railway environments, rollback a Railway deployment, or run commands with Railway env vars. Covers the full deploy lifecycle from project setup to production monitoring.
🇯🇵 日本人クリエイター向け解説
RailwayのCLIを使って、デプロイや状態確認、サービス管理、環境変数の設定、ログ確認など、Railwayに関する様々な操作を実行し、プロジェクトの立ち上げから本番環境の監視まで、デプロイの全工程をサポートするSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o railway-deploy.zip https://jpskill.com/download/15315.zip && unzip -o railway-deploy.zip && rm railway-deploy.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/15315.zip -OutFile "$d\railway-deploy.zip"; Expand-Archive "$d\railway-deploy.zip" -DestinationPath $d -Force; ri "$d\railway-deploy.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
railway-deploy.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
railway-deployフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
Railway Deploy
概要
CLIを使用してRailway上のアプリケーションをデプロイ、管理、および監視します。プロジェクトのセットアップ、サービス構成、環境変数、デプロイ、スケーリング、ログ、およびデバッグといった、ライフサイクル全体を網羅します。
手順
タスク A: プロジェクトのセットアップとリンク
まず、CLIがインストールされていることを確認します。railwayが見つからない場合は、インストールします。
npm i -g @railway/cli # または: brew install railway
すでにプロジェクトにリンクされているかどうかを確認します。
railway status
リンクされていない場合は、新しいプロジェクトを作成するか、既存のプロジェクトにリンクします。
railway init # 新しいプロジェクトを作成
railway link # 既存のプロジェクトにリンク
リンク後、railway statusでプロジェクト、サービス、および環境のコンテキストを確認します。
CI/CDまたはヘッドレス環境の場合は、トークン認証を使用します。
RAILWAY_TOKEN=xxx railway up # プロジェクトスコープのトークン
RAILWAY_API_TOKEN=xxx railway up # アカウントスコープのトークン
タスク B: デプロイ
# 現在のディレクトリをデプロイし、ログをストリーム
railway up
# ログを待たずにデプロイ
railway up --detach
# 特定のサービスをターゲットにする
railway up -s my-service
# 特定の環境にデプロイ
railway up -e staging
最新のデプロイメントを削除するには:
railway down
最新のデプロイメントを再デプロイするには(同じコード、新しいビルド):
railway redeploy
再構築せずにサービスを再起動するには:
railway restart
タスク C: サービスとリソースの管理
# インタラクティブにサービスを追加
railway add
# データベースを追加
railway add --database postgres # 他にも: mysql, redis, mongo
# GitHubリポジトリからサービスを追加
railway add --repo user/repo
# リンクされたサービスコンテキストを切り替え
railway service
# サービスをスケール
railway scale
# Railwayサブドメインを生成するか、カスタムドメインを追加
railway domain
railway domain example.com
# 永続ボリュームを管理
railway volume list
railway volume add
railway volume delete
# プロジェクト全体を削除
railway delete
タスク D: 環境変数
# 現在のサービス/環境のすべての変数をリスト
railway variable list
# 変数を設定
railway variable set DATABASE_URL=postgres://user:pass@host:5432/db
# 複数の変数を設定
railway variable set KEY1=value1 KEY2=value2
# 変数を削除
railway variable delete SECRET_KEY
タスク E: 環境
# インタラクティブに環境を切り替え
railway environment
# 新しい環境を作成
railway environment new staging
# 環境を削除
railway environment delete dev
# 特定の環境にデプロイ
railway up -e production
タスク F: ログとデバッグ
# ライブログをストリーム
railway logs
# ビルドログを表示
railway logs --build
# 最後のN行を表示
railway logs -n 100
# 実行中のコンテナにSSH接続
railway ssh
# データベースシェルに接続 (例: psql, mysql, redis-cli)
railway connect
タスク G: ローカル開発
# Railwayの環境変数を注入してコマンドを実行
railway run npm start
railway run python manage.py migrate
# Railwayの環境変数を使用してインタラクティブシェルを開く
railway shell
例
例 1: Node.jsアプリをゼロからデプロイ
ユーザーリクエスト: "Node.jsアプリをRailwayにデプロイしたい"
実行されたアクション:
$ railway login
> Opening browser for authentication...
> Logged in as andrey@example.com
$ railway init
> Created project "my-node-app" in workspace "Personal"
$ railway up
> Uploading 2.3 MB...
> Build started
> Installing dependencies...
> Build completed in 34s
> Deployment live at my-node-app.up.railway.app
$ railway domain
> Service domain: my-node-app.up.railway.app
例 2: Postgresデータベースを追加して接続
ユーザーリクエスト: "Railwayプロジェクトにデータベースを追加して設定したい"
実行されたアクション:
$ railway status
> Project: my-node-app
> Service: web
> Environment: production
$ railway add --database postgres
> Added PostgreSQL service to project
# DATABASE_URLは自動的に注入されます。確認:
$ railway variable list
> DATABASE_URL=postgres://railway:abc123@host:5432/railway
> PGHOST=host
> PGPORT=5432
> ...
# Railwayの環境変数を使用してマイグレーションを実行
$ railway run npx prisma migrate deploy
> Applying migrations...
> 3 migrations applied successfully
$ railway redeploy
> Redeploying web service...
> Deployment live
例 3: 失敗したデプロイをデバッグ
ユーザーリクエスト: "Railwayのデプロイがクラッシュしています。デバッグを手伝ってください"
実行されたアクション:
$ railway status
> Project: my-api
> Service: web
> Environment: production
# まずビルドログを確認
$ railway logs --build
> Step 4/8: RUN npm ci
> npm ERR! Could not resolve dependency: peer express@"^4.0.0"
# ビルドは成功したが、ランタイムが失敗する場合は、ランタイムログを確認
$ railway logs -n 50
> Error: connect ECONNREFUSED 127.0.0.1:5432
# 変数が設定されていることを確認
$ railway variable list
> DATABASE_URL=postgres://...@localhost:5432/mydb # バグ: localhostを使用
# 修正: Railwayが提供するデータベースホストを指すようにする
$ railway variable set DATABASE_URL=postgres://user:pass@railway-db-host:5432/mydb
$ railway redeploy
> Redeploying...
> Deployment live
タスク H: ヘルスチェックと自動ロールバック
デプロイ後、デプロイが完了したと見なす前に、サービスが正常であることを確認します。異常な場合は、前のデプロイメントにロールバックします。
# デプロイして完了を待つ
$ railway up --detach
# ヘルスチェックループ — サービスが応答することを確認
HEALTH_URL="https://your-app.railway.app/api/health"
TIMEOUT=60
DEADLINE=$((SECONDS + TIMEOUT))
HEALTHY=false
while [ $SECONDS -lt $DEADLINE ]; do
STATUS=$(curl -s -o /dev/null -w "%{http_code}" "$HEALTH_URL" 2>/dev/null || echo "000")
if [ "$STATUS" = "200" ]; then
HEALTHY=true
break
fi
echo "Waiting for healthy response... (status: $STATUS)"
sleep 3
done
if [ "$HEALTHY" = true ]; then
echo "✅ Deployment healthy!"
else
echo "❌ Health check failed! Rolling back..."
railway rollback
echo "⏪ Rolled back to previous deployment"
fi
**自動デプロイスクリプト
(原文がここで切り詰められています)
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Railway Deploy
Overview
Deploy, manage, and monitor applications on Railway using the CLI. Covers the full lifecycle: project setup, service configuration, environment variables, deployments, scaling, logs, and debugging.
Instructions
Task A: Project Setup & Linking
First verify the CLI is installed. If railway is not found, install it:
npm i -g @railway/cli # or: brew install railway
Check if already linked to a project:
railway status
If not linked, either create a new project or link to an existing one:
railway init # Create a new project
railway link # Link to an existing project
After linking, confirm with railway status to verify project, service, and environment context.
For CI/CD or headless environments, use token auth:
RAILWAY_TOKEN=xxx railway up # Project-scoped token
RAILWAY_API_TOKEN=xxx railway up # Account-scoped token
Task B: Deploy
# Deploy current directory and stream logs
railway up
# Deploy without waiting for logs
railway up --detach
# Target a specific service
railway up -s my-service
# Deploy to a specific environment
railway up -e staging
To remove the latest deployment:
railway down
To redeploy the latest deployment (same code, fresh build):
railway redeploy
To restart a service without rebuilding:
railway restart
Task C: Manage Services & Resources
# Add a service interactively
railway add
# Add a database
railway add --database postgres # also: mysql, redis, mongo
# Add a service from a GitHub repo
railway add --repo user/repo
# Switch linked service context
railway service
# Scale a service
railway scale
# Generate a Railway subdomain or add a custom domain
railway domain
railway domain example.com
# Manage persistent volumes
railway volume list
railway volume add
railway volume delete
# Delete the entire project
railway delete
Task D: Environment Variables
# List all variables for current service/environment
railway variable list
# Set a variable
railway variable set DATABASE_URL=postgres://user:pass@host:5432/db
# Set multiple variables
railway variable set KEY1=value1 KEY2=value2
# Delete a variable
railway variable delete SECRET_KEY
Task E: Environments
# Switch environment interactively
railway environment
# Create a new environment
railway environment new staging
# Delete an environment
railway environment delete dev
# Deploy to a specific environment
railway up -e production
Task F: Logs & Debugging
# Stream live logs
railway logs
# View build logs
railway logs --build
# View last N lines
railway logs -n 100
# SSH into the running container
railway ssh
# Connect to a database shell (e.g., psql, mysql, redis-cli)
railway connect
Task G: Local Development
# Run a command with Railway environment variables injected
railway run npm start
railway run python manage.py migrate
# Open an interactive shell with Railway env vars
railway shell
Examples
Example 1: Deploy a Node.js app from scratch
User request: "Deploy my Node.js app to Railway"
Actions taken:
$ railway login
> Opening browser for authentication...
> Logged in as andrey@example.com
$ railway init
> Created project "my-node-app" in workspace "Personal"
$ railway up
> Uploading 2.3 MB...
> Build started
> Installing dependencies...
> Build completed in 34s
> Deployment live at my-node-app.up.railway.app
$ railway domain
> Service domain: my-node-app.up.railway.app
Example 2: Add a Postgres database and wire it up
User request: "Add a database to my Railway project and set it up"
Actions taken:
$ railway status
> Project: my-node-app
> Service: web
> Environment: production
$ railway add --database postgres
> Added PostgreSQL service to project
# The DATABASE_URL is automatically injected. Verify:
$ railway variable list
> DATABASE_URL=postgres://railway:abc123@host:5432/railway
> PGHOST=host
> PGPORT=5432
> ...
# Run migrations using Railway env vars
$ railway run npx prisma migrate deploy
> Applying migrations...
> 3 migrations applied successfully
$ railway redeploy
> Redeploying web service...
> Deployment live
Example 3: Debug a failing deployment
User request: "My Railway deployment is crashing, help me debug it"
Actions taken:
$ railway status
> Project: my-api
> Service: web
> Environment: production
# Check build logs first
$ railway logs --build
> Step 4/8: RUN npm ci
> npm ERR! Could not resolve dependency: peer express@"^4.0.0"
# If build passes but runtime fails, check runtime logs
$ railway logs -n 50
> Error: connect ECONNREFUSED 127.0.0.1:5432
# Verify variables are set
$ railway variable list
> DATABASE_URL=postgres://...@localhost:5432/mydb # BUG: using localhost
# Fix: point to the Railway-provided database host
$ railway variable set DATABASE_URL=postgres://user:pass@railway-db-host:5432/mydb
$ railway redeploy
> Redeploying...
> Deployment live
Task H: Health Checks and Auto-Rollback
After deploying, verify the service is healthy before considering the deploy complete. If unhealthy, roll back to the previous deployment.
# Deploy and wait for completion
$ railway up --detach
# Health check loop — verify the service responds
HEALTH_URL="https://your-app.railway.app/api/health"
TIMEOUT=60
DEADLINE=$((SECONDS + TIMEOUT))
HEALTHY=false
while [ $SECONDS -lt $DEADLINE ]; do
STATUS=$(curl -s -o /dev/null -w "%{http_code}" "$HEALTH_URL" 2>/dev/null || echo "000")
if [ "$STATUS" = "200" ]; then
HEALTHY=true
break
fi
echo "Waiting for healthy response... (status: $STATUS)"
sleep 3
done
if [ "$HEALTHY" = true ]; then
echo "✅ Deployment healthy!"
else
echo "❌ Health check failed! Rolling back..."
railway rollback
echo "⏪ Rolled back to previous deployment"
fi
Automated deploy script with health verification:
# deploy_railway.py — Deploy with health check and auto-rollback
import subprocess
import time
import httpx
def deploy_with_health_check(health_url, timeout=60):
"""Deploy to Railway, verify health, rollback on failure."""
print("🚀 Deploying to Railway...")
subprocess.run(["railway", "up", "--detach"], check=True)
print(f"🏥 Health checking {health_url}...")
deadline = time.time() + timeout
while time.time() < deadline:
try:
r = httpx.get(health_url, timeout=5)
if r.status_code == 200:
print("✅ Healthy!")
return True
except httpx.RequestError:
pass
time.sleep(3)
print("❌ Unhealthy! Rolling back...")
subprocess.run(["railway", "rollback"], check=True)
print("⏪ Rolled back")
return False
Guidelines
- Always run
railway statusfirst to confirm project, service, and environment context before making changes. - Use
railway up --detachin CI/CD pipelines to avoid blocking on log output. - Use
RAILWAY_TOKENfor project-scoped CI/CD auth andRAILWAY_API_TOKENfor account-level operations. - Use
-s service-nameand-e environment-nameflags when managing multi-service projects to avoid acting on the wrong target. - Use
railway runto execute one-off commands (migrations, seeds) with production env vars without deploying. - If a deployment fails, check build logs (
railway logs --build) first, then runtime logs (railway logs). - Use
railway connectto get a database shell directly without needing connection strings locally. - Add
--jsonto any command for machine-readable output in scripts. - Use
railway variable setto update env vars, thenrailway redeployto pick up the changes. - Use
railway environment newto create staging/preview environments that mirror production config. - If
railwaycommand is not found, install vianpm i -g @railway/cliorbrew install railway. - If
railway loginfails or times out, userailway login --browserlessfor headless/SSH environments.