""" tool_server.py — Mini HTTP server za WebUI toolove Servira /preset-creator i ostale admin alate na portu 8081 Radi kao sidecar uz Open WebUI (port 8080) """ from http.server import HTTPServer, BaseHTTPRequestHandler import os HTML_DIR = "/app/tools" class ToolHandler(BaseHTTPRequestHandler): def log_message(self, format, *args): # Tiši logovi pass def do_GET(self): path = self.path.split("?")[0].rstrip("/") if path == "" or path == "/": self.redirect("/preset-creator") return if path == "/preset-creator": self.serve_file("preset_creator.html", "text/html; charset=utf-8") return # 404 self.send_response(404) self.send_header("Content-Type", "text/plain; charset=utf-8") self.end_headers() self.wfile.write(b"404 Not Found") def redirect(self, location): self.send_response(302) self.send_header("Location", location) self.end_headers() def serve_file(self, filename, content_type): filepath = os.path.join(HTML_DIR, filename) if not os.path.exists(filepath): self.send_response(404) self.send_header("Content-Type", "text/plain") self.end_headers() self.wfile.write(f"File not found: {filename}".encode()) return with open(filepath, "rb") as f: data = f.read() self.send_response(200) self.send_header("Content-Type", content_type) self.send_header("Content-Length", str(len(data))) self.end_headers() self.wfile.write(data) if __name__ == "__main__": port = int(os.environ.get("TOOLS_PORT", 8081)) server = HTTPServer(("0.0.0.0", port), ToolHandler) print(f"✅ Tool server pokrenut na portu {port}") print(f" → http://localhost:{port}/preset-creator") server.serve_forever()