{{ stats.totalUsers || 0 }}
用户
用户分布
已注册 API 用户总数
{{ stats.runningServices || 0 }}
运行中
服务状态
正在运行的服务实例
{{ stats.pendingServices || 0 }}
部署中
部署队列
正在部署的服务
{{ stats.failedServices || 0 }}
异常
异常告警
需要关注的服务
最近服务
最近创建的服务记录
暂无服务记录
| 服务名 | 用户 | 状态 | 创建时间 |
|---|---|---|---|
| {{ s.service_name }} | {{ s.username || '-' }} | {{ getSvcStatus(s) }} | {{ s.created_at }} |
API 用户
管理 API 访问用户
{{ u.username }}
暂无用户
| 用户名 | 显示名 | 部门 | 权限 | 服务数 | 创建时间 | 操作 |
|---|---|---|---|---|---|---|
| {{ u.dashboard_role === 'admin' ? '管理员' : (u.dashboard_role || '用户') }} | {{ u.service_count || 0 }} | {{ u.created_at }} |
服务管理
部署的服务实例
{{ u.username }}
{{ s.service_name }}
暂无服务
| 服务名 | 用户 | 架构 | CPU req | CPU lim | MEM req | MEM lim | 状态 | 更新时间 | 操作 |
|---|---|---|---|---|---|---|---|---|---|
| {{ s.service_name }} | {{ s.username || '-' }} | {{ tag }} - | {{ s.cpu_request || '-' }} | {{ s.cpu_limit || '-' }} | {{ s.memory_request || '-' }} | {{ s.memory_limit || '-' }} | {{ getSvcStatus(s) }} | {{ s.updated_at || s.created_at }} |
{{ clusterWarning }}
{{ clusterResources?.total_nodes || 0 }}
节点数
集群节点
当前运行的Worker节点
{{ clusterResources?.cpu_usage_percent || 0 }}%
CPU使用
{{ clusterResources?.requested_cpu || 0 }} / {{ clusterResources?.total_cpu_allocatable || 0 }} Core
已请求 / 可分配
{{ clusterResources?.memory_usage_percent || 0 }}%
内存使用
{{ clusterResources?.requested_memory_gb || 0 }} / {{ clusterResources?.total_memory_allocatable_gb || 0 }} GB
已请求 / 可分配
健康状态
{{ clusterResources?.health_status === 'healthy' ? '运行良好' : clusterResources?.health_status === 'moderate' ? '需要关注' : clusterResources?.health_status === 'warning' ? '建议扩容' : clusterResources?.health_status === 'critical' ? '紧急扩容' : '未知' }}
节点列表
暂无节点数据
| 节点名 | IP地址 | 状态 | CPU(可分配) | 内存(可分配) |
|---|---|---|---|---|
| {{ n.name }} | {{ n.ip || '-' }} | {{ n.status }} | {{ n.cpu_allocatable }} Core | {{ n.memory_allocatable.toFixed(1) }} GB |
趋势监控
Prometheus 指标趋势
时间范围
数据来源:Prometheus 实时查询
{{ promErr }}
监控图刷新中... {{ new Date().toLocaleTimeString() }}
CPU 使用率(%)
节点
Last
Max
{{ s.last }}
{{ s.max }}
内存 使用率(%)
节点
Last
Max
{{ s.last }}
{{ s.max }}
网络 接收
节点
Last
Max
{{ s.last }}
{{ s.max }}
网络 发送
节点
Last
Max
{{ s.last }}
{{ s.max }}
TCP 已建立连接数
节点
Last
Max
{{ s.last }}
{{ s.max }}
磁盘 使用率(%)
节点
Last
Max
{{ s.last }}
{{ s.max }}
设置项
系统日志
应用运行日志
部门管理
管理用户部门
邮件配置
配置SMTP邮件服务器
刷新Token
获取新的JWT Token
使用教程
Workbuddy Skill 使用说明
系统日志
{{ logs || '暂无日志' }}邮件服务器配置
部门管理
暂无部门
{{ d.name }}
JWT Token 管理
什么是 JWT Token?
JWT Token 是用户电脑的 AI 工具(如 workbuddy)调用本平台接口的身份凭证。每个用户拥有唯一 Token,调用 API 时需在请求头中携带 Authorization: Bearer <your_token>。
⚠️ 注意事项
- 刷新 Token 后,旧 Token 将立即失效
- 请妥善保管 Token,不要泄露给他人
- 若遗失 Token,请自行刷新并将新 Token 喂给本地电脑的 workbuddy 工具
✅ Token 已刷新
curl -H "Authorization: Bearer {{ refreshTokValue }}" \
http://<host>/api/v1/services
Skill 是什么?
Skill(tke-deploy.zip)是 workbuddy 的本地能力包,用于把你的工程打包上传到云端并自动完成构建、部署、开通访问地址。
使用步骤
- 准备 JWT Token:注册成功时会给你一段 JWT Token(请妥善保存)。如果忘记了,可以在“系统设置 → 刷新Token”里点击“刷新我的 Token”获取新的 Token,并点击“复制 Token”。
- 下载并安装 Skill:点击右上角“下载 Skill(tke-deploy.zip)”,然后在 workbuddy 里导入安装这个 zip(一般在“技能/Skill/扩展”里)。
- 正常用 workbuddy 写代码:你可以照常让 workbuddy 帮你生成/修改应用源代码。
- 开始部署:在 workbuddy 对话框输入
帮我部署服务。 - 第一次使用会让你填 Token:按提示把刚复制的 JWT Token 粘贴给 workbuddy(以后一般不需要重复填,除非你刷新了 Token)。
- 等待完成:workbuddy 会自动上传、构建并部署,最后返回访问地址。
一句话总结:先复制 Token → 安装 Skill → 在 workbuddy 里说“帮我部署服务”。
支持的工程目录结构(常见 4 种)
建议在工程目录中放置
project.yaml 描述工程结构,便于部署服务识别与分析。
前端:Vue / React / Static
后端:Flask / Django / FastAPI / Express / Spring Boot
数据库:SQLite
📌 框架 & 版本支持
| 类型 | 框架 | 支持版本 | 基础镜像 |
|---|---|---|---|
| 前端 | Vue | Node 18(默认),>= 10 | node:{version}-alpine → nginx:alpine |
| React | Node 18(默认),>= 10 | node:{version}-alpine → nginx:alpine | |
| Static | — | nginx:alpine | |
| 后端 | Flask | Python 3.9(默认),3.x 均支持 | python:{version}-slim |
| Django | Python 3.9(默认),3.x 均支持 | python:{version}-slim | |
| FastAPI | Python 3.9(默认),3.x 均支持 | python:{version}-slim | |
| Express | Node 18(默认),>= 10 | node:{version}-slim | |
| Spring Boot | Java 17(默认),>= 8 | openjdk:{version}-slim | |
| 数据库 | SQLite | SQLite 3(系统级安装) | 合并到后端容器 |
💡 通过 project.yaml 的 version 字段可指定版本(如 Python 3.11、Node 20、Java 21),未指定则使用默认版本。非法版本号(如 Node 3.9、Python 4.2)会自动回退到默认。
1)纯前端站点:
my-frontend/
├── project.yaml (推荐)
└── frontend/
├── package.json
└── src/
2)后端 + SQLite 数据库(纯后端):
SQLite 由平台自动检测并安装,无需手动配置。带 init.sql 时自动初始化数据库。
my-api/
├── project.yaml
├── backend/
│ ├── app.py / server.js / pom.xml ...
│ └── requirements.txt / package.json
└── database/ (可选)
├── init.sql
└── app.db (可选)
3)前端 + 后端 + SQLite 数据库(全栈):
my-fullstack/
├── project.yaml
├── frontend/
│ └── ...
├── backend/
│ └── ...
└── database/ (可选)
├── init.sql
└── app.db (可选)
如果没有 project.yaml,部署平台会自动检测:前端(package.json/vue/react/html)、后端(requirements.txt/app.py/manage.py/main.py/package.json/pom.xml/server.js)、数据库(.db/.sqlite/.sql)。SQLite 数据库由平台自动安装管理,后端代码中直接使用
sqlite3 /var/lib/data/app.db 即可。⚠️ 常见问题
- 若提示 Token 无效:请回到“刷新Token”重新刷新并在 workbuddy 更新 Token。
- 若部署失败:优先检查 project.yaml 格式和工程目录是否完整。
配置模板
{{ c.display_name }}
K8s 模板
请从左侧选择一个配置模板
{{ cfgItem.display_name }}
加载中...