Add listener.py
This commit is contained in:
+37
@@ -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()
|
||||||
Reference in New Issue
Block a user