# 2026-06-20 — 宝塔面板独立模块 ## 摘要 新增与「运维」菜单分离的 **宝塔面板** 分组及 10 个子页,后端 `/api/btpanel/*` 代理宝塔 API(签名 + Redis Cookie)并支持 SSH 生成 `tmp_token` 一键登录。 ## 动机 用户需在 Nexus 内统一管理子机宝塔:一键登录、监控、网站/域名/SSL/数据库/计划任务/服务启停,且**不并入**现有服务器、文件、调度页面。 ## 功能范围 | 编号 | 子菜单 | 说明 | |------|--------|------| | A1/A5 | 面板登录 | API `set_temp_login` 或 SSH `tools.py` | | B1–B3 | 系统监控 | GetSystemTotal / Disk / NetWork | | C1,C6 | 网站列表 | 列表 + 启停 | | C4 | 创建网站 | AddSite | | C10 | 域名管理 | AddDomain / DelDomain | | C15 | SSL 证书 | 列表 + SetSSL + apply_cert | | D1–D4 | 数据库 | 列表 / 创建 / 改密 / 备份 | | F1 | 计划任务 | GetCrontab 只读 | | H1 | 服务管理 | ServiceAdmin | | — | 连接配置 | `extra_attrs.bt_panel` 加密存 API Key | ## 涉及文件 - `server/infrastructure/btpanel/*` - `server/application/services/btpanel_service.py` - `server/api/btpanel.py`, `btpanel_schemas.py` - `server/main.py` - `frontend/src/pages/btpanel/*`, `components/btpanel/*`, `api/btpanel.ts` - `frontend/src/App.vue`, `router/index.ts` - `docs/design/specs/2026-06-20-btpanel-module-design.md` - `tests/test_btpanel_client.py` ## 迁移 / 重启 - 无 DB 迁移(凭据在 `servers.extra_attrs`) - 需重启 API 加载新路由 - 前端需 `vite build` ## 验证 ```bash pytest tests/test_btpanel_client.py -q cd frontend && npx vite build ``` 侧栏「宝塔面板」→ 各子页;先在「连接配置」填写面板地址与 API Key,并在子机白名单加入中心 IP。