From 1a259444ebca589a0ae7a9accd1ffc1497c73cf4 Mon Sep 17 00:00:00 2001 From: unkn <1+unkn@noreply.localhost> Date: Mon, 28 Sep 2026 13:03:55 +0100 Subject: [PATCH] Add listener.py --- listener.py | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 listener.py diff --git a/listener.py b/listener.py new file mode 100644 index 0000000..b386d76 --- /dev/null +++ b/listener.py @@ -0,0 +1,37 @@ +import subprocess +from http.server import HTTPServer, BaseHTTPRequestHandler + +PORT = 8083 + +class ListenerHandler(BaseHTTPRequestHandler): + def do_POST(self): + # Enable CORS so browser accepts the response + self.send_response(200) + self.send_header('Access-Control-Allow-Origin', '*') + self.send_header('Content-Type', 'text/plain') + self.end_headers() + + try: + # Run your exact docker command + cmd = [ + "docker", "run", "--rm", + "-v", "/home/iain/dashboard:/app", + "-v", "/home/iain/navidrome/data:/nddata", + "python:3.11-slim", "python", "/app/dashboard.py" + ] + result = subprocess.run(cmd, capture_output=True, text=True) + if result.returncode == 0: + self.wfile.write(b"Success") + else: + self.wfile.write(b"Failed") + except Exception as e: + self.wfile.write(str(e).encode()) + +def run(): + server_address = ('', PORT) + httpd = HTTPServer(server_address, ListenerHandler) + print(f"Listener running on port {PORT}...") + httpd.serve_forever() + +if __name__ == '__main__': + run() \ No newline at end of file