← back to Cc Command Center
server.py
31 lines
#!/usr/bin/env python3
"""Zero-dependency static server for the Claude Code Command Center viewer.
Basic-auth gated (admin / DW2024!), serves ./public on a free OS-assigned port
(or PORT env). Prints the URL on startup."""
import base64, functools, http.server, os, socketserver
ROOT = os.path.join(os.path.dirname(os.path.abspath(__file__)), "public")
USER, PW = os.environ.get("CC_USER", "admin"), os.environ.get("CC_PASS", "DW2024!")
TOKEN = base64.b64encode(f"{USER}:{PW}".encode()).decode()
PORT = int(os.environ.get("PORT", "0"))
class Handler(http.server.SimpleHTTPRequestHandler):
def do_GET(self):
if self.headers.get("Authorization") != f"Basic {TOKEN}":
self.send_response(401)
self.send_header("WWW-Authenticate", 'Basic realm="Command Center"')
self.end_headers(); self.wfile.write(b"auth required"); return
return super().do_GET()
def log_message(self, *a): pass
class TCP(socketserver.ThreadingTCPServer):
allow_reuse_address = True
if __name__ == "__main__":
Handler.directory = ROOT
h = functools.partial(Handler, directory=ROOT)
with TCP(("127.0.0.1", PORT), h) as httpd:
port = httpd.server_address[1]
print(f"Command Center → http://127.0.0.1:{port} (auth: {USER} / {PW})")
httpd.serve_forever()