feat: add node startup flow

This commit is contained in:
Dobromir Popov
2026-06-29 01:30:12 +03:00
parent 15897d5c95
commit 0199c99f6b
9 changed files with 727 additions and 11 deletions

View File

@@ -2,6 +2,7 @@
import argparse
import sys
import time
def main() -> None:
@@ -12,20 +13,34 @@ def main() -> None:
subparsers = parser.add_subparsers(dest="command")
start_cmd = subparsers.add_parser("start", help="Start the node server")
start_cmd.add_argument("--tracker", default="http://localhost:8080", help="Tracker URL")
start_cmd.add_argument(
"--tracker", default="http://localhost:8080", help="Tracker URL"
)
start_cmd.add_argument("--port", type=int, default=7000, help="Port to listen on")
start_cmd.add_argument(
"--model", default="stub-model", help="Model preset to request from tracker"
)
start_cmd.add_argument(
"--host", default="0.0.0.0", help="Interface to bind to"
)
start_cmd.add_argument(
"--advertise-host",
help="Reachable host/IP to advertise to the tracker (defaults to FQDN when binding 0.0.0.0)",
)
args = parser.parse_args()
if args.command == "start":
from meshnet_node.server import StubNodeServer
from meshnet_node.startup import run_startup
node = StubNodeServer(port=args.port)
port = node.start()
print(f"meshnet-node listening on port {port}")
print(f"Tracker URL: {args.tracker}")
node = run_startup(
tracker_url=args.tracker,
port=args.port,
model=args.model,
host=args.host,
advertise_host=args.advertise_host,
)
try:
import time
while True:
time.sleep(1)
except KeyboardInterrupt: