| name | deployment-automation |
| description | One-command deployment to Vercel, Railway, Netlify, and Heroku |
deployment-automation
One-command deployment to Vercel, Railway, Netlify, and Heroku
Overview
Automate deployments to popular hosting platforms with a single command. Detects platform configuration, installs required CLIs, and handles deployment workflow automatically.
Time Saved: ~30 minutes per deployment
Complexity: Medium
Prerequisites: Node.js, npm, git
When to Use
- Deploying web applications to production
- Setting up CI/CD pipelines
- Switching between hosting platforms
- Automating deployment workflows
- Teaching deployment best practices
Supported Platforms
- Vercel - Next.js, React, static sites
- Railway - Full-stack apps, databases, backend
- Netlify - Static sites, JAMstack
- Heroku - Traditional web apps, APIs
Quick Start
1. Deploy a Project
python3 /home/ubuntu/skills/deployment-automation/scripts/deploy.py /path/to/project
2. Deploy Preview/Staging
python3 /home/ubuntu/skills/deployment-automation/scripts/deploy.py /path/to/project --preview
How It Works
Phase 1: Detection
- Scans project for platform configuration files
- Identifies:
vercel.json, railway.toml, netlify.toml, Procfile
- Checks
package.json for custom deploy scripts
Phase 2: CLI Setup
- Checks if platform CLI is installed
- Offers to install if missing
- Verifies authentication
Phase 3: Deployment
- Runs platform-specific deploy command
- Handles production vs preview modes
- Reports success/failure
Usage Examples
Example 1: Deploy Next.js App to Vercel
python3 /home/ubuntu/skills/deployment-automation/scripts/deploy.py ~/my-nextjs-app
Example 2: Deploy Full-Stack App to Railway
python3 /home/ubuntu/skills/deployment-automation/scripts/deploy.py ~/my-fullstack-app
Example 3: Deploy Preview
python3 /home/ubuntu/skills/deployment-automation/scripts/deploy.py ~/my-app --preview
Configuration Templates
Vercel (vercel.json)
Use template: /home/ubuntu/skills/deployment-automation/templates/vercel.json
{
"version": 2,
"name": "my-project",
"builds": [
{
"src": "package.json",
"use": "@vercel/next"
}
],
"env": {
"DATABASE_URL": "@database_url"
}
}
Railway (railway.toml)
Use template: /home/ubuntu/skills/deployment-automation/templates/railway.toml
[build]
builder = "NIXPACKS"
buildCommand = "npm run build"
[deploy]
startCommand = "npm start"
Platform Selection Guide
Choose Vercel If:
- Using Next.js or React
- Need fast global CDN
- Want preview deployments
- Deploying frontend only
Choose Railway If:
- Need database included
- Building full-stack app
- Want simple pricing
- Need backend services
Choose Netlify If:
- Building static site
- Using JAMstack
- Need forms handling
Choose Heroku If:
- Using traditional frameworks
- Need extensive add-ons
- Want mature ecosystem
Environment Variables
Set Variables
Vercel:
vercel env add DATABASE_URL
vercel env pull
Railway:
railway variables set DATABASE_URL=postgres://...
railway variables
Netlify:
netlify env:set DATABASE_URL postgres://...
netlify env:list
Heroku:
heroku config:set DATABASE_URL=postgres://...
heroku config
Troubleshooting
Build Fails
- Check build logs
- Verify dependencies in
package.json
- Test build locally:
npm run build
- Check Node version compatibility
Deploy Succeeds But Site Broken
- Check runtime logs
- Verify environment variables set
- Test API endpoints
- Check database connection
CLI Not Installed
Script will prompt to install automatically:
⚠️ vercel CLI not installed
Install vercel CLI? (y/n): y
📦 Installing vercel CLI...
Authentication Required
vercel login
railway login
netlify login
heroku login
Best Practices
-
Test Locally First
npm run build
npm start
-
Use Preview Deployments
deploy.py /path/to/project --preview
-
Set Up Health Checks
export default function handler(req, res) {
res.status(200).json({ status: 'ok' });
}
-
Monitor Logs
vercel logs
railway logs
netlify logs
heroku logs --tail
-
Version Control
git tag v1.0.0
git push --tags
Integration with CI/CD
GitHub Actions
name: Deploy
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Deploy
run: |
python3 skills/deployment-automation/scripts/deploy.py .
Advanced Usage
Custom Deploy Script
If project has "deploy" script in package.json:
{
"scripts": {
"deploy": "custom-deploy-command"
}
}
The skill will detect and use it automatically.
Multiple Platforms
If multiple platforms detected, first one is used:
✅ Detected platforms: vercel, netlify
🚀 Deploying to Vercel...
To use different platform, remove unwanted config files.
Files
Scripts
scripts/deploy.py - Main deployment automation script
Templates
templates/vercel.json - Vercel configuration template
templates/railway.toml - Railway configuration template
References
references/platforms.md - Complete platform comparison and guide
Related Skills
- github-workflow-automation - Automate CI/CD with GitHub Actions
- error-monitoring-setup - Set up Sentry for deployed apps
- database-schema-generator - Generate database schemas before deployment
Workflow
1. User runs deploy.py with project path
2. Script detects platform (vercel.json, railway.toml, etc.)
3. Script checks if CLI installed
4. Script prompts to install if missing
5. Script runs deployment command
6. Script reports success/failure
Success Criteria
✅ Platform detected automatically
✅ CLI installed if needed
✅ Deployment succeeds
✅ URL returned
✅ Logs accessible
Time Savings
Manual Deployment: ~30 minutes
- Install CLI: 5 min
- Configure: 10 min
- Set environment variables: 5 min
- Deploy: 5 min
- Troubleshoot: 5 min
With This Skill: ~2 minutes
- Run script: 30 sec
- Automated detection and deployment: 1.5 min
Savings: ~28 minutes per deployment
Future Enhancements
- Support for AWS, Azure, GCP
- Automatic database migrations
- Blue-green deployments
- Canary releases
- Automatic rollback on errors
- Deployment notifications (Slack, email)
- Performance monitoring integration
Created: February 10, 2026
Status: Production Ready
Tested: Vercel, Railway, Netlify, Heroku