MCPcopy Create free account
hub / github.com/Datakitpage/Datakit / serve

Function serve

cli-python/datakit_local/cli.py:46–89  ·  view source on GitHub ↗

Start DataKit server

(port: Optional[int], host: str, no_open: bool, reload: bool)

Source from the content-addressed store, hash-verified

44@click.option("--no-open", is_flag=True, help="Don't open browser automatically")
45@click.option("--reload", is_flag=True, help="Enable auto-reload for development")
46def serve(port: Optional[int], host: str, no_open: bool, reload: bool):
47 """Start DataKit server"""
48 if port is None:
49 port = find_free_port()
50
51 click.echo("🚀 Starting DataKit...")
52
53 app = create_app()
54
55 # Print server info
56 url = f"http://{host}:{port}"
57 click.echo()
58 click.secho("✅ DataKit is running!", fg="green")
59 click.echo()
60 click.secho(f" Local: {url}", fg="cyan")
61 if host == "127.0.0.1":
62 click.secho(f" Network: http://0.0.0.0:{port}", fg="cyan")
63 click.echo()
64 click.secho(" Press Ctrl+C to stop the server", fg="bright_black")
65 click.echo()
66
67 # Open browser
68 if not no_open:
69 click.secho("🌐 Opening browser...", fg="blue")
70 try:
71 webbrowser.open(url)
72 except Exception:
73 click.secho("⚠️ Could not open browser automatically", fg="yellow")
74 click.secho(" Please navigate to the URL above manually", fg="bright_black")
75
76 # Start server
77 try:
78 uvicorn.run(
79 app,
80 host=host,
81 port=port,
82 reload=reload,
83 access_log=False,
84 log_level="error" if not reload else "info"
85 )
86 except KeyboardInterrupt:
87 click.echo()
88 click.secho("🛑 Shutting down DataKit...", fg="yellow")
89 click.secho("✅ DataKit stopped successfully", fg="green")
90
91
92@main.command()

Callers

nothing calls this directly

Calls 2

find_free_portFunction · 0.85
create_appFunction · 0.85

Tested by

no test coverage detected