Agent skill
railway-deploy-demolinator-talal-s-tda
Stars
163
Forks
31
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
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
yaml
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
json
{
"action": "config",
"service": "backend",
"variables_set": [
"AUTH_SERVER_URL=https://auth-server-production-8251.up.railway.app"
],
"redeployment_triggered": true,
"status": "SUCCESS"
}
Deploy Success
json
{
"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
json
{
"action": "deploy",
"service": "backend",
"status": "FAILED",
"error": "Build failed: Module not found",
"logs": "...",
"rollback_recommended": true
}
Example Usage
Set Environment Variable
bash
claude-code /railway-deploy --service backend --action config --env-vars "AUTH_SERVER_URL=https://auth-server-production-8251.up.railway.app"
Deploy Backend
bash
claude-code /railway-deploy --service backend --action deploy --wait true --health-check true
Deploy All Services
bash
claude-code /railway-deploy --service all --action deploy
Check Status
bash
claude-code /railway-deploy --service backend --action status
Rollback
bash
claude-code /railway-deploy --service backend --action rollback
Set Multiple Variables and Deploy
bash
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
bash
# 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
bash
# 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
bash
curl https://tda-backend-production.up.railway.app/health
# Expected: {"status":"healthy"}
Auth Server Health Check
bash
curl https://auth-server-production-8251.up.railway.app/health
# Expected: {"status":"healthy"}
Database Connectivity
bash
# 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:
bash
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:
bash
# 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
bash
# 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
bash
# 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
yaml
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
Didn't find tool you were looking for?