diff --git a/office_server.py b/office_server.py new file mode 100644 index 0000000..e57d49d --- /dev/null +++ b/office_server.py @@ -0,0 +1,35 @@ +#!/usr/bin/env python3 +"""3D Office Dashboard Server""" +import http.server +import socketserver +import os +from pathlib import Path +from urllib.parse import urlparse + +PORT = 9502 +DIRECTORY = Path(__file__).parent + +class Handler(http.server.SimpleHTTPRequestHandler): + def __init__(self, *args, **kwargs): + super().__init__(*args, directory=str(DIRECTORY), **kwargs) + + def do_GET(self): + parsed = urlparse(self.path) + if parsed.path in ('', '/'): + self.path = '/office.html' + ('?' + parsed.query if parsed.query else '') + return super().do_GET() + + def end_headers(self): + self.send_header('Access-Control-Allow-Origin', '*') + self.send_header('Cache-Control', 'no-cache, no-store, must-revalidate') + self.send_header('Pragma', 'no-cache') + self.send_header('Expires', '0') + super().end_headers() + +if __name__ == '__main__': + os.chdir(DIRECTORY) + socketserver.TCPServer.allow_reuse_address = True + with socketserver.TCPServer(("", PORT), Handler) as httpd: + print(f"3D Office Dashboard running at http://0.0.0.0:{PORT}") + print(f"Tailscale URL: http://:{PORT}") + httpd.serve_forever() \ No newline at end of file