#!/usr/bin/env python3 """ Simple HTTP server for lm-sensors data Run this on your Proxmox host or server with lm-sensors installed """ from http.server import HTTPServer, BaseHTTPRequestHandler import json import subprocess import sys class SensorHandler(BaseHTTPRequestHandler): def do_GET(self): if self.path == '/sensors': try: result = subprocess.run(['sensors', '-j'], capture_output=True, text=True) data = json.loads(result.stdout) self.send_response(200) self.send_header('Content-Type', 'application/json') self.send_header('Access-Control-Allow-Origin', '*') self.end_headers() self.wfile.write(json.dumps(data).encode()) except Exception as e: self.send_response(500) self.end_headers() self.wfile.write(json.dumps({'error': str(e)}).encode()) else: self.send_response(404) self.end_headers() def log_message(self, format, *args): pass # Suppress logs if __name__ == '__main__': port = int(sys.argv[1]) if len(sys.argv) > 1 else 8888 server = HTTPServer(('0.0.0.0', port), SensorHandler) print(f"Sensor server running on http://0.0.0.0:{port}/sensors") print("Press Ctrl+C to stop") try: server.serve_forever() except KeyboardInterrupt: print("\nShutting down...") server.shutdown()