MCPcopy
hub / github.com/AstrBotDevs/AstrBot / run

Method run

astrbot/dashboard/server.py:548–650  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

546 return True, resolved_ssl_config
547
548 def run(self):
549 ip_addr = []
550 dashboard_config = self.core_lifecycle.astrbot_config.get("dashboard", {})
551 port = (
552 os.environ.get("DASHBOARD_PORT")
553 or os.environ.get("ASTRBOT_DASHBOARD_PORT")
554 or dashboard_config.get("port", 6185)
555 )
556 host = (
557 os.environ.get("DASHBOARD_HOST")
558 or os.environ.get("ASTRBOT_DASHBOARD_HOST")
559 or dashboard_config.get("host", "0.0.0.0")
560 )
561 enable = dashboard_config.get("enable", True)
562 ssl_config = dashboard_config.get("ssl", {})
563 if not isinstance(ssl_config, dict):
564 ssl_config = {}
565 ssl_enable = _parse_env_bool(
566 os.environ.get("DASHBOARD_SSL_ENABLE")
567 or os.environ.get("ASTRBOT_DASHBOARD_SSL_ENABLE"),
568 bool(ssl_config.get("enable", False)),
569 )
570 resolved_ssl_config: dict[str, str] = {}
571 if ssl_enable:
572 ssl_enable, resolved_ssl_config = self._resolve_dashboard_ssl_config(
573 ssl_config,
574 )
575 scheme = "https" if ssl_enable else "http"
576
577 if not enable:
578 logger.info("WebUI disabled.")
579 return None
580
581 logger.info("Starting WebUI at %s://%s:%s", scheme, host, port)
582 if host == "0.0.0.0":
583 logger.info(
584 "WebUI listens on all interfaces. Check security. Set dashboard.host in data/cmd_config.json to change it.",
585 )
586
587 if host not in ["localhost", "127.0.0.1"]:
588 try:
589 ip_addr = get_local_ip_addresses()
590 except Exception as _:
591 pass
592 if isinstance(port, str):
593 port = int(port)
594
595 if self.check_port_in_use(port):
596 process_info = self.get_process_using_port(port)
597 logger.error(
598 f"错误:端口 {port} 已被占用\n"
599 f"占用信息: \n {process_info}\n"
600 f"请确保:\n"
601 f"1. 没有其他 AstrBot 实例正在运行\n"
602 f"2. 端口 {port} 没有被其他程序占用\n"
603 f"3. 如需使用其他端口,请修改配置文件",
604 )
605

Calls 10

check_port_in_useMethod · 0.95
get_local_ip_addressesFunction · 0.90
_parse_env_boolFunction · 0.85
infoMethod · 0.80
getMethod · 0.45
errorMethod · 0.45
appendMethod · 0.45