#!/usr/bin/env python3 """ Simple HTTP server to expose validation script for n8n Usage: python3 validation-server.py Access: http://localhost:8080/validate """ import http.server import socketserver import subprocess import json import os PORT = 8080 REPO_DIR = "/home/garfield/mql-trading-bots" class ValidationHandler(http.server.SimpleHTTPRequestHandler): def do_GET(self): if self.path == '/validate': # Run validation script os.chdir(REPO_DIR) result = subprocess.run( ['./scripts/validate-settings.sh'], capture_output=True, text=True ) # Build response response = { 'status': 'ok' if result.returncode == 0 else 'error', 'code': result.returncode, 'stdout': result.stdout, 'stderr': result.stderr } # Send response self.send_response(200) self.send_header('Content-Type', 'application/json') self.end_headers() self.wfile.write(json.dumps(response).encode()) elif self.path == '/health': self.send_response(200) self.send_header('Content-Type', 'application/json') self.end_headers() self.wfile.write(json.dumps({'status': 'healthy'}).encode()) else: self.send_error(404) def log_message(self, format, *args): # Suppress logs pass if __name__ == '__main__': with socketserver.TCPServer(("127.0.0.1", PORT), ValidationHandler) as httpd: print(f"Validation server running at http://127.0.0.1:{PORT}/validate") httpd.serve_forever()