From 7c12b96ed12449092f6ff4b914a3be172ce56035 Mon Sep 17 00:00:00 2001 From: Fr0zka Date: Thu, 29 Oct 2026 00:01:13 +0100 Subject: [PATCH] tools: webviewer --host option (default stays 127.0.0.1) Owner-approved: serve on the Tailscale address only. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_016dhxM43dnWvUu2B5Ph1iG1 --- Standalone/Tools/webviewer/server.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Standalone/Tools/webviewer/server.py b/Standalone/Tools/webviewer/server.py index 88dcfc1..a98bea3 100644 --- a/Standalone/Tools/webviewer/server.py +++ b/Standalone/Tools/webviewer/server.py @@ -72,13 +72,15 @@ def main(): parser.add_argument("--mesh-dir", type=Path, default=APP_DIR / "meshes", help="folder containing converted .glb files") parser.add_argument("--port", type=int, default=8000) + parser.add_argument("--host", default="127.0.0.1", + help="address to bind; default loopback only (e.g. a Tailscale address)") args = parser.parse_args() if not 0 < args.port < 65536: parser.error("--port must be between 1 and 65535") args.mesh_dir.mkdir(parents=True, exist_ok=True) - server = ThreadingHTTPServer(("127.0.0.1", args.port), make_handler(args.mesh_dir)) + server = ThreadingHTTPServer((args.host, args.port), make_handler(args.mesh_dir)) server.daemon_threads = True - print(f"VoxelForge viewer: http://127.0.0.1:{args.port}/") + print(f"VoxelForge viewer: http://{args.host}:{args.port}/") print(f"Mesh folder: {args.mesh_dir.resolve()}") try: server.serve_forever()