diff --git a/app.py b/app.py index b1fe493..c229336 100644 --- a/app.py +++ b/app.py @@ -4,24 +4,25 @@ from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer import json -class Handler(BaseHTTPRequestHandler): - def do_GET(self): - # Initial implementation assumes deployment at the domain root. - if self.path == "/api/health": - payload = json.dumps({"status": "ok"}).encode("utf-8") - self.send_response(200) - self.send_header("Content-Type", "application/json") - else: - payload = json.dumps({"error": "not found"}).encode("utf-8") - self.send_response(404) - self.send_header("Content-Type", "application/json") - self.send_header("Content-Length", str(len(payload))) - self.end_headers() - self.wfile.write(payload) +def make_handler(base_path=""): + class Handler(BaseHTTPRequestHandler): + def do_GET(self): + if self.path == base_path + "/api/health": + payload = json.dumps({"status": "ok"}).encode("utf-8") + self.send_response(200) + self.send_header("Content-Type", "application/json") + else: + payload = json.dumps({"error": "not found"}).encode("utf-8") + self.send_response(404) + self.send_header("Content-Type", "application/json") + self.send_header("Content-Length", str(len(payload))) + self.end_headers() + self.wfile.write(payload) + return Handler -def serve(port=0): - server = ThreadingHTTPServer(("127.0.0.1", port), Handler) +def serve(port=0, base_path=""): + server = ThreadingHTTPServer(("127.0.0.1", port), make_handler(base_path)) return server diff --git a/replay.py b/replay.py index 26c5228..757f304 100644 --- a/replay.py +++ b/replay.py @@ -16,7 +16,7 @@ def check(profile): config = json.loads((ROOT / "config" / f"{profile}.json").read_text()) base_path = config["public_base_path"] path = base_path + "/api/health" - server = serve() + server = serve(base_path=base_path) thread = Thread(target=server.serve_forever, daemon=True) thread.start() try: