This commit is contained in:
1 parent
cbd6584db5
commit
17e6fb83e5
4 files changed
+737
No files matched your search
+162
@@ -0,0 +1,162 @@
|
||||
# ========================================
|
||||
# Trading Bot Deployment Script
|
||||
# Windows VPS Deployment Automation
|
||||
# ========================================
|
||||
|
||||
Write-Host "========================================" -ForegroundColor Cyan
|
||||
Write-Host " Trading Bot Deployment Script v1.0" -ForegroundColor Cyan
|
||||
Write-Host "========================================" -ForegroundColor Cyan
|
||||
Write-Host ""
|
||||
|
||||
# Deployment-Verzeichnis
|
||||
$deployPath = "C:\TradingBot\placeorder"
|
||||
$timestamp = Get-Date -Format "yyyyMMdd_HHmmss"
|
||||
$backupPath = "C:\TradingBot\backups\backup_$timestamp"
|
||||
|
||||
# ========================================
|
||||
# SCHRITT 1: Backup erstellen
|
||||
# ========================================
|
||||
Write-Host "[1/5] Creating backup..." -ForegroundColor Yellow
|
||||
|
||||
# Erstelle Backup-Verzeichnis falls nicht vorhanden
|
||||
if (!(Test-Path "C:\TradingBot\backups")) {
|
||||
New-Item -ItemType Directory -Path "C:\TradingBot\backups" -Force | Out-Null
|
||||
}
|
||||
|
||||
# Backup kritischer Dateien
|
||||
$filesToBackup = @(
|
||||
"trading_bot.db",
|
||||
"telegram_config.json"
|
||||
)
|
||||
|
||||
New-Item -ItemType Directory -Path $backupPath -Force | Out-Null
|
||||
|
||||
foreach ($file in $filesToBackup) {
|
||||
if (Test-Path $file) {
|
||||
Copy-Item $file -Destination "$backupPath\$file" -Force
|
||||
Write-Host " ✓ Backed up: $file" -ForegroundColor Green
|
||||
}
|
||||
}
|
||||
|
||||
Write-Host " ✓ Backup created at: $backupPath" -ForegroundColor Green
|
||||
Write-Host ""
|
||||
|
||||
# ========================================
|
||||
# SCHRITT 2: Git Pull (bereits von Workflow erledigt)
|
||||
# ========================================
|
||||
Write-Host "[2/5] Verifying Git repository..." -ForegroundColor Yellow
|
||||
|
||||
if (Test-Path ".git") {
|
||||
$branch = git rev-parse --abbrev-ref HEAD
|
||||
$commit = git rev-parse --short HEAD
|
||||
Write-Host " ✓ Branch: $branch" -ForegroundColor Green
|
||||
Write-Host " ✓ Commit: $commit" -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host " ✗ No Git repository found!" -ForegroundColor Red
|
||||
exit 1
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
|
||||
# ========================================
|
||||
# SCHRITT 3: Python Dependencies prüfen/aktualisieren
|
||||
# ========================================
|
||||
Write-Host "[3/5] Checking Python dependencies..." -ForegroundColor Yellow
|
||||
|
||||
# Prüfe ob requirements.txt existiert
|
||||
if (Test-Path "requirements.txt") {
|
||||
Write-Host " Installing/Updating dependencies from requirements.txt..." -ForegroundColor Cyan
|
||||
pip install --upgrade -r requirements.txt --quiet
|
||||
if ($LASTEXITCODE -eq 0) {
|
||||
Write-Host " ✓ Dependencies installed successfully" -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host " ⚠ Some dependencies might have failed" -ForegroundColor Yellow
|
||||
}
|
||||
} else {
|
||||
Write-Host " ℹ No requirements.txt found, installing common packages..." -ForegroundColor Cyan
|
||||
pip install --upgrade streamlit plotly pandas MetaTrader5 --quiet
|
||||
Write-Host " ✓ Common packages installed" -ForegroundColor Green
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
|
||||
# ========================================
|
||||
# SCHRITT 4: Services neu starten
|
||||
# ========================================
|
||||
Write-Host "[4/5] Restarting services..." -ForegroundColor Yellow
|
||||
|
||||
# Trading Dashboard Service
|
||||
$dashboardService = Get-Service -Name "TradingDashboard" -ErrorAction SilentlyContinue
|
||||
if ($dashboardService) {
|
||||
Write-Host " Restarting TradingDashboard service..." -ForegroundColor Cyan
|
||||
Restart-Service -Name "TradingDashboard" -Force
|
||||
Start-Sleep -Seconds 3
|
||||
|
||||
$status = (Get-Service -Name "TradingDashboard").Status
|
||||
if ($status -eq "Running") {
|
||||
Write-Host " ✓ TradingDashboard is running" -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host " ✗ TradingDashboard failed to start!" -ForegroundColor Red
|
||||
}
|
||||
} else {
|
||||
Write-Host " ℹ TradingDashboard service not installed (manual start required)" -ForegroundColor Yellow
|
||||
}
|
||||
|
||||
# Optional: Prozesse neustarten falls kein Service installiert
|
||||
$streamlitProcesses = Get-Process | Where-Object {$_.ProcessName -like "*streamlit*"}
|
||||
if ($streamlitProcesses) {
|
||||
Write-Host " Found running Streamlit processes, restarting..." -ForegroundColor Cyan
|
||||
$streamlitProcesses | Stop-Process -Force
|
||||
Start-Sleep -Seconds 2
|
||||
|
||||
# Starte Streamlit neu (im Hintergrund)
|
||||
Start-Process powershell -ArgumentList "-NoExit", "-Command", "cd '$deployPath'; streamlit run trading_dashboard.py --server.port 8501 --server.address 0.0.0.0" -WindowStyle Minimized
|
||||
Write-Host " ✓ Streamlit restarted" -ForegroundColor Green
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
|
||||
# ========================================
|
||||
# SCHRITT 5: Deployment-Verifikation
|
||||
# ========================================
|
||||
Write-Host "[5/5] Verifying deployment..." -ForegroundColor Yellow
|
||||
|
||||
$criticalFiles = @(
|
||||
"TradingBot_V1.6_Adaptive_Complete_CORRECTED.ipynb",
|
||||
"trading_dashboard.py",
|
||||
"trading_database.py"
|
||||
)
|
||||
|
||||
$allFilesExist = $true
|
||||
foreach ($file in $criticalFiles) {
|
||||
if (Test-Path $file) {
|
||||
Write-Host " ✓ $file" -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host " ✗ $file missing!" -ForegroundColor Red
|
||||
$allFilesExist = $false
|
||||
}
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
|
||||
# ========================================
|
||||
# DEPLOYMENT SUMMARY
|
||||
# ========================================
|
||||
Write-Host "========================================" -ForegroundColor Cyan
|
||||
Write-Host " DEPLOYMENT SUMMARY" -ForegroundColor Cyan
|
||||
Write-Host "========================================" -ForegroundColor Cyan
|
||||
|
||||
if ($allFilesExist) {
|
||||
Write-Host "Status: SUCCESS" -ForegroundColor Green
|
||||
Write-Host "Timestamp: $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')" -ForegroundColor White
|
||||
Write-Host "Backup Location: $backupPath" -ForegroundColor White
|
||||
Write-Host "Dashboard URL: http://localhost:8501" -ForegroundColor Cyan
|
||||
Write-Host ""
|
||||
Write-Host "✓ Deployment completed successfully!" -ForegroundColor Green
|
||||
exit 0
|
||||
} else {
|
||||
Write-Host "Status: FAILED" -ForegroundColor Red
|
||||
Write-Host "Some critical files are missing!" -ForegroundColor Red
|
||||
Write-Host "Check the logs above for details." -ForegroundColor Yellow
|
||||
exit 1
|
||||
}
|
||||
Reference in new issue
Block a user