| #!/bin/bash |
| |
| |
| |
| set -euo pipefail |
|
|
| echo "=== WickBot startup ===" |
|
|
| |
| export DISPLAY=":99" |
| sleep 7 |
|
|
| |
| mkdir -p /data/logs /data/sessions /data/training /data/backups |
|
|
| |
| rm -f /data/logs/bot.log.* 2>/dev/null || true |
| rm -f /data/logs/bot.log 2>/dev/null || true |
|
|
| |
| if [ ! -f /data/config.json ] && [ -f /app/config.default.json ]; then |
| cp /app/config.default.json /data/config.json |
| echo "Created default config.json in /data" |
| fi |
|
|
| |
| if [ -f /app/data/config.deploy.json ] && [ ! -f /data/config.json ]; then |
| cp /app/data/config.deploy.json /data/config.json |
| echo "Seeded config.deploy.json as /data/config.json" |
| fi |
|
|
| |
| |
| |
| mkdir -p /app/sessions_local |
| if [ -d /data/sessions ] && [ "$(ls -A /data/sessions 2>/dev/null)" ]; then |
| cp -rf /data/sessions/* /app/sessions_local/ 2>/dev/null || true |
| echo "Restored sessions from /data β /app/sessions_local/" |
| fi |
|
|
| export SESSION_DIR="C:/sessions_local" |
| export DB_PATH="Z:/app/data/automator.db" |
| export CONFIG_PATH="Z:/data/config.json" |
| export LOG_DIR="Z:/app/logs" |
| export MT5_SYMBOL_SUFFIX="m" |
|
|
| |
| |
| |
| echo "Launching MT5 terminal under Wine..." |
| if [ -f "mt5_terminal/terminal64.exe" ]; then |
| wine mt5_terminal/terminal64.exe /portable > /data/logs/wine_terminal.log 2>&1 & |
| else |
| echo "ERROR: mt5_terminal/terminal64.exe not found β did you run scripts/upload_to_hf.py --mt5?" |
| exit 1 |
| fi |
|
|
| echo "Waiting 15s for MT5 to initialize..." |
| sleep 15 |
|
|
| |
| echo "Starting mt5linux server..." |
| wine python -m mt5linux --host 0.0.0.0 --port 18812 & |
|
|
| echo "Waiting 10s for mt5linux server..." |
| sleep 10 |
|
|
| |
| echo "Starting WickBot..." |
| cd /app |
| exec uv run main.py |
|
|