MQL5-Google-Onedrive/docs/Cloud_Deployment_Guide.md
google-labs-jules[bot] 2d72003813 Update docs to warn about Exness Web Terminal limitations
Explicitly state that custom MQL5 programs and automation scripts are not supported on the Exness Web Terminal and require the Desktop application.

Updated:
- docs/Cloud_Deployment_Guide.md
- QUICK_REFERENCE.md
- docs/Quick_Start_Automation.md
- docs/ZOLO_Plugin_Integration.md
2026-01-18 21:10:55 +00:00

316 lines
6.5 KiB
Markdown

# Cloud Deployment Guide
This guide explains how to deploy the MQL5 Trading Automation system to various cloud platforms.
> **⚠️ Important:** These deployment methods run the **automation system** (Python scripts) or a headless MT5 instance. They do **not** enable custom indicators or EAs on the **Exness Web Terminal**. For charting and manual trading with custom tools, you must use the **Exness MetaTrader 5 Desktop Application**.
## Supported Platforms
- **Render.com** - Simple web service deployment
- **Railway.app** - Container-based deployment
- **Fly.io** - Global edge deployment
- **Docker** - Container deployment (any platform)
- **Heroku** - Legacy support (via Docker)
## Prerequisites
- GitHub repository pushed and accessible
- Account on chosen cloud platform
- Python 3.8+ support on platform
## Platform-Specific Deployment
### 1. Render.com Deployment
**Configuration File:** `render.yaml`
**Steps:**
1. **Push to GitHub:**
```bash
git push origin main
```
2. **Create Render Service:**
- Go to https://render.com
- Click "New +" → "Web Service"
- Connect your GitHub repository
- Render will auto-detect `render.yaml`
3. **Configure Environment Variables** (if needed):
- `PYTHONUNBUFFERED=1`
- `TZ=UTC` (or your timezone)
4. **Deploy:**
- Click "Create Web Service"
- Render will build and deploy automatically
**Manual Deploy Script:**
```bash
python scripts/deploy_cloud.py render
```
### 2. Railway.app Deployment
**Configuration File:** `railway.json`
**Steps:**
1. **Install Railway CLI:**
```bash
npm i -g @railway/cli
```
2. **Login:**
```bash
railway login
```
3. **Initialize Project:**
```bash
railway init
```
4. **Deploy:**
```bash
railway up
```
**Or use Railway Dashboard:**
- Go to https://railway.app
- Create new project
- Connect GitHub repository
- Railway will auto-detect `railway.json`
**Manual Deploy Script:**
```bash
python scripts/deploy_cloud.py railway
```
### 3. Fly.io Deployment
**Configuration File:** `fly.toml`
**Steps:**
1. **Install Fly CLI:**
```bash
# Windows (PowerShell)
powershell -Command "iwr https://fly.io/install.ps1 -useb | iex"
# macOS/Linux
curl -L https://fly.io/install.sh | sh
```
2. **Login:**
```bash
fly auth login
```
3. **Launch App:**
```bash
fly launch
```
4. **Deploy:**
```bash
fly deploy
```
**Manual Deploy Script:**
```bash
python scripts/deploy_cloud.py flyio
```
### 4. Docker Deployment
**Configuration Files:** `Dockerfile`, `docker-compose.yml`
**Local Docker Build:**
```bash
# Build image
docker build -t mql5-automation .
# Run container
docker run -d --name mql5-automation \
-v $(pwd)/config:/app/config \
-v $(pwd)/logs:/app/logs \
mql5-automation
# Or use docker-compose
docker-compose up -d
```
**Deploy to Cloud with Docker:**
Any platform that supports Docker:
- **AWS ECS/Fargate**
- **Google Cloud Run**
- **Azure Container Instances**
- **DigitalOcean App Platform**
- **Vercel** (with Docker support)
**Manual Deploy Script:**
```bash
python scripts/deploy_cloud.py docker --build
```
### 5. Heroku Deployment
**Using Docker:**
1. **Create `heroku.yml`:**
```yaml
build:
docker:
web: Dockerfile
```
2. **Deploy:**
```bash
heroku container:push web
heroku container:release web
```
## Configuration
### Environment Variables
All platforms support these environment variables:
```bash
PYTHONUNBUFFERED=1 # Python output buffering
TZ=UTC # Timezone
LOG_LEVEL=INFO # Logging level
MAX_RETRIES=3 # Component retry count
```
### Volume Mounts
For persistent storage (logs, config):
- **Render:** Use Render Disk (paid plans)
- **Railway:** Use Railway Volumes
- **Fly.io:** Use Fly Volumes
- **Docker:** Use bind mounts or volumes
## Monitoring
### Health Checks
All platforms support health checks:
- **Render:** Configured in `render.yaml`
- **Railway:** Automatic
- **Fly.io:** Configured in `fly.toml`
- **Docker:** Use `docker-compose.yml` healthcheck
### Logs
Access logs on each platform:
- **Render:** Dashboard → Logs tab
- **Railway:** Dashboard → Deployments → View Logs
- **Fly.io:** `fly logs`
- **Docker:** `docker logs mql5-automation`
## Continuous Deployment
### GitHub Actions Integration
All platforms support automatic deployment on push:
1. **Render:** Enable "Auto-Deploy" in settings
2. **Railway:** Enable "Auto Deploy" in project settings
3. **Fly.io:** Use GitHub Actions workflow (see below)
### GitHub Actions Workflow
Create `.github/workflows/deploy-cloud.yml`:
```yaml
name: Deploy to Cloud
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Deploy to Render
uses: johnletey/railway-deploy@master
env:
RAILWAY_TOKEN: ${{ secrets.RAILWAY_TOKEN }}
```
## Cost Considerations
### Free Tiers
- **Render:** Free tier available (limited hours)
- **Railway:** $5 credit/month
- **Fly.io:** Free tier with limits
- **Docker:** Free on self-hosted
### Paid Plans
- **Render:** $7/month for always-on
- **Railway:** Pay-as-you-go
- **Fly.io:** Pay-as-you-go
- **Docker:** Varies by platform
## Troubleshooting
### Common Issues
**1. Build Failures:**
- Check Python version compatibility
- Verify all dependencies in `requirements.txt`
- Review build logs
**2. Runtime Errors:**
- Check environment variables
- Verify file permissions
- Review application logs
**3. Connection Issues:**
- Verify network configuration
- Check firewall rules
- Review platform-specific networking docs
### Getting Help
- **Render:** https://render.com/docs
- **Railway:** https://docs.railway.app
- **Fly.io:** https://fly.io/docs
- **Docker:** https://docs.docker.com
## Quick Deploy Commands
```bash
# Setup all platform configs
python scripts/deploy_cloud.py all
# Deploy to specific platform
python scripts/deploy_cloud.py render
python scripts/deploy_cloud.py railway
python scripts/deploy_cloud.py flyio
python scripts/deploy_cloud.py docker --build
```
## Next Steps
After deployment:
1. **Monitor Logs:** Check platform dashboard for logs
2. **Test Functionality:** Verify automation is running
3. **Set Up Alerts:** Configure notifications for failures
4. **Scale if Needed:** Adjust resources based on usage
## Support
For deployment issues:
- Email: Lengkundee01.org@domain.com
- GitHub Issues: https://github.com/A6-9V/MQL5-Google-Onedrive/issues
- WhatsApp: [Agent community](https://chat.whatsapp.com/DYemXrBnMD63K55bjUMKYF)