一个适用于 new-api 的嵌入式模型状态页。
它会从 new-api 管理日志接口拉取请求数据,按模型和时间窗口聚合,然后输出一个适合放进 iframe 的状态监控页面。
适用场景:
- 你已经在使用
new-api - 你想做一个独立的状态页子站
- 你想把状态页嵌入到主站的
/about或其他页面
- 独立的
/embed嵌入页 - 按模型显示状态卡片
- 支持
1h / 6h / 12h / 24h时间窗口切换 - 自动刷新倒计时
- 时间分段状态方块
- 鼠标悬停 tooltip
- 支持从模型接口或日志中自动发现模型
- 支持通过环境变量限制显示的模型白名单
server.js:Node 服务端,负责聚合日志并提供接口public/embed.html:嵌入页入口public/styles.css:页面样式public/app.js:前端交互逻辑.env.example:环境变量示例Dockerfile:Docker 镜像构建文件docker-compose.yml:Docker Compose 启动文件
- 服务端请求
new-api的管理日志接口 - 分别拉取成功日志和错误日志
- 按模型名和时间桶进行聚合
- 输出给前端页面渲染
- 页面通过 iframe 嵌入其他站点
复制 .env.example 为 .env,然后填写:
PORT=8787
NEWAPI_BASE_URL=https://your-newapi-domain.example.com
NEWAPI_ACCESS_TOKEN=replace-with-admin-access-token
NEWAPI_USER_ID=1
NEWAPI_MODEL_LIST_API_KEY=
DEFAULT_WINDOW=6h
REFRESH_INTERVAL=60
CACHE_TTL_SECONDS=30
DISPLAY_MODELS=字段说明:
PORT:服务监听端口,默认8787NEWAPI_BASE_URL:你的new-api地址NEWAPI_ACCESS_TOKEN:管理员 Access Token,用于访问日志接口NEWAPI_USER_ID:管理员用户 ID,用于New-Api-User请求头NEWAPI_MODEL_LIST_API_KEY:普通 API key,可选,用于/v1/models模型发现DEFAULT_WINDOW:默认时间窗口,可选1h、6h、12h、24hREFRESH_INTERVAL:前端刷新间隔秒数CACHE_TTL_SECONDS:服务端缓存时间DISPLAY_MODELS:逗号分隔的模型白名单,可留空
git clone https://github.com/LFMJUN/newapi-status-embed.git在项目根目录创建 .env,填入你的真实配置。
cp .env.example .envcd ~/newapi-status-embed
docker compose up -ddocker compose ps
docker compose logs -f在服务器本机验证:
http://你的服务器ip:8787/embedhttp://你的服务器:8787/api/health
cd ~/newapi-status-embed
git pull
docker compose restart常见原因:
- 管理模型接口返回空列表
/v1/models需要普通 API key,不能用管理员 Access Token- 当前只有一个模型在最近日志里出现过
解决方式:
- 配置
NEWAPI_MODEL_LIST_API_KEY - 或者直接用
DISPLAY_MODELS指定模型白名单
