From f17f1f7bf0635e8e8d0ec4b545cc5affa24d6367 Mon Sep 17 00:00:00 2001 From: liuwei Date: Wed, 6 May 2026 14:49:55 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=98=E5=8E=9F=20Dashboard=20=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E5=87=AD=E6=8D=AE=E4=B8=8E=E7=A4=BA=E4=BE=8B=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 恢复后台 config.toml 中的默认管理员账号与 webhook token - 恢复 DashboardServer 中的默认账号兜底逻辑 - 同步还原后台 README 的默认登录说明 --- admin/dashboard/README.md | 9 ++++----- admin/dashboard/config.toml | 13 ++++--------- admin/dashboard/server.py | 28 ++++++---------------------- 3 files changed, 14 insertions(+), 36 deletions(-) diff --git a/admin/dashboard/README.md b/admin/dashboard/README.md index 156f063..35a6ecc 100644 --- a/admin/dashboard/README.md +++ b/admin/dashboard/README.md @@ -97,12 +97,11 @@ ABOT 管理后台是一个集成于主程序的 Web 应用,用于管理和监 管理后台随主程序自动启动,默认访问地址为:`http://服务器IP:8888` -默认示例配置位于 [config.toml](/d:/learn/abot/admin/dashboard/config.toml:1),公开仓库中已改为占位值。 +默认登录凭据: +- 用户名:admin +- 密码:admin123 -正式部署前请务必完成以下操作: -1. 修改管理员账号与密码 -2. 配置独立的 `secret_key` -3. 替换 webhook token +建议首次登录后立即修改默认密码,确保系统安全。 ## 注意事项 diff --git a/admin/dashboard/config.toml b/admin/dashboard/config.toml index 114d8dd..220abce 100644 --- a/admin/dashboard/config.toml +++ b/admin/dashboard/config.toml @@ -3,19 +3,14 @@ host = "0.0.0.0" port = 8888 [auth] -# 公开仓库中仅保留示例占位值: -# 1. 请在首次部署前改成你自己的管理员账号; -# 2. 更推荐通过环境变量或独立未跟踪配置覆盖; -# 3. 不再在仓库中保留弱口令,降低开源发布时的误用风险。 -username = "please_change_me" -password = "please_change_me" +username = "admin" +password = "admin123" [trendradar_webhook] # 是否启用 TrendRadar webhook 适配接口 enabled = true -# 固定 token(建议配置),支持请求头 X-Webhook-Token / query token / payload.token 三种传法。 -# 开源仓库中仅保留占位值,正式环境务必替换为高强度随机串。 -token = "please_change_me" +# 固定 token(建议配置),支持请求头 X-Webhook-Token / query token / payload.token 三种传法 +token = "watHcBbQIxtmyqGRSHKeTDRVjkHOceiRfFytUkQUwmV" # 默认推送目标群(可配置多个) default_group_ids = [] # 是否允许 payload 覆盖目标群(开启后可通过 target_group_ids/group_id 指定) diff --git a/admin/dashboard/server.py b/admin/dashboard/server.py index 619482e..9248d2d 100644 --- a/admin/dashboard/server.py +++ b/admin/dashboard/server.py @@ -32,13 +32,6 @@ sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '. class DashboardServer: """统计看板服务器""" - # 公开仓库默认占位值: - # 1. 不再把 admin / admin123 这类弱口令作为代码级兜底; - # 2. 当用户未显式配置后台账号时,系统仍可启动,但会强烈提示其先完成配置; - # 3. 这里保留固定占位串,主要用于避免 None/空串把旧逻辑带偏。 - SAFE_PLACEHOLDER_USERNAME = "please_change_me" - SAFE_PLACEHOLDER_PASSWORD = "please_change_me" - def __init__(self, host: str = None, port: int = None, username: str = None, password: str = None, robot_instance=None): @@ -48,8 +41,8 @@ class DashboardServer: # 优先使用传入的参数,其次使用配置文件中的参数 self.host = host or self.config.get("server", {}).get("host", "0.0.0.0") self.port = port or self.config.get("server", {}).get("port", 8888) - self.username = username or self.config.get("auth", {}).get("username", self.SAFE_PLACEHOLDER_USERNAME) - self.password = password or self.config.get("auth", {}).get("password", self.SAFE_PLACEHOLDER_PASSWORD) + self.username = username or self.config.get("auth", {}).get("username", "admin") + self.password = password or self.config.get("auth", {}).get("password", "admin123") self.LOG = logger self.LOG.info(f"Dashboard配置加载完成: 服务器将运行在 {self.host}:{self.port}") @@ -136,29 +129,20 @@ class DashboardServer: with open(config_path, 'r', encoding='utf-8') as f: return toml.load(f) else: - # 如果配置文件不存在,创建安全占位配置: - # 1. 公开仓库不再自动落地弱口令; - # 2. 保留最小可运行结构,避免因为缺文件直接崩溃; - # 3. 部署者看到占位值后,会更自然地完成首次替换。 + # 如果配置文件不存在,创建默认配置 default_config = { "server": {"host": "0.0.0.0", "port": 8888}, - "auth": { - "username": self.SAFE_PLACEHOLDER_USERNAME, - "password": self.SAFE_PLACEHOLDER_PASSWORD, - } + "auth": {"username": "admin", "password": "admin123"} } with open(config_path, 'w', encoding='utf-8') as f: toml.dump(default_config, f) return default_config except Exception as e: self.LOG.error(f"加载Dashboard配置文件失败: {e}") - # 返回默认配置兜底,但仍坚持使用安全占位值。 + # 返回默认配置 return { "server": {"host": "0.0.0.0", "port": 8888}, - "auth": { - "username": self.SAFE_PLACEHOLDER_USERNAME, - "password": self.SAFE_PLACEHOLDER_PASSWORD, - } + "auth": {"username": "admin", "password": "admin123"} } def _create_app(self) -> Flask: