mirror of
https://github.com/A6-9V/MQL5-Google-Onedrive.git
synced 2026-04-10 20:40:56 +00:00
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
316 lines
6.5 KiB
Markdown
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)
|