Claude-code-templates railway-deployment
Manage Railway deployments - view logs, redeploy, restart, or remove deployments. Use for deployment lifecycle (remove, stop, redeploy, restart), deployment visibility (list, status, history), and troubleshooting (logs, errors, failures, crashes). NOT for deleting services - use railway-environment skill with isDeleted for that.
git clone https://github.com/davila7/claude-code-templates
T=$(mktemp -d) && git clone --depth=1 https://github.com/davila7/claude-code-templates "$T" && mkdir -p ~/.claude/skills && cp -r "$T/cli-tool/components/skills/railway/deployment" ~/.claude/skills/davila7-claude-code-templates-railway-deployment && rm -rf "$T"
cli-tool/components/skills/railway/deployment/SKILL.mdRailway Deployment Management
Manage existing Railway deployments: list, view logs, redeploy, or remove.
Important: "Remove deployment" (
railway down) stops the current deployment but keeps the service. To delete a service entirely, use the railway-environment skill with isDeleted: true.
When to Use
- User says "remove deploy", "take down service", "stop deployment", "railway down"
- User wants to "redeploy", "restart the service", "restart deployment"
- User asks to "list deployments", "show deployment history", "deployment status"
- User asks to "see logs", "show logs", "check errors", "debug issues"
List Deployments
railway deployment list --limit 10 --json
Shows deployment IDs, statuses, and metadata. Use to find specific deployment IDs for logs or debugging.
Specify Service
railway deployment list --service backend --limit 10 --json
View Logs
Deploy Logs
railway logs --lines 100 --json
In non-interactive mode, streaming is auto-disabled and CLI fetches logs then exits.
Build Logs
railway logs --build --lines 100 --json
For debugging build failures or viewing build output.
Logs for Failed/In-Progress Deployments
By default
railway logs shows the last successful deployment. Use --latest for current:
railway logs --latest --lines 100 --json
Filter Logs
# Errors only railway logs --lines 50 --filter "@level:error" --json # Text search railway logs --lines 50 --filter "connection refused" --json # Combined railway logs --lines 50 --filter "@level:error AND timeout" --json
Time-Based Filtering
# Logs from last hour railway logs --since 1h --lines 100 --json # Logs between 30 and 10 minutes ago railway logs --since 30m --until 10m --lines 100 --json # Logs from specific timestamp railway logs --since 2024-01-15T10:00:00Z --lines 100 --json
Formats: relative (
30s, 5m, 2h, 1d, 1w) or ISO 8601 timestamps.
Logs from Specific Deployment
Deploy logs:
railway logs <deployment-id> --lines 100 --json
Build logs:
railway logs --build <deployment-id> --lines 100 --json
Get deployment ID from
railway deployment list.
Note: The deployment ID is a positional argument, NOT
--deployment <id>. The --deployment flag is a boolean that selects deploy logs (vs --build for build logs).
Redeploy
Redeploy the most recent deployment:
railway redeploy --service <name> -y
The
-y flag skips confirmation. Useful when:
- Config changed via railway-environment skill
- Need to restart without new code
- Previous deploy succeeded but service misbehaving
Restart Container Only
Restart without rebuilding (picks up external resource changes):
railway restart --service <name> -y
Use when external resources (S3 files, config maps) changed but code didn't.
Remove Deployment
Takes down the current deployment. The service remains but has no running deployment.
# Remove deployment for linked service railway down -y # Remove deployment for specific service railway down --service web -y railway down --service api -y
This is what users mean when they say "remove deploy", "take down", or "stop the deployment".
Note: This does NOT delete the service. To delete a service entirely, use the railway-environment skill with
isDeleted: true.
CLI Options
deployment list
| Flag | Description |
|---|---|
| Service name or ID |
| Environment name or ID |
| Max deployments (default 20, max 1000) |
| JSON output |
logs
| Flag | Description |
|---|---|
| Service name or ID |
| Environment name or ID |
| Show deploy logs (default, boolean flag) |
| Show build logs (boolean flag) |
| Number of lines (required) |
| Filter using query syntax |
| Start time (relative or ISO 8601) |
| End time (relative or ISO 8601) |
| Most recent deployment (even if failed) |
| JSON output |
| Specific deployment (optional) |
redeploy
| Flag | Description |
|---|---|
| Service name or ID |
| Skip confirmation |
restart
| Flag | Description |
|---|---|
| Service name or ID |
| Skip confirmation |
down
| Flag | Description |
|---|---|
| Service name or ID |
| Environment name or ID |
| Skip confirmation |
Presenting Logs
When showing logs:
- Include timestamps
- Highlight errors and warnings
- For build failures: show error and suggest fixes
- For runtime crashes: show stack trace context
- Summarize patterns (e.g., "15 timeout errors in last 100 logs")
Composability
- Push new code: Use railway-deploy skill
- Check service status: Use railway-status skill
- Fix config issues: Use railway-environment skill
- Create new service: Use railway-new skill
Error Handling
No Service Linked
No service linked. Run `railway service` to select one.
No Deployments Found
No deployments found. Deploy first with `railway up`.
No Logs Found
Deployment may be too old (log retention limits) or service hasn't produced output.