No description
Find a file
2026-06-07 21:10:29 -04:00
.ai-chats sync: checkpoint 2026-06-07 2026-06-07 21:10:29 -04:00
.cc-iterations sync: checkpoint 2026-06-07 2026-06-07 21:10:29 -04:00
.perpetual-motion sync: checkpoint 2026-06-07 2026-06-07 21:10:29 -04:00
.root-of-repo sync: checkpoint 2026-06-07 2026-06-07 21:10:29 -04:00
ai-chats sync: checkpoint 2026-06-07 2026-06-07 21:10:29 -04:00
docs sync: checkpoint 2026-06-07 2026-06-07 21:10:29 -04:00
.gitignore sync: checkpoint 2026-06-07 2026-06-07 21:10:29 -04:00
deploy-sasha.sh sync: checkpoint 2026-06-07 2026-06-07 21:10:29 -04:00
deploy-universal-v4.sh sync: checkpoint 2026-06-07 2026-06-07 21:10:29 -04:00
deploy-universal.sh sync: checkpoint 2026-06-07 2026-06-07 21:10:29 -04:00
README.md sync: checkpoint 2026-06-07 2026-06-07 21:10:29 -04:00
robo-deploy sync: checkpoint 2026-06-07 2026-06-07 21:10:29 -04:00

🤖 ROBO-DEPLOY

Universal deployment system with Cloudflare DNS automation for VPS deployments.

🚀 Features

  • Multi-app management - Deploy unlimited apps from one tool
  • Cloudflare DNS automation - Auto-create subdomains and SSL
  • Docker & PM2 support - Containerized or traditional deployments
  • Port management - Automatic port discovery and allocation
  • Health checks - Verify deployments are running
  • CloudPanel integration - Automatic reverse proxy setup
  • Rollback capability - Restore previous versions
  • Staging environments - Auto-create staging subdomains

📦 Scripts

  • deploy-universal-v4.sh - Latest version with Cloudflare DNS
  • deploy-universal.sh - v3 without DNS automation
  • deploy-sasha.sh - Original Sasha's Watches specific script

🎯 Quick Start

# Run interactive menu
~/src/robo-deploy/deploy-universal-v4.sh

# Deploy specific app
~/src/robo-deploy/deploy-universal-v4.sh my-app update

🔧 Initial Setup

Run the script and select 'c' to configure Cloudflare:

~/src/robo-deploy/deploy-universal-v4.sh
# Select 'c' for Cloudflare configuration

You'll need:

  • API Token from cloudflare.com → My Profile → API Tokens
  • Zone ID from your domain's Cloudflare dashboard
  • Default domain for automatic subdomains

2. Add Your First App

~/src/robo-deploy/deploy-universal-v4.sh
# Select 'n' for new app
# Follow the prompts

📁 Configuration Storage

  • ~/.deploy-configs/ - App configurations
  • ~/.deploy-configs/.secrets - API keys (chmod 600)

🎮 Usage Examples

Deploy New App

# Interactive mode
~/src/robo-deploy/deploy-universal-v4.sh
# Select 'n' for new app
# Enter app details
# Select '2' for initial deployment

Update Existing App

# Quick update
~/src/robo-deploy/deploy-universal-v4.sh my-app update

# Or use menu
~/src/robo-deploy/deploy-universal-v4.sh
# Select app number
# Select '1' for update

Manage DNS

~/src/robo-deploy/deploy-universal-v4.sh
# Select app
# Select '6' for DNS management

🌐 DNS Automation

When Cloudflare is configured, the system can:

  • Auto-create subdomains (app.yourdomain.com)
  • Create staging environments (app-staging.yourdomain.com)
  • Enable/disable Cloudflare proxy (DDoS protection)
  • Manage SSL certificates automatically

🐳 Docker Support

Apps with docker-compose.yml are automatically:

  • Built with Docker
  • Deployed as containers
  • Connected to CloudPanel network
  • Health-checked after deployment

📝 App Configuration

Each app stores:

APP_NAME        # Unique identifier
APP_PATH        # Local source directory
VPS_HOST        # Server IP
VPS_USER        # SSH username
APP_DOMAIN      # Production domain
DEFAULT_PORT    # Starting port (auto-increments if taken)
BUILD_CMD       # Build command (npm run build)
START_CMD       # Start command (npm start)
DOCKER_BUILD    # Use Docker? (yes/no)
AUTO_DNS        # Auto-create DNS? (yes/no)
DNS_PROXIED     # Use Cloudflare proxy? (true/false)

🔐 Security

  • SSH key authentication recommended
  • API keys stored in chmod 600 file
  • Cloudflare proxy for DDoS protection
  • Automatic SSL via Cloudflare

🛠️ Requirements

Local:

  • Node.js & npm
  • SSH client
  • curl

VPS:

  • Docker & docker-compose (for containerized apps)
  • Node.js (for non-Docker apps)
  • CloudPanel (optional, for reverse proxy)

📚 Advanced Usage

Dry Run Mode

Test deployment without making changes:

~/src/robo-deploy/deploy-universal-v4.sh
# Select app and deployment type
# Choose 'y' for dry run

Multiple Environments

Configure different ports/domains for staging:

# Production
app.yourdomain.com → Port 3000

# Staging  
app-staging.yourdomain.com → Port 3001

Rollback

Restore previous deployment:

~/src/robo-deploy/deploy-universal-v4.sh my-app rollback

🤝 Contributing

This is a private deployment tool, but feel free to fork and customize for your needs!

📜 License

Private use only


Built with 🚀 by Robo-Deploy