No description
- Shell 99.9%
| .ai-chats | ||
| .cc-iterations | ||
| .perpetual-motion | ||
| .root-of-repo | ||
| ai-chats | ||
| docs | ||
| .gitignore | ||
| deploy-sasha.sh | ||
| deploy-universal-v4.sh | ||
| deploy-universal.sh | ||
| README.md | ||
| robo-deploy | ||
🤖 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 DNSdeploy-universal.sh- v3 without DNS automationdeploy-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
1. Configure Cloudflare (Optional but Recommended)
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