google-agents-cli-scaffold
Project scaffolding, deployment configuration, and CI/CD setup for Google ADK agents.
railway-automation
Railway CI/CD integration and automation. Use when setting up GitHub Actions, GitLab CI, automated deployments, migration scripts, or programmatic Railway workflows.
Full skill instructions
Automate Railway deployments with CI/CD pipelines, migration scripts, and event-driven workflows.
GitHub Actions (5 minutes)
# .github/workflows/railway.yml
- uses: railway/deploy@v1
with:
railway_token: ${{ secrets.RAILWAY_TOKEN }}
service: api
GitLab CI (5 minutes)
# .gitlab-ci.yml
deploy:
script:
- railway up --service api
only: [main]
Migration (10 minutes)
./scripts/migrate.sh --from heroku --project myapp
Setup Process
railway login && railway token)RAILWAY_TOKEN).github/workflows/railway.yml)Use Cases
Template: See templates/github-workflow.yml
Reference: references/github-actions.md for complete guide with 5+ workflow examples
Setup Process
RAILWAY_TOKEN).gitlab-ci.ymlUse Cases
Template: See templates/gitlab-ci.yml
Reference: references/gitlab-ci.md for complete guide with pipeline examples
Generic Pattern (Any Platform)
# Install Railway CLI
npm i -g @railway/cli
# Login with token
export RAILWAY_TOKEN=$YOUR_TOKEN
# Link project
railway link $PROJECT_ID
# Deploy
railway up --service $SERVICE_NAME --environment $ENVIRONMENT
Environment Variables
RAILWAY_TOKEN: Authentication tokenRAILWAY_PROJECT_ID: Project identifier (optional if linked)RAILWAY_SERVICE: Service name (optional)RAILWAY_ENVIRONMENT: Environment name (optional)Health Check Pattern
# Deploy and wait for health
railway up --service api
sleep 30
# Verify deployment
DEPLOY_URL=$(railway status --json | jq -r '.url')
curl -f $DEPLOY_URL/health || exit 1
Supported Platforms
Interactive Migration Script
# From Heroku
./scripts/migrate.sh --from heroku --project myapp
# From Vercel
./scripts/migrate.sh --from vercel --project myapp --env production
# Dry run (preview changes)
./scripts/migrate.sh --from render --project myapp --dry-run
Script Features
Supported Migrations
Reference: references/migration-patterns.md for detailed guides per platform
Cron-Based Deployments
# GitHub Actions - Deploy every night at 2 AM
on:
schedule:
- cron: '0 2 * * *'
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: railway/deploy@v1
with:
railway_token: ${{ secrets.RAILWAY_TOKEN }}
Database Backups
# Scheduled backup workflow
on:
schedule:
- cron: '0 0 * * *' # Daily at midnight
jobs:
backup:
steps:
- name: Backup database
run: |
railway run pg_dump > backup.sql
aws s3 cp backup.sql s3://backups/$(date +%Y%m%d).sql
Health Check Monitoring
# Hourly health checks
on:
schedule:
- cron: '0 * * * *'
jobs:
health:
steps:
- name: Check service health
run: |
curl -f ${{ secrets.SERVICE_URL }}/health || \
curl -X POST ${{ secrets.SLACK_WEBHOOK }} \
-d '{"text":"Service down!"}'
GitHub Webhook → Railway Deploy
// Webhook handler
app.post('/webhook/github', async (req, res) => {
const { ref, repository } = req.body;
if (ref === 'refs/heads/main') {
const { exec } = require('child_process');
exec('railway up --service api', (error, stdout) => {
console.log(stdout);
});
}
res.json({ status: 'ok' });
});
Railway Webhook Events Railway supports webhooks for:
Configure Webhooks
# Via Railway CLI
railway webhooks add \
--url https://yourapp.com/webhook \
--events deployment.success,deployment.failure
# Via API
curl -X POST https://backboard.railway.app/graphql \
-H "Authorization: Bearer $TOKEN" \
-d '{
"query": "mutation { webhookCreate(input: {...}) }"
}'
Notification Integration
# Slack notification on deploy
railway webhooks add \
--url $SLACK_WEBHOOK_URL \
--events deployment.success \
--transform '{
"text": "Deployed {{service}} to {{environment}}"
}'
# Deploy to staging first, then production
jobs:
staging:
environment: staging
steps:
- uses: railway/deploy@v1
with:
railway_token: ${{ secrets.RAILWAY_TOKEN }}
environment: staging
production:
needs: staging
environment: production
steps:
- uses: railway/deploy@v1
with:
railway_token: ${{ secrets.RAILWAY_TOKEN }}
environment: production
# Create preview for each PR
on:
pull_request:
types: [opened, synchronize]
jobs:
preview:
steps:
- uses: railway/deploy@v1
with:
railway_token: ${{ secrets.RAILWAY_TOKEN }}
service: api-pr-${{ github.event.pull_request.number }}
# Automatic rollback if health check fails
jobs:
deploy:
steps:
- name: Deploy
id: deploy
run: railway up --service api
- name: Health check
run: curl -f $SERVICE_URL/health
- name: Rollback on failure
if: failure()
run: railway rollback --service api
# Deploy multiple services in parallel
strategy:
matrix:
service: [api, worker, cron]
steps:
- uses: railway/deploy@v1
with:
railway_token: ${{ secrets.RAILWAY_TOKEN }}
service: ${{ matrix.service }}
Generate Token
# CLI method
railway login
railway token
# Copy token to clipboard
railway token | pbcopy # macOS
railway token | xclip # Linux
Add to CI Platform
GitHub
Settings → Secrets and variables → Actions → New repository secret
Name: RAILWAY_TOKEN
Value: [paste token]
GitLab
Settings → CI/CD → Variables → Add variable
Key: RAILWAY_TOKEN
Value: [paste token]
Protected: Yes
Masked: Yes
CircleCI
Project Settings → Environment Variables → Add Variable
Name: RAILWAY_TOKEN
Value: [paste token]
Token Rotation
# Generate new token
NEW_TOKEN=$(railway token)
# Update in CI (platform-specific)
# Then invalidate old token via dashboard
Detect Environment in Code
const env = process.env.RAILWAY_ENVIRONMENT || 'development';
const config = {
development: { db: 'localhost:5432' },
staging: { db: process.env.DATABASE_URL },
production: { db: process.env.DATABASE_URL }
};
export default config[env];
Conditional Deployment
# Only deploy staging on feature branches
jobs:
deploy-staging:
if: github.ref != 'refs/heads/main'
steps:
- uses: railway/deploy@v1
with:
environment: staging
deploy-production:
if: github.ref == 'refs/heads/main'
steps:
- uses: railway/deploy@v1
with:
environment: production
Environment Variable Management
# Export from staging
railway env --environment staging > .env.staging
# Import to production (selective)
cat .env.staging | grep -v SECRET | railway env --environment production
Deployment Fails in CI
# Check token validity
railway whoami
# Verify project link
railway status
# Check service exists
railway list
# View deployment logs
railway logs --service api
Token Authentication Errors
# Regenerate token
railway logout
railway login
railway token
# Update in CI secrets
# Test locally first
RAILWAY_TOKEN=$NEW_TOKEN railway status
Environment Not Found
# List available environments
railway environment list
# Verify environment name matches
railway status --environment production
Service Not Deploying
# Check service name
railway list
# Verify service configuration
railway status --service api
# Check for build errors
railway logs --service api --deployment latest
Project scaffolding, deployment configuration, and CI/CD setup for Google ADK agents.
Set up tracing, logging, and monitoring for deployed ADK agents across Cloud Trace, BigQuery, and third-party platforms.
Enterprise Azure infrastructure architect generating Bicep or Terraform from workload descriptions.
Plan and configure production-ready Azure Kubernetes Service clusters with Day-0 and Day-1 best practices.
Raw mechanical interfaces fusing Swiss typographic print with military terminal aesthetics. Rigid grids, extreme type scale contrast, utilitarian color, analog degradation effects. For data-heavy dashboards, portfolios, or editorial sites that need to feel like declassified blueprints.
Web search, scraping, extraction, crawling, and monitoring via ScrapeGraph AI CLI.
Skill for working with Firebase Hosting (Classic). Use this when you want to deploy static web apps, Single Page Apps (SPAs), or simple microservices. Do NOT use for Firebase App Hosting.
Deploy and manage web apps with Firebase App Hosting. Use this skill when deploying Next.js/Angular apps with backends.
Deploy applications and websites to Vercel. Use when the user requests deployment actions like "deploy my app", "deploy and give me the link", "push this live", or "create a preview deployment".
Build SEO-optimized pages at scale using templates, data, and proven playbook patterns.
Design and build isolated, reusable Convex backend components with clear boundaries and app-facing wrappers.
Deploy and manage projects on Vercel using token-based authentication. Use when working with Vercel CLI using access tokens rather than interactive login — e.g. "deploy to vercel", "set up vercel", "add environment variables to vercel".
Opus.ai: Revolutionize Your Web Experience
Build a no-code AI app in minutes.
An IDE for code migration from legacy to modern frameworks through coding agents.
Automate CGI animation in live-action scenes
Branded artistic QR-code concepts
Launch a website in seconds with AI.
Streamline Your Coding Experience with AI Code Helper
Convert any screenshot or design to clean code.