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
6.5 KiB
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:
-
Push to GitHub:
git push origin main -
Create Render Service:
- Go to https://render.com
- Click "New +" → "Web Service"
- Connect your GitHub repository
- Render will auto-detect
render.yaml
-
Configure Environment Variables (if needed):
PYTHONUNBUFFERED=1TZ=UTC(or your timezone)
-
Deploy:
- Click "Create Web Service"
- Render will build and deploy automatically
Manual Deploy Script:
python scripts/deploy_cloud.py render
2. Railway.app Deployment
Configuration File: railway.json
Steps:
-
Install Railway CLI:
npm i -g @railway/cli -
Login:
railway login -
Initialize Project:
railway init -
Deploy:
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:
python scripts/deploy_cloud.py railway
3. Fly.io Deployment
Configuration File: fly.toml
Steps:
-
Install Fly CLI:
# Windows (PowerShell) powershell -Command "iwr https://fly.io/install.ps1 -useb | iex" # macOS/Linux curl -L https://fly.io/install.sh | sh -
Login:
fly auth login -
Launch App:
fly launch -
Deploy:
fly deploy
Manual Deploy Script:
python scripts/deploy_cloud.py flyio
4. Docker Deployment
Configuration Files: Dockerfile, docker-compose.yml
Local Docker Build:
# 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:
python scripts/deploy_cloud.py docker --build
5. Heroku Deployment
Using Docker:
-
Create
heroku.yml:build: docker: web: Dockerfile -
Deploy:
heroku container:push web heroku container:release web
Configuration
Environment Variables
All platforms support these environment variables:
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.ymlhealthcheck
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:
- Render: Enable "Auto-Deploy" in settings
- Railway: Enable "Auto Deploy" in project settings
- Fly.io: Use GitHub Actions workflow (see below)
GitHub Actions Workflow
Create .github/workflows/deploy-cloud.yml:
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
# 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:
- Monitor Logs: Check platform dashboard for logs
- Test Functionality: Verify automation is running
- Set Up Alerts: Configure notifications for failures
- 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