- Notifications
You must be signed in to change notification settings - Fork0
Repository for YouTube tutorial on how to run MetaTrader5 + VNC + Python Flask API in a Docker Container on a Linux server.
chithanh85/metatrader5-quant-server-python
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This project provides a Docker-based setup to run MetaTrader 5 (MT5) using Wine on a Debian-based environment. It leverages Traefik as a reverse proxy for managing HTTP/HTTPS traffic and ensures secure access through Let's Encrypt certificates. The setup includes VNC for remote desktop access and is configured to run as a background service with proper logging and environment management.
- Dockerized Environment: Simplifies deployment and management of MT5.
- Wine Compatibility: Runs MetaTrader 5 on a Linux-based system.
- Traefik Integration: Handles reverse proxying with automatic SSL certificate generation via Let's Encrypt.
- VNC Access: Provides remote desktop access to the MT5 application.
- Logging: Implements structured logging for easy monitoring and debugging.
- Environment Configuration: Easily manage settings using environment variables.
- Docker: Ensure Docker is installed on your system.Install Docker
- Docker Compose: Required for orchestrating the services.Install Docker Compose
- Domain Name: A registered domain for accessing Traefik and VNC services.
- SSL Certificate: Managed automatically via Let's Encrypt.
Clone the Repository
git clone -b chapter-1 --single-branch https://github.com/sesto-dev/metatrader5-linux-django-docker.gitcd metatrader5-linux-django-docker
Configure Environment Variables
Create a
.env
file based on the provided example:cp .env.example .env
Open the
.env
file and set the necessary variables:# Backend - MT5CUSTOM_USER=adminPASSWORD=yourpasswordVNC_DOMAIN=your-vnc-domain.com# TraefikTRAEFIK_DOMAIN=your-traefik-domain.comTRAEFIK_USERNAME=yourusernameACME_EMAIL=youremail@example.com
Note: To generate and set the hashed password in one command for Traefik's HTTP Basic Auth, you can use the following command:
export TRAEFIK_HASHED_PASSWORD=$(openssl passwd -apr1$PASSWORD)
Create Docker Network
docker network create traefik-public
Build and Start the Services
docker-compose up -d
This command builds the Docker images and starts the services in detached mode.
CUSTOM_USER
: Username for accessing the MT5 service.PASSWORD
: Password for the custom user.VNC_DOMAIN
: Domain for accessing the VNC service.TRAEFIK_DOMAIN
: Domain for Traefik dashboard.TRAEFIK_USERNAME
: Username for Traefik basic authentication.ACME_EMAIL
: Email address for Let's Encrypt notifications.
- Traefik: Acts as a reverse proxy with HTTPS support.
- MT5: Runs MetaTrader 5 using Wine.
/var/run/docker.sock
: Allows Traefik to monitor Docker services../config
: Stores Wine configurations and MT5 data.traefik-public-certificates
: Persists SSL certificates generated by Let's Encrypt.
Accessing MetaTrader 5
Navigate to
https://your-vnc-domain.com
in your web browser to access the VNC interface for MetaTrader 5.Traefik Dashboard
Access the Traefik dashboard at
https://your-traefik-domain.com
. You will be prompted for the Traefik username and password configured in the.env
file.Managing Services
Start Services:
docker-compose up -d
Stop Services:
docker-compose down
View Logs:
docker-compose logs -f
The setup uses JSON-file logging with the following configuration:
- Log Driver:
json-file
- Max Size:
1m
- Max File:
1
Logs are managed per service and can be viewed using Docker commands or integrated with external logging solutions like Promtail.
Traefik Not Accessible:
- Ensure that ports
80
and443
are open and not blocked by a firewall. - Verify that your domain DNS settings are correctly pointing to your server.
- Ensure that ports
MT5 Not Starting:
- Check the logs of the
mt5
service for any installation errors. - Ensure that Wine dependencies are properly installed.
- Check the logs of the
VNC Connection Issues:
- Confirm that the VNC service is running and accessible via the specified domain.
- Verify network configurations and firewall settings.
Contributions are welcome! Please follow these steps:
Fork the Repository
Create a Feature Branch
git checkout -b feature/YourFeature
Commit Your Changes
git commit -m"Add Your Feature"
Push to the Branch
git push origin feature/YourFeature
Open a Pull Request
This project is licensed under theMIT License.
About
Repository for YouTube tutorial on how to run MetaTrader5 + VNC + Python Flask API in a Docker Container on a Linux server.
Resources
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Languages
- Python94.7%
- Shell3.8%
- Dockerfile1.5%