Agent skill
railway-deploy-demolinator-talal-s-tda-demolinator-talal-s-tda
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/devops/railway-deploy-demolinator-talal-s-tda-demolinator-talal-s-tda
SKILL.md
Railway Deploy Skill
Description
Automated Railway deployment and configuration management. Handles environment variables, service deployment, health checks, and rollback procedures.
Capabilities
- Set/update environment variables
- Trigger redeployments
- Check deployment status
- View deployment logs
- Verify service health
- Rollback to previous deployments
- Manage multiple services (backend, auth server, database)
Inputs
--service(required): Service to deploy (backend|auth-server|all)--action(required): Action to perform (deploy|config|status|rollback)--env-vars(optional): Environment variables to set (KEY=VALUE format, comma-separated)--wait(optional): Wait for deployment to complete (default: true)--health-check(optional): Run health checks after deployment (default: true)
Process
Action: config (Set Environment Variables)
1. Parse environment variables from --env-vars
2. For each KEY=VALUE pair:
a. Validate variable name (no spaces, valid characters)
b. Set in Railway using CLI or API
c. Confirm variable is set
3. Optionally trigger redeploy (--redeploy flag)
Action: deploy (Deploy Service)
1. Check current deployment status
2. Trigger new deployment:
a. Push latest code to GitHub (if needed)
b. Railway auto-deploys or use `railway up`
3. Monitor deployment progress:
a. Check build logs
b. Wait for "Deployed" status
c. Capture any build errors
4. Run health checks:
a. GET {service_url}/health
b. Verify 200 OK response
c. Check response time
5. Verify service functionality:
a. Backend: Test /api/health endpoint
b. Auth Server: Test /health endpoint
c. Check database connectivity
Action: status (Check Deployment Status)
1. Get latest deployment info:
a. Deployment ID
b. Status (Building, Deployed, Failed)
c. Commit hash
d. Deployed timestamp
2. Get service metrics:
a. CPU usage
b. Memory usage
c. Request count
3. Check service health:
a. Uptime
b. Recent errors
c. Response times
Action: rollback (Rollback Deployment)
1. List recent deployments (last 10)
2. Select previous stable deployment
3. Redeploy that version
4. Wait for rollback to complete
5. Run health checks
6. Verify service is working
Railway Project Configuration
Project Details
Project ID: 1a580b9d-e43b-4faf-a523-b3454b9d3bf1
Services:
- Backend (FastAPI):
ID: ac8b8441-def7-49e9-af64-47dd171ae1c2
URL: https://tda-backend-production.up.railway.app
Required Env Vars:
- AUTH_SERVER_URL
- DATABASE_URL
- CORS_ORIGINS
- Auth Server (Better Auth):
ID: (auth server service ID)
URL: https://auth-server-production-8251.up.railway.app
Required Env Vars:
- DATABASE_URL
- BETTER_AUTH_SECRET
- CORS_ORIGINS
Output Format
Config Success
{
"action": "config",
"service": "backend",
"variables_set": [
"AUTH_SERVER_URL=https://auth-server-production-8251.up.railway.app"
],
"redeployment_triggered": true,
"status": "SUCCESS"
}
Deploy Success
{
"action": "deploy",
"service": "backend",
"deployment_id": "abc123",
"status": "DEPLOYED",
"build_time": "2m 15s",
"health_check": "PASS",
"url": "https://tda-backend-production.up.railway.app"
}
Deploy Failure
{
"action": "deploy",
"service": "backend",
"status": "FAILED",
"error": "Build failed: Module not found",
"logs": "...",
"rollback_recommended": true
}
Example Usage
Set Environment Variable
claude-code /railway-deploy --service backend --action config --env-vars "AUTH_SERVER_URL=https://auth-server-production-8251.up.railway.app"
Deploy Backend
claude-code /railway-deploy --service backend --action deploy --wait true --health-check true
Deploy All Services
claude-code /railway-deploy --service all --action deploy
Check Status
claude-code /railway-deploy --service backend --action status
Rollback
claude-code /railway-deploy --service backend --action rollback
Set Multiple Variables and Deploy
claude-code /railway-deploy --service backend --action config --env-vars "AUTH_SERVER_URL=https://auth.railway.app,CORS_ORIGINS=https://frontend.vercel.app" --redeploy
Environment Variables Management
Critical Backend Variables
# Auth Server URL (REQUIRED)
AUTH_SERVER_URL=https://auth-server-production-8251.up.railway.app
# Database (auto-set by Railway)
DATABASE_URL=postgresql://...
# CORS Origins
CORS_ORIGINS=https://frontend-peach-xi-69.vercel.app,http://localhost:3000
Critical Auth Server Variables
# Database (auto-set by Railway)
DATABASE_URL=postgresql://...
# Better Auth Secret (REQUIRED)
BETTER_AUTH_SECRET=<random-secret>
# CORS Origins
CORS_ORIGINS=https://frontend-peach-xi-69.vercel.app,https://tda-backend-production.up.railway.app
Health Check Verification
Backend Health Check
curl https://tda-backend-production.up.railway.app/health
# Expected: {"status":"healthy"}
Auth Server Health Check
curl https://auth-server-production-8251.up.railway.app/health
# Expected: {"status":"healthy"}
Database Connectivity
# Check backend logs for:
✅ Using database: postgresql://...
✅ Database connection pool initialized
Common Issues & Solutions
Issue: Deployment Stuck in "Building"
Cause: Build hanging, dependency issues Solution:
claude-code /railway-deploy --service backend --action rollback
# Then check logs to identify build issue
Issue: Service Healthy but Not Responding
Cause: Port configuration, firewall rules Solution: Check Railway service settings, ensure PORT is set correctly
Issue: Environment Variable Not Applied
Cause: Typo in variable name, redeployment needed Solution:
# Re-set variable
claude-code /railway-deploy --service backend --action config --env-vars "VAR_NAME=value" --redeploy
Issue: Database Connection Timeout
Cause: DATABASE_URL incorrect, network issues Solution: Verify DATABASE_URL in Railway, check Neon database status
Deployment Best Practices
1. Pre-Deployment Checklist
- ✅ All tests passing locally
- ✅ Dependencies updated
- ✅ Environment variables documented
- ✅ Database migrations ready
2. Deployment Steps
# 1. Deploy backend first
claude-code /railway-deploy --service backend --action deploy
# 2. Deploy auth server
claude-code /railway-deploy --service auth-server --action deploy
# 3. Run health checks
claude-code /railway-deploy --service all --action status
# 4. Test authentication flow
claude-code /browser-test-auth --url https://frontend-peach-xi-69.vercel.app
3. Post-Deployment Verification
- ✅ All services show "Deployed" status
- ✅ Health checks return 200 OK
- ✅ Authentication test passes
- ✅ No errors in logs
4. Rollback Procedure
# If deployment fails:
claude-code /railway-deploy --service backend --action rollback
claude-code /railway-deploy --service backend --action status
# Verify service is working
Integration with CI/CD
GitHub Actions Workflow
name: Deploy to Railway
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set Railway Environment Variables
run: |
claude-code /railway-deploy \
--service backend \
--action config \
--env-vars "AUTH_SERVER_URL=${{ secrets.AUTH_SERVER_URL }}"
- name: Deploy Backend
run: |
claude-code /railway-deploy \
--service backend \
--action deploy \
--wait true
- name: Health Check
run: |
claude-code /railway-deploy \
--service backend \
--action status
- name: Test Authentication
run: |
claude-code /browser-test-auth \
--url https://frontend-peach-xi-69.vercel.app
Dependencies
- Railway CLI installed and authenticated
- Railway project ID and service IDs configured
- Git repository connected to Railway
- Required environment variables documented
Success Criteria
- ✅ Deployment completes without errors
- ✅ Service shows "Deployed" status in Railway
- ✅ Health check returns 200 OK
- ✅ All environment variables set correctly
- ✅ Service responds to requests within acceptable time
Maintenance Notes
- Keep Railway CLI updated:
railway update - Document all environment variable changes
- Maintain rollback history (last 10 deployments)
- Monitor deployment times and optimize build process
- Archive deployment logs for troubleshooting
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?