EasyServer API 参考文档

版本: 1.0
基础路径: http://localhost:<port>/api
认证方式: JWT Bearer Token (在 Authorization 头中传递)
WebSocket 认证: 通过 Sec-WebSocket-Protocol 头传递 JWT Token


目录


统一响应格式

成功响应

{
  "code": 0,
  "message": "ok",
  "data": { ... }
}

分页响应

{
  "code": 0,
  "message": "ok",
  "data": {
    "items": [...],
    "total": 100
  }
}

错误响应

{
  "code": 40000,
  "message": "错误描述",
  "data": null
}

错误码说明

错误码 HTTP状态码 说明
0 200 成功
40000 400 请求参数错误
40100 401 未认证/认证失败
40101 401 Token 已过期
40300 403 禁止访问
40400 404 资源不存在
40900 409 资源冲突
42900 429 请求过于频繁
50000 500 服务器内部错误

认证说明

HTTP API 认证

大部分 API 需要在请求头中携带 JWT Token:

Authorization: Bearer <token>

WebSocket 认证

WebSocket 连接通过 Sec-WebSocket-Protocol 子协议传递 Token:

Sec-WebSocket-Protocol: token, <jwt-token>

公开接口

以下接口不需要认证:

  • GET /health
  • POST /api/auth/login
  • POST /api/auth/verify-totp
  • POST /api/auth/verify-backup

1. 通用

1.1 GET /health

描述: 健康检查
认证: 公开(无需认证)

请求参数: 无

响应示例:

{
  "status": "ok"
}

注意:此接口直接返回 JSON,不使用统一响应格式包装。


2. 认证

2.1 POST /api/auth/login

描述: 用户登录。如果用户启用了 TOTP 二次验证,将返回临时令牌用于 TOTP 验证。
认证: 公开

请求参数 (Request Body):

字段 类型 必填 说明
username string 用户名
password string 密码

响应示例 - 正常登录:

{
  "code": 0,
  "message": "ok",
  "data": {
    "token": "eyJhbGciOiJIUzI1NiIs...",
    "user": {
      "id": 1,
      "username": "admin",
      "role": "admin"
    },
    "must_change_pass": false
  }
}

响应示例 - 需要 TOTP 验证:

{
  "code": 0,
  "message": "ok",
  "data": {
    "requires_totp": true,
    "temp_token": "eyJhbGciOiJIUzI1NiIs..."
  }
}

错误码:

错误码 说明
40000 请求参数错误
40100 用户名或密码错误

2.2 POST /api/auth/verify-totp

描述: TOTP 二次验证(登录第二步)
认证: 公开(使用临时令牌)

请求参数 (Request Body):

字段 类型 必填 说明
temp_token string 登录时返回的临时令牌
code string TOTP 验证码(6位数字)

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "token": "eyJhbGciOiJIUzI1NiIs...",
    "user": {
      "id": 1,
      "username": "admin",
      "role": "admin"
    },
    "must_change_pass": false
  }
}

错误码:

错误码 说明
40000 请求参数错误
40100 临时令牌无效或已过期、TOTP 验证码无效

2.3 POST /api/auth/verify-backup

描述: 备用码验证(登录第二步,当 TOTP 不可用时使用)
认证: 公开(使用临时令牌)

请求参数 (Request Body):

字段 类型 必填 说明
temp_token string 登录时返回的临时令牌
backup_code string 备用验证码

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "token": "eyJhbGciOiJIUzI1NiIs...",
    "user": {
      "id": 1,
      "username": "admin",
      "role": "admin"
    },
    "must_change_pass": false
  }
}

错误码:

错误码 说明
40000 请求参数错误
40100 临时令牌无效、备用码无效
50000 验证备用码失败

2.4 POST /api/auth/logout

描述: 退出登录,将当前令牌加入黑名单并删除会话(前端未使用,由登录页面跳转替代)
认证: 需要 JWT

请求参数: 无(从 Authorization 头获取令牌)

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": null
}

2.5 GET /api/auth/me

描述: 获取当前登录用户的详细信息
认证: 需要 JWT

请求参数: 无

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "id": 1,
    "username": "admin",
    "role": "admin",
    "must_change_pass": false
  }
}

错误码:

错误码 说明
40100 未登录
50000 获取用户信息失败

2.6 POST /api/auth/change-password

描述: 修改当前用户密码。修改成功后会使所有已存在的令牌失效。
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
old_password string 旧密码
new_password string 新密码(最少 8 位)

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": null
}

错误码:

错误码 说明
40000 请求参数错误或旧密码不正确

2.7 POST /api/auth/totp/setup

描述: 生成 TOTP 设置信息(二维码 URL 和密钥),用于后续启用 2FA
认证: 需要 JWT

请求参数: 无

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "secret": "JBSWY3DPEHPK3PXP",
    "qr_url": "otpauth://totp/EasyServer:admin?secret=...",
    "issuer": "EasyServer"
  }
}

错误码:

错误码 说明
40000 TOTP 已启用,无需重复设置
50000 生成 TOTP 设置失败

2.8 POST /api/auth/totp/enable

描述: 启用 2FA(需要先调用 setup 获取密钥,然后提供验证码确认)
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
code string TOTP 验证码(用于确认密钥正确)

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "backup_codes": [
      "a1b2c3d4",
      "e5f6g7h8",
      "i9j0k1l2",
      "m3n4o5p6",
      "q7r8s9t0"
    ]
  }
}

错误码:

错误码 说明
40000 请先设置 TOTP 或验证码无效

2.9 POST /api/auth/totp/disable

描述: 禁用 2FA(需要提供当前密码确认)
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
password string 当前用户密码

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": null
}

错误码:

错误码 说明
40000 密码错误或禁用失败

2.10 GET /api/auth/totp/status

描述: 获取当前用户的 TOTP 启用状态
认证: 需要 JWT

请求参数: 无

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "enabled": true
  }
}

2.11 GET /api/auth/sessions

描述: 获取当前用户的所有活跃会话列表
认证: 需要 JWT

请求参数: 无

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": [
    {
      "token": "eyJhbGciOi...",
      "user_id": 1,
      "username": "admin",
      "ip": "192.168.1.100",
      "user_agent": "Mozilla/5.0 ...",
      "created_at": "2024-01-15T10:00:00Z",
      "expires_at": "2024-01-15T22:00:00Z"
    }
  ]
}

2.12 POST /api/auth/sessions/kick

描述: 踢出指定会话(不能踢出自己的当前会话)
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
token string 要踢出的会话令牌

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "message": "会话已踢出"
  }
}

错误码:

错误码 说明
40000 不能踢出自己的会话
40400 会话不存在

2.13 POST /api/auth/sessions/kick-all

描述: 踢出当前用户的所有其他会话(保留当前会话)
认证: 需要 JWT

请求参数: 无

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "message": "已踢出所有其他会话"
  }
}

3. 系统监控

3.1 GET /api/monitor/stats

描述: 获取当前系统状态快照(CPU、内存、磁盘、网络等)
认证: 需要 JWT

请求参数: 无

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "cpu_percent": 25.5,
    "memory_total": 8589934592,
    "memory_used": 4294967296,
    "memory_percent": 50.0,
    "disk_total": 107374182400,
    "disk_used": 53687091200,
    "disk_percent": 50.0,
    "net_rx_bytes": 1234567,
    "net_tx_bytes": 7654321,
    "uptime": 86400,
    "load1": 1.5,
    "load5": 1.2,
    "load15": 1.0,
    "timestamp": "2024-01-15T10:00:00Z"
  }
}

3.2 GET /api/monitor/history

描述: 获取历史监控数据(时间范围内的数据点)
认证: 需要 JWT

请求参数 (Query):

参数 类型 必填 默认值 说明
start string 1小时前 开始时间(RFC3339格式)
end string 当前时间 结束时间(RFC3339格式)

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "points": [
      {
        "cpu_percent": 20.0,
        "memory_percent": 45.0,
        "disk_percent": 50.0,
        "timestamp": "2024-01-15T09:00:00Z"
      }
    ]
  }
}

错误码:

错误码 说明
40000 无效的时间格式或时间范围

注意:最大查询范围为 7 天,超出范围会自动截断。


3.3 WS /ws/monitor

描述: WebSocket 实时监控数据流
认证: 需要 JWT(通过 Sec-WebSocket-Protocol 头传递)

连接方式:

ws://localhost:port/ws/monitor
Sec-WebSocket-Protocol: token, <jwt-token>

服务端推送消息格式:

{
  "type": "stats",
  "data": {
    "cpu_percent": 25.5,
    "memory_percent": 50.0,
    "timestamp": "2024-01-15T10:00:00Z"
  }
}

客户端发送心跳:

{"type": "ping"}

服务端回复:

{"type": "pong"}

4. 服务管理

4.1 GET /api/services

描述: 获取所有 systemd 服务列表
认证: 需要 JWT

请求参数: 无

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": [
    {
      "name": "nginx",
      "description": "nginx HTTP server",
      "load_state": "loaded",
      "active_state": "active",
      "sub_state": "running",
      "enabled": true
    }
  ]
}

4.2 POST /api/services/details

描述: 批量获取服务详细信息
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
names string[] 服务名称列表

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": [
    {
      "name": "nginx",
      "description": "nginx HTTP server",
      "load_state": "loaded",
      "active_state": "active",
      "sub_state": "running",
      "enabled": true
    }
  ]
}

4.4 GET /api/services/:name

描述: 获取指定服务的详细信息(前端未使用)
认证: 需要 JWT

路径参数:

参数 类型 说明
name string 服务名称(仅允许字母、数字、连字符、下划线)

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "name": "nginx",
    "description": "nginx HTTP server",
    "load_state": "loaded",
    "active_state": "active",
    "sub_state": "running",
    "enabled": true
  }
}

错误码:

错误码 说明
40000 无效的服务名称
40400 服务不存在

4.3 GET /api/services/:name/logs

描述: 获取指定服务的 systemd 日志
认证: 需要 JWT

路径参数:

参数 类型 说明
name string 服务名称

查询参数:

参数 类型 默认值 说明
tail int 100 返回的日志行数
since string - 起始时间过滤

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "lines": [
      "Jan 15 10:00:00 server nginx[1234]: started",
      "Jan 15 10:00:01 server nginx[1234]: ready"
    ]
  }
}

4.4 POST /api/services/:name/start

描述: 启动指定服务
认证: 需要 JWT

路径参数:

参数 类型 说明
name string 服务名称

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "name": "nginx",
    "state": "active"
  }
}

4.5 POST /api/services/:name/stop

描述: 停止指定服务
认证: 需要 JWT

路径参数:

参数 类型 说明
name string 服务名称

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "name": "nginx",
    "state": "inactive"
  }
}

错误码:

错误码 说明
40000 无法停止面板自身的服务

4.6 POST /api/services/:name/restart

描述: 重启指定服务
认证: 需要 JWT

路径参数:

参数 类型 说明
name string 服务名称

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "name": "nginx",
    "state": "active"
  }
}

错误码:

错误码 说明
40000 无法从此处重启面板自身服务,请使用 /api/settings/restart

4.7 POST /api/services/:name/enable

描述: 启用服务(开机自启)
认证: 需要 JWT

路径参数:

参数 类型 说明
name string 服务名称

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "name": "nginx",
    "enabled": true
  }
}

4.8 POST /api/services/:name/disable

描述: 禁用服务(取消开机自启)
认证: 需要 JWT

路径参数:

参数 类型 说明
name string 服务名称

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "name": "nginx",
    "enabled": false
  }
}

错误码:

错误码 说明
40000 无法禁用面板自身的服务

4.9 WS /ws/services/:name/logs

描述: WebSocket 实时服务日志流
认证: 需要 JWT(通过 Sec-WebSocket-Protocol 头传递)

路径参数:

参数 类型 说明
name string 服务名称

服务端推送消息格式:

{
  "type": "log",
  "data": {
    "time": "2024-01-15 10:00:00",
    "message": "nginx started",
    "priority": "info"
  }
}

5. 终端

5.1 GET /api/terminal/:id

描述: 终端会话检查(验证终端会话存在性)
认证: 需要 JWT

路径参数:

参数 类型 说明
id string 终端会话 ID

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": null
}

5.2 WS /ws/terminal/:id

描述: WebSocket 终端交互
认证: 需要 JWT(通过 Sec-WebSocket-Protocol 头传递)

路径参数:

参数 类型 说明
id string 终端会话 ID

交互协议: 基于 xterm.js,支持终端输入输出和窗口大小调整。


6. 文件管理

6.1 GET /api/files

描述: 列出指定目录下的文件和子目录
认证: 需要 JWT

查询参数:

参数 类型 必填 说明
path string 目录路径(相对于基础路径,为空则列出根目录)

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "path": "/home/user/files",
    "parent": "/home/user",
    "entries": [
      {
        "name": "file.txt",
        "path": "/home/user/files/file.txt",
        "is_dir": false,
        "size_bytes": 1024,
        "mode": "-rw-r--r--",
        "modified_at": "2024-01-15T10:00:00Z",
        "is_symlink": false
      }
    ]
  }
}

6.3 GET /api/files/download

描述: 下载文件
认证: 需要 JWT

查询参数:

参数 类型 必填 说明
path string 文件路径(相对于基础路径)

响应: 直接返回文件流(Content-Type: application/octet-stream)

错误码:

错误码 说明
40000 path 为空或路径是目录
40400 文件不存在

6.4 GET /api/files/content

描述: 读取文件内容(文本文件,最大 10MB)
认证: 需要 JWT

查询参数:

参数 类型 必填 说明
path string 文件路径

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "path": "/home/user/config.txt",
    "content": "file content here...",
    "encoding": "utf-8"
  }
}

错误码:

错误码 说明
40000 path 为空、是目录或文件过大

6.5 GET /api/files/search

描述: 按文件名搜索文件
认证: 需要 JWT

查询参数:

参数 类型 必填 默认值 说明
path string 基础路径 搜索起始目录
q string - 搜索关键词
limit int 100 最大返回结果数

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": [
    {
      "path": "/home/user/config.txt",
      "name": "config.txt",
      "is_dir": false,
      "size": 1024
    }
  ]
}

6.6 GET /api/files/search-content

描述: 按文件内容搜索(前端未使用)
认证: 需要 JWT

查询参数:

参数 类型 必填 默认值 说明
path string 基础路径 搜索起始目录
q string - 搜索文本
limit int 50 最大返回结果数

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": [
    {
      "path": "/home/user/config.txt",
      "name": "config.txt",
      "is_dir": false,
      "size": 1024,
      "match": "matching line content..."
    }
  ]
}

6.7 GET /api/files/details

描述: 获取文件详细信息
认证: 需要 JWT

查询参数:

参数 类型 必填 说明
path string 文件路径

错误码:

错误码 说明
40000 path 为空
40400 文件不存在

6.8 GET /api/files/mime-type

描述: 获取文件的 MIME 类型(前端未使用)
认证: 需要 JWT

查询参数:

参数 类型 必填 说明
path string 文件路径

6.9 POST /api/files/mkdir

描述: 创建目录
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
path string 目录路径(相对于基础路径)

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": null
}

6.10 POST /api/files/upload

描述: 上传文件
认证: 需要 JWT
Content-Type: multipart/form-data

表单字段:

字段 类型 必填 说明
file file 上传的文件
path string 目标路径(默认为根目录下的同名文件)

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "name": "uploaded.txt",
    "path": "/uploaded.txt",
    "size": 1024
  }
}

6.11 PUT /api/files/rename

描述: 重命名/移动文件
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
old_path string 原路径
new_path string 新路径

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": null
}

6.12 DELETE /api/files

描述: 删除文件或目录
认证: 需要 JWT

查询参数:

参数 类型 必填 说明
path string 文件/目录路径
recursive string 设为 “true” 递归删除目录

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": null
}

6.13 POST /api/files/move

描述: 移动文件到目标目录
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
paths string[] 要移动的文件路径列表
dest string 目标目录路径

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": null
}

6.14 POST /api/files/copy

描述: 复制文件
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
source string 源文件路径
dest string 目标文件路径

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": null
}

6.15 PUT /api/files/content

描述: 保存文件内容
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
path string 文件路径
content string 文件内容

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": null
}

6.16 POST /api/files/compress

描述: 压缩文件为 zip 归档(前端未使用)
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
sources string[] 要压缩的源文件路径列表
dest string 压缩文件目标路径

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": null
}

6.17 POST /api/files/extract

描述: 解压归档文件
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
source string 归档文件路径
dest string 解压目标目录

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": null
}

6.18 PUT /api/files/chmod

描述: 修改文件权限
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
path string 文件路径
mode string 权限模式(八进制,如 “0755”、”644”)

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": null
}

6.19 PUT /api/files/chown

描述: 修改文件所有者(前端未使用)
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
path string 文件路径
uid int 用户 ID
gid int 组 ID

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": null
}

7. 审计日志

7.1 GET /api/audit-logs

描述: 获取审计日志列表(分页 + 过滤)
认证: 需要 JWT

查询参数:

参数 类型 默认值 说明
page int 1 页码
page_size int 50 每页数量(最大 200)
username string - 用户名过滤(模糊匹配)
action string - 操作类型过滤(精确匹配)
resource string - 资源过滤(模糊匹配)
ip string - IP 过滤(模糊匹配)
start_date string - 开始日期
end_date string - 结束日期

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "total": 100,
    "items": [
      {
        "id": 1,
        "user_id": 1,
        "username": "admin",
        "action": "LOGIN_SUCCESS",
        "resource": "auth",
        "detail": "User logged in successfully",
        "ip": "192.168.1.100",
        "user_agent": "Mozilla/5.0 ...",
        "created_at": "2024-01-15 10:00:00"
      }
    ]
  }
}

7.2 GET /api/audit-logs/actions

描述: 获取所有不同的操作类型列表(前端未使用)
认证: 需要 JWT

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": [
    "LOGIN_SUCCESS",
    "LOGIN_FAILED",
    "LOGOUT",
    "PASSWORD_CHANGED"
  ]
}

7.3 GET /api/audit-logs/stats

描述: 获取审计日志统计信息
认证: 需要 JWT

查询参数:

参数 类型 默认值 说明
days int 7 统计天数(最大 90)

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "user_stats": [
      {"username": "admin", "count": 50}
    ],
    "action_stats": [
      {"action": "LOGIN_SUCCESS", "count": 30}
    ],
    "day_stats": [
      {"day": "2024-01-15", "count": 15}
    ],
    "status_stats": [
      {"status": "2xx", "count": 100},
      {"status": "4xx", "count": 5}
    ],
    "alerts": [
      {
        "id": 1,
        "username": "admin",
        "action": "API_CALL",
        "resource": "/api/settings",
        "status": 400,
        "ip": "192.168.1.100",
        "created_at": "2024-01-15 10:00:00"
      }
    ]
  }
}

7.4 GET /api/audit-logs/clean-policy

描述: 获取审计日志清理策略(前端未使用)
认证: 需要 JWT

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "retention_days": 90,
    "total_records": 1500,
    "auto_clean": true
  }
}

7.5 GET /api/audit-logs/export

描述: 导出审计日志为 CSV 文件
认证: 需要 JWT

查询参数: 同 GET /api/audit-logs(不含分页参数)

响应: 返回 CSV 文件流(Content-Type: text/csv),最多导出 10000 条记录。


7.6 DELETE /api/audit-logs/clean

描述: 清理旧的审计日志记录
认证: 需要 JWT

查询参数:

参数 类型 默认值 说明
days int 90 删除多少天前的日志

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "deleted": 500
  }
}

8. 系统设置

8.1 GET /api/settings

描述: 获取当前系统设置(敏感字段会被脱敏)
认证: 需要 JWT

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "server": {
      "port": 8080,
      "host": "0.0.0.0",
      "serve_frontend": true,
      "tls_enabled": false
    },
    "auth": {
      "session_timeout": "12h0m0s",
      "idle_timeout": "30m0s",
      "max_login_attempts": 5,
      "lockout_duration": "15m0s",
      "rate_limit": 60,
      "rate_interval": "1m0s"
    },
    "monitor": {
      "history_retention": "168h0m0s",
      "collect_interval": "10s"
    },
    "database": {
      "path": "/***/easyserver.db"
    },
    "audit": {
      "enabled": true,
      "log_path": ""
    },
    "notify": {
      "enabled": false,
      "webhook_url": "https://example.com/***"
    },
    "tencentcloud": {
      "enabled": false,
      "region": "ap-guangzhou",
      "instance_id": "",
      "has_secret": false
    }
  }
}

8.2 GET /api/settings/system

描述: 获取系统信息(版本、操作系统、运行时间等)
认证: 需要 JWT


8.3 PUT /api/settings/server

描述: 更新服务器配置
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
port int 监听端口(1-65535)
host string 监听地址
serve_frontend bool 是否提供前端静态文件服务

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "message": "服务器配置已更新",
    "requires_restart": true
  }
}

错误码:

错误码 说明
40000 端口超范围或主机名为空/过长

8.4 PUT /api/settings/tls

描述: 更新 TLS/SSL 证书配置
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
enabled bool 是否启用 HTTPS
cert_content string 证书内容(PEM 格式)
key_content string 私钥内容(PEM 格式)

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "requires_restart": true,
    "cert_info": {
      "domain": "example.com",
      "issuer": "Let's Encrypt",
      "expires_at": "2025-01-15T10:00:00Z"
    }
  }
}

8.5 PUT /api/settings/auth

描述: 更新认证配置
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
session_timeout string 会话超时时间(Go duration 格式,最少 5m)
idle_timeout string 空闲超时时间(最少 1m)
max_login_attempts int 最大登录尝试次数(3-100)
lockout_duration string 锁定时间(1m-24h)
rate_limit int 速率限制请求数(最少 10)
rate_interval string 速率限制时间窗口(最少 1s)

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "message": "认证配置已更新"
  }
}

8.5 PUT /api/settings/monitor

描述: 更新监控配置
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
history_retention string 历史数据保留时间(1m-8760h)
collect_interval string 数据采集间隔(1s-1h)

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "message": "监控配置已更新"
  }
}

8.6 PUT /api/settings/audit

描述: 更新审计配置
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
enabled bool 是否启用审计日志

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "message": "审计配置已更新"
  }
}

8.7 PUT /api/settings/notify

描述: 更新通知配置
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
enabled bool 是否启用通知
webhook_url string Webhook URL(http/https)

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "message": "通知配置已更新"
  }
}

8.8 POST /api/settings/notify/test

描述: 测试 Webhook 通知
认证: 需要 JWT

请求参数: 无

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "message": "测试通知已发送"
  }
}

错误码:

错误码 说明
40000 请先配置 Webhook URL
50000 测试通知失败

8.9 GET /api/alerts/rules

描述: 获取告警规则列表
认证: 需要 JWT

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "rules": [
      {
        "name": "high_cpu",
        "metric": "cpu_percent",
        "threshold": 90,
        "duration": "5m",
        "enabled": true
      }
    ]
  }
}

8.10 PUT /api/alerts/rules

描述: 更新告警规则
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
rules array 告警规则数组

8.11 PUT /api/settings/cloud

描述: 更新腾讯云配置
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
enabled bool 是否启用腾讯云功能
secret_id string 腾讯云 SecretID
secret_key string 腾讯云 SecretKey
region string 地域(如 ap-guangzhou、ap-shanghai 等)
instance_id string 实例 ID

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "message": "云配置已更新"
  }
}

错误码:

错误码 说明
40000 无效的地域

8.12 POST /api/settings/cloud/test

描述: 测试腾讯云连接
认证: 需要 JWT

请求参数: 无

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "message": "连接成功",
    "instance_count": 3
  }
}

错误码:

错误码 说明
40000 请先配置 SecretID 和 SecretKey
50000 连接失败

8.13 POST /api/settings/restart

描述: 重启面板服务
认证: 需要 JWT

请求参数: 无

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "message": "面板正在重启..."
  }
}

9. 系统信息

9.1 GET /api/system/ssh-logins

描述: 获取 SSH 登录历史记录
认证: 需要 JWT

查询参数:

参数 类型 默认值 说明
limit int 50 返回记录数

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "records": [
      {
        "user": "root",
        "ip": "192.168.1.100",
        "time": "2024-01-15 10:00:00",
        "status": "accepted"
      }
    ]
  }
}

9.2 GET /api/system/ssh-config

描述: 获取系统 SSH 配置信息(前端未使用,SSH 配置通过 /api/ssh/config 管理)
认证: 需要 JWT


9.3 GET /api/system/check-port

描述: 检查单个端口是否可用
认证: 需要 JWT

查询参数:

参数 类型 必填 说明
port int 端口号

9.4 GET /api/system/check-ports

描述: 批量检查端口可用性(前端未使用)
认证: 需要 JWT

查询参数:

参数 类型 必填 说明
ports string 端口列表(逗号分隔,如 “80,443,8080”)

9.5 GET /api/system/ports

描述: 获取系统监听端口列表
认证: 需要 JWT

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "total": 10,
    "ports": [
      {
        "protocol": "tcp",
        "port": 80,
        "local_addr": "0.0.0.0:80",
        "state": "LISTEN",
        "pid": 1234,
        "process_name": "nginx",
        "user": "root"
      }
    ]
  }
}

10. 腾讯云

10.1 GET /api/cloud/instances

描述: 获取腾讯云实例列表
认证: 需要 JWT

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "instances": [
      {
        "instance_id": "ins-xxxxx",
        "instance_name": "MyServer",
        "status": "RUNNING",
        "public_ip": "1.2.3.4",
        "private_ip": "10.0.0.1",
        "cpu": 2,
        "memory": 4,
        "os_name": "Ubuntu 22.04"
      }
    ],
    "total_count": 1
  }
}

10.2 GET /api/cloud/instances/:id

描述: 获取指定实例详情(前端未使用)
认证: 需要 JWT

路径参数:

参数 类型 说明
id string 实例 ID

错误码:

错误码 说明
40000 instance id 为空
40400 实例不存在或云服务未启用

10.3 GET /api/cloud/monitor/:id

描述: 获取实例监控数据
认证: 需要 JWT

路径参数:

参数 类型 说明
id string 实例 ID

查询参数:

参数 类型 默认值 说明
metric string - 监控指标(CPUUsage、MemoryUsage 等)
start string 1小时前 开始时间(RFC3339)
end string 当前时间 结束时间(RFC3339)

10.4 GET /api/cloud/firewall/:id

描述: 获取实例的防火墙规则
认证: 需要 JWT

路径参数:

参数 类型 说明
id string 实例 ID

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "rules": [
      {
        "policy": "ACCEPT",
        "port": "80",
        "protocol": "tcp",
        "cidr_block": "0.0.0.0/0"
      }
    ]
  }
}

10.5 GET /api/cloud/snapshots

描述: 获取快照列表
认证: 需要 JWT

查询参数:

参数 类型 必填 说明
instance_id string 实例 ID

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "snapshots": [
      {
        "snapshot_id": "snap-xxxxx",
        "snapshot_name": "backup-20240115",
        "status": "NORMAL",
        "created_at": "2024-01-15T10:00:00Z"
      }
    ]
  }
}

10.6 GET /api/cloud/traffic

描述: 获取实例流量信息
认证: 需要 JWT

查询参数:

参数 类型 必填 说明
instance_id string 实例 ID

10.7 POST /api/cloud/instances/:id/start

描述: 启动腾讯云实例
认证: 需要 JWT

路径参数:

参数 类型 说明
id string 实例 ID

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "instance_id": "ins-xxxxx",
    "state": "STARTING"
  }
}

10.8 POST /api/cloud/instances/:id/stop

描述: 停止腾讯云实例
认证: 需要 JWT

路径参数:

参数 类型 说明
id string 实例 ID

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "instance_id": "ins-xxxxx",
    "state": "STOPPING"
  }
}

错误码:

错误码 说明
40000 无法停止运行面板的当前实例

10.9 POST /api/cloud/instances/:id/restart

描述: 重启腾讯云实例
认证: 需要 JWT

路径参数:

参数 类型 说明
id string 实例 ID

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "instance_id": "ins-xxxxx",
    "state": "REBOOTING"
  }
}

错误码:

错误码 说明
40000 无法重启运行面板的当前实例,请使用 /api/settings/restart

10.10 POST /api/cloud/firewall/:id

描述: 添加实例防火墙规则
认证: 需要 JWT

路径参数:

参数 类型 说明
id string 实例 ID

请求参数 (Request Body):

字段 类型 必填 说明
port string 端口(如 “80”、”443”、”8000-9000”、”ALL”)
protocol string 协议(tcp、udp)
action string 策略(ACCEPT、DROP)
cidr_block string 源 IP/CIDR

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": null
}

错误码:

错误码 说明
40000 端口为空或不能在当前实例上封锁面板端口

10.11 DELETE /api/cloud/firewall/:id/:ruleId

描述: 删除实例防火墙规则
认证: 需要 JWT

路径参数:

参数 类型 说明
id string 实例 ID
ruleId string 规则 ID

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": null
}

10.12 POST /api/cloud/snapshots

描述: 创建快照
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
instance_id string 实例 ID
name string 快照名称

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": null
}

10.13 POST /api/cloud/snapshots/:id/apply

描述: 回滚快照
认证: 需要 JWT

路径参数:

参数 类型 说明
id string 快照 ID

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "snapshot_id": "snap-xxxxx",
    "status": "APPLYING"
  }
}

11. 部署管理

11.1 GET /api/deploy/servers

描述: 获取部署服务器列表
认证: 需要 JWT

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": [
    {
      "id": 1,
      "name": "Production",
      "host": "192.168.1.100",
      "port": 22,
      "username": "deploy",
      "auth_type": "key",
      "status": "online",
      "last_ping": "2024-01-15 10:00:00",
      "created_at": "2024-01-01 00:00:00"
    }
  ]
}

注意:auth_data 字段不会返回给客户端。


11.2 POST /api/deploy/servers

描述: 创建部署服务器
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
name string 服务器名称
host string 主机地址
port int SSH 端口(1-65535)
username string SSH 用户名
auth_type string 认证类型(”password” 或 “key”)
auth_data string 密码或密钥路径

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "id": 1,
    "name": "Production",
    "host": "192.168.1.100",
    "port": 22,
    "username": "deploy",
    "auth_type": "key",
    "auth_data": "",
    "status": "unknown"
  }
}

错误码:

错误码 说明
40000 参数校验失败(名称/主机/端口/用户名/认证类型/认证数据)

11.3 GET /api/deploy/servers/:id

描述: 获取部署服务器详情
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 服务器 ID

错误码:

错误码 说明
40000 无效的服务器 ID
40400 服务器不存在

11.4 PUT /api/deploy/servers/:id

描述: 更新部署服务器
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 服务器 ID

请求参数 (Request Body): 同创建接口


11.5 DELETE /api/deploy/servers/:id

描述: 删除部署服务器
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 服务器 ID

错误码:

错误码 说明
40900 存在关联的任务或版本记录

11.6 POST /api/deploy/servers/:id/test

描述: 测试部署服务器 SSH 连接
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 服务器 ID

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "status": "online"
  }
}

11.7 GET /api/deploy/tasks

描述: 获取部署任务列表
认证: 需要 JWT

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": [
    {
      "id": 1,
      "server_id": 1,
      "server_name": "Production",
      "name": "deploy-frontend",
      "type": "sync",
      "source_path": "/build/dist",
      "dest_path": "/var/www/html",
      "command": "",
      "status": "success",
      "result": "",
      "created_at": "2024-01-15 10:00:00"
    }
  ]
}

11.8 POST /api/deploy/tasks

描述: 创建部署任务
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
name string 任务名称
server_id int 目标服务器 ID
type string 任务类型(”sync”、”command”、”rollback”)
source_path string 源路径(sync 类型时需要)
dest_path string 目标路径
command string 命令(command 类型时需要)

错误码:

错误码 说明
40000 参数校验失败
40400 服务器不存在

11.9 GET /api/deploy/tasks/:id

描述: 获取部署任务详情
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 任务 ID

11.10 DELETE /api/deploy/tasks/:id

描述: 删除部署任务
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 任务 ID

11.11 POST /api/deploy/tasks/:id/exec

描述: 执行部署任务
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 任务 ID

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "status": "executing"
  }
}

错误码:

错误码 说明
40900 任务已在执行中

11.12 GET /api/deploy/versions

描述: 获取部署版本列表
认证: 需要 JWT

查询参数:

参数 类型 必填 说明
server_id int 服务器 ID

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": [
    {
      "id": 1,
      "server_id": 1,
      "server_name": "Production",
      "task_id": 1,
      "version": "v1.0.0",
      "files": "[\"index.html\",\"app.js\"]",
      "backup_path": "/backups/v1.0.0",
      "created_at": "2024-01-15 10:00:00"
    }
  ]
}

11.13 POST /api/deploy/versions/:id/rollback

描述: 回滚到指定版本
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 版本 ID

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "status": "rolling_back"
  }
}

12. 运行环境

12.1 GET /api/runtime

描述: 获取已安装的运行环境列表
认证: 需要 JWT

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": [
    {
      "id": 1,
      "name": "node",
      "version": "18.17.0",
      "path": "/usr/local/node-18.17.0",
      "is_default": true,
      "installed_at": "2024-01-15 10:00:00"
    }
  ]
}

12.2 GET /api/runtime/:name

描述: 获取指定运行环境的已安装版本列表
认证: 需要 JWT

路径参数:

参数 类型 说明
name string 运行环境名称(如 node、python、go、java)

12.3 GET /api/runtime/:name/remote-versions

描述: 获取指定运行环境的远程可用版本列表
认证: 需要 JWT

路径参数:

参数 类型 说明
name string 运行环境名称

12.4 POST /api/runtime/install

描述: 安装运行环境
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
name string 运行环境名称
version string 版本号

12.4 POST /api/runtime/uninstall

描述: 卸载运行环境
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
name string 运行环境名称
version string 版本号

12.5 POST /api/runtime/set-default

描述: 设置运行环境默认版本
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
name string 运行环境名称
version string 版本号

12.8 GET /api/runtime/progress/:id

描述: 获取安装/卸载进度
认证: 需要 JWT

路径参数:

参数 类型 说明
id string 操作 ID

12.10 GET /api/runtime/logs/:id

描述: 获取安装日志
认证: 需要 JWT

路径参数:

参数 类型 说明
id string 操作 ID

12.11 GET /api/runtime/cleanup/:id

描述: 获取卸载清理信息
认证: 需要 JWT

路径参数:

参数 类型 说明
id string 运行环境 ID

12.12 GET /api/runtime/catalog

描述: 获取支持的运行环境目录列表
认证: 需要 JWT


12.13 GET /api/packages

描述: 获取已安装的包列表
认证: 需要 JWT


12.18 GET /api/packages/search

描述: 搜索包
认证: 需要 JWT

查询参数:

参数 类型 必填 说明
name string 包管理器名称(npm、pip、go)
q string 搜索关键词

12.19 GET /api/packages/versions/{name}

描述: 获取包的可用版本列表
认证: 需要 JWT

路径参数:

参数 类型 说明
name string 包名称(支持路径格式,如 npm/express)

12.20 POST /api/packages/install

描述: 安装包
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
name string 包管理器名称
package string 包名
version string 版本号

12.21 POST /api/packages/uninstall

描述: 卸载包
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
name string 包管理器名称
package string 包名

12.22 POST /api/packages/update

描述: 更新包
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
name string 包管理器名称
package string 包名

12.23 GET /api/packages/registry

描述: 获取包管理器的镜像源配置
认证: 需要 JWT

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "npm": "https://registry.npmmirror.com",
    "pip": "https://pypi.tuna.tsinghua.edu.cn/simple"
  }
}

12.24 POST /api/packages/registry

描述: 设置包管理器的镜像源
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
name string 包管理器名称(npm、pip、go)
url string 镜像源 URL

13. 环境配置

13.1 GET /api/env-config

描述: 获取环境配置列表
认证: 需要 JWT

查询参数:

参数 类型 必填 说明
runtime_id int 按运行环境过滤

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "configs": [
      {
        "id": 1,
        "name": "NODE_ENV",
        "value": "production",
        "runtime_id": 0,
        "is_global": true
      }
    ]
  }
}

13.2 GET /api/env-config/:id

描述: 获取环境配置详情
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 配置 ID

13.3 POST /api/env-config

描述: 创建环境配置
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
name string 变量名
value string 变量值
runtime_id int 运行环境 ID(0 表示全局)
is_global bool 是否全局

13.4 PUT /api/env-config/:id

描述: 更新环境配置
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 配置 ID

请求参数 (Request Body):

字段 类型 必填 说明
name string 变量名
value string 变量值

13.5 DELETE /api/env-config/:id

描述: 删除环境配置
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 配置 ID

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "message": "删除成功"
  }
}

13.6 GET /api/env-config/path

描述: 获取 PATH 条目列表
认证: 需要 JWT

查询参数:

参数 类型 必填 说明
runtime_id int 按运行环境过滤

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "entries": [
      {
        "id": 1,
        "path": "/usr/local/node-18.17.0/bin",
        "runtime_id": 1,
        "is_global": false
      }
    ]
  }
}

13.7 POST /api/env-config/path

描述: 创建 PATH 条目
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
path string 路径
runtime_id int 运行环境 ID
is_global bool 是否全局

13.8 PUT /api/env-config/path/:id

描述: 更新 PATH 条目
认证: 需要 JWT

路径参数:

参数 类型 说明
id int PATH 条目 ID

请求参数 (Request Body):

字段 类型 必填 说明
path string 路径
runtime_id int 运行环境 ID

13.9 DELETE /api/env-config/path/:id

描述: 删除 PATH 条目
认证: 需要 JWT

路径参数:

参数 类型 说明
id int PATH 条目 ID

13.9 GET /api/env-config/script

描述: 生成环境变量设置脚本
认证: 需要 JWT

查询参数:

参数 类型 必填 说明
runtime_id int 按运行环境过滤

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "script": "export NODE_ENV=production\nexport PATH=/usr/local/node-18.17.0/bin:$PATH\n"
  }
}

14. Web服务器

14.1 GET /api/web-servers/project-types

描述: 获取支持的项目类型列表
认证: 需要 JWT


14.2 GET /api/web-servers/browse

描述: 浏览服务器目录
认证: 需要 JWT

查询参数:

参数 类型 必填 说明
path string 浏览路径

14.3 GET /api/web-servers/validate-path

描述: 验证路径是否有效
认证: 需要 JWT

查询参数:

参数 类型 必填 说明
path string 要验证的路径

14.4 GET /api/web-servers

描述: 获取 Web 服务器列表
认证: 需要 JWT

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": [
    {
      "id": 1,
      "name": "nginx",
      "display_name": "Nginx",
      "status": "running",
      "version": "1.24.0"
    }
  ]
}

14.5 GET /api/web-servers/:id

描述: 获取 Web 服务器详情
认证: 需要 JWT

路径参数:

参数 类型 说明
id int Web 服务器 ID

14.6 POST /api/web-servers

描述: 创建 Web 服务器(基于预定义模板,前端未使用)
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
name string 服务器类型名称(如 nginx、apache、caddy)
display_name string 显示名称
description string 描述

错误码:

错误码 说明
40000 名称格式无效或未知的服务器类型

14.7 DELETE /api/web-servers/:id

描述: 删除 Web 服务器(前端未使用)
认证: 需要 JWT

路径参数:

参数 类型 说明
id int Web 服务器 ID

14.8 POST /api/web-servers/:id/install

描述: 安装 Web 服务器
认证: 需要 JWT

路径参数:

参数 类型 说明
id int Web 服务器 ID

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "message": "已安装"
  }
}

14.9 POST /api/web-servers/:id/uninstall

描述: 卸载 Web 服务器
认证: 需要 JWT

路径参数:

参数 类型 说明
id int Web 服务器 ID

14.10 POST /api/web-servers/:id/start

描述: 启动 Web 服务器
认证: 需要 JWT

路径参数:

参数 类型 说明
id int Web 服务器 ID

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "status": "running"
  }
}

14.11 POST /api/web-servers/:id/stop

描述: 停止 Web 服务器
认证: 需要 JWT

路径参数:

参数 类型 说明
id int Web 服务器 ID

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "status": "stopped"
  }
}

14.12 POST /api/web-servers/:id/restart

描述: 重启 Web 服务器
认证: 需要 JWT

路径参数:

参数 类型 说明
id int Web 服务器 ID

14.13 GET /api/web-servers/:id/status

描述: 获取 Web 服务器状态
认证: 需要 JWT

路径参数:

参数 类型 说明
id int Web 服务器 ID

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "status": "running",
    "version": "1.24.0"
  }
}

14.14 POST /api/web-servers/:id/reload

描述: 重载 Web 服务器配置
认证: 需要 JWT

路径参数:

参数 类型 说明
id int Web 服务器 ID

14.15 GET /api/web-servers/:id/test-config

描述: 测试 Web 服务器配置文件
认证: 需要 JWT

路径参数:

参数 类型 说明
id int Web 服务器 ID

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "valid": true,
    "message": "配置文件语法正确"
  }
}

14.16 GET /api/web-servers/:id/config

描述: 获取 Web 服务器配置文件内容
认证: 需要 JWT

路径参数:

参数 类型 说明
id int Web 服务器 ID

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "content": "server {\n    listen 80;\n    ...\n}"
  }
}

14.17 PUT /api/web-servers/:id/config

描述: 保存 Web 服务器配置文件
认证: 需要 JWT

路径参数:

参数 类型 说明
id int Web 服务器 ID

请求参数 (Request Body):

字段 类型 必填 说明
content string 配置文件内容

14.18 GET /api/web-servers/:id/logs

描述: 获取 Web 服务器服务日志
认证: 需要 JWT

路径参数:

参数 类型 说明
id int Web 服务器 ID

查询参数:

参数 类型 默认值 说明
lines int 100 返回行数

14.19 POST /api/web-servers/:id/auto-start

描述: 设置 Web 服务器开机自启(前端未使用)
认证: 需要 JWT

路径参数:

参数 类型 说明
id int Web 服务器 ID

请求参数 (Request Body):

字段 类型 必填 说明
enabled bool 是否启用自启

14.20 GET /api/web-servers/:id/process

描述: 获取 Web 服务器进程信息
认证: 需要 JWT

路径参数:

参数 类型 说明
id int Web 服务器 ID

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "pid": 1234,
    "memory_bytes": 10485760,
    "uptime": "2d 3h 15m"
  }
}

14.21 GET /api/web-servers/:id/websites

描述: 获取 Web 服务器下的网站列表
认证: 需要 JWT

路径参数:

参数 类型 说明
id int Web 服务器 ID

14.22 GET /api/web-servers/:id/websites/:wid

描述: 获取网站详情(前端未使用)
认证: 需要 JWT

路径参数:

参数 类型 说明
id int Web 服务器 ID
wid int 网站 ID

14.23 POST /api/web-servers/:id/websites

描述: 创建网站
认证: 需要 JWT

路径参数:

参数 类型 说明
id int Web 服务器 ID

请求参数 (Request Body):

字段 类型 必填 说明
domain string 域名
root_path string 网站根目录
其他配置字段

14.24 PUT /api/web-servers/:id/websites/:wid

描述: 更新网站配置
认证: 需要 JWT

路径参数:

参数 类型 说明
id int Web 服务器 ID
wid int 网站 ID

14.25 DELETE /api/web-servers/:id/websites/:wid

描述: 删除网站
认证: 需要 JWT

路径参数:

参数 类型 说明
id int Web 服务器 ID
wid int 网站 ID

14.26 POST /api/web-servers/:id/websites/:wid/enable

描述: 启用网站
认证: 需要 JWT

路径参数:

参数 类型 说明
id int Web 服务器 ID
wid int 网站 ID

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "status": "active"
  }
}

14.27 POST /api/web-servers/:id/websites/:wid/disable

描述: 禁用网站
认证: 需要 JWT

路径参数:

参数 类型 说明
id int Web 服务器 ID
wid int 网站 ID

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "status": "disabled"
  }
}

14.28 GET /api/web-servers/:id/websites/:wid/logs

描述: 获取网站日志
认证: 需要 JWT

路径参数:

参数 类型 说明
id int Web 服务器 ID
wid int 网站 ID

查询参数:

参数 类型 默认值 说明
type string access 日志类型(access/error)
lines int 200 返回行数

14.29 POST /api/web-servers/:id/websites/:wid/ssl

描述: 申请/配置网站 SSL 证书
认证: 需要 JWT

路径参数:

参数 类型 说明
id int Web 服务器 ID
wid int 网站 ID

15. 数据库管理

15.1 GET /api/db-servers

描述: 获取数据库服务器列表
认证: 需要 JWT

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": [
    {
      "id": 1,
      "name": "mysql",
      "type": "mysql",
      "status": "running"
    }
  ]
}

15.2 GET /api/db-servers/:id

描述: 获取数据库服务器详情
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 数据库服务器 ID

15.3 GET /api/db-servers/:id/version-templates

描述: 获取数据库版本安装模板
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 数据库服务器 ID

15.4 GET /api/db-servers/:id/versions

描述: 获取数据库服务器的已安装版本列表
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 数据库服务器 ID

15.5 POST /api/db-servers/:id/versions

描述: 安装数据库版本
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 数据库服务器 ID

15.6 DELETE /api/db-servers/versions/:vid

描述: 卸载数据库版本
认证: 需要 JWT

路径参数:

参数 类型 说明
vid int 版本 ID

15.7 POST /api/db-servers/versions/:vid/start

描述: 启动数据库版本
认证: 需要 JWT

路径参数:

参数 类型 说明
vid int 版本 ID

15.8 POST /api/db-servers/versions/:vid/stop

描述: 停止数据库版本
认证: 需要 JWT

路径参数:

参数 类型 说明
vid int 版本 ID

15.9 POST /api/db-servers/versions/:vid/restart

描述: 重启数据库版本
认证: 需要 JWT

路径参数:

参数 类型 说明
vid int 版本 ID

15.10 PUT /api/db-servers/versions/:vid/port

描述: 更新数据库版本监听端口
认证: 需要 JWT

路径参数:

参数 类型 说明
vid int 版本 ID

请求参数 (Request Body):

字段 类型 必填 说明
port int 新端口号

15.11 GET /api/db-servers/versions/:vid/logs

描述: 获取数据库版本日志
认证: 需要 JWT

路径参数:

参数 类型 说明
vid int 版本 ID

15.12 GET /api/db-servers/:id/databases

描述: 获取数据库列表
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 数据库服务器 ID

15.13 POST /api/db-servers/:id/databases

描述: 创建数据库
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 数据库服务器 ID

请求参数 (Request Body):

字段 类型 必填 说明
name string 数据库名称
charset string 字符集
collation string 排序规则

15.14 DELETE /api/db-servers/:id/databases/:did

描述: 删除数据库
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 数据库服务器 ID
did int 数据库 ID

15.15 GET /api/db-servers/:id/users

描述: 获取数据库用户列表
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 数据库服务器 ID

15.16 POST /api/db-servers/:id/users

描述: 创建数据库用户
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 数据库服务器 ID

请求参数 (Request Body):

字段 类型 必填 说明
username string 用户名
password string 密码

15.17 DELETE /api/db-servers/:id/users/:uid

描述: 删除数据库用户
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 数据库服务器 ID
uid int 用户 ID

15.18 POST /api/db-servers/:id/users/:uid/grant

描述: 授予数据库用户权限
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 数据库服务器 ID
uid int 用户 ID

请求参数 (Request Body):

字段 类型 必填 说明
database string 数据库名
privileges string[] 权限列表

15.19 GET /api/db-servers/databases/:did/tables

描述: 获取数据库表列表
认证: 需要 JWT

路径参数:

参数 类型 说明
did int 数据库 ID

15.20 GET /api/db-servers/databases/:did/describe

描述: 获取表结构
认证: 需要 JWT

路径参数:

参数 类型 说明
did int 数据库 ID

查询参数:

参数 类型 必填 说明
table string 表名

15.21 GET /api/db-servers/databases/:did/query

描述: 查询表数据(分页)
认证: 需要 JWT

路径参数:

参数 类型 说明
did int 数据库 ID

查询参数:

参数 类型 默认值 说明
table string - 表名(必填)
page int 1 页码
page_size int 50 每页数量

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "headers": ["id", "name", "email"],
    "rows": [
      [1, "张三", "zhang@example.com"]
    ],
    "total": 100,
    "page": 1,
    "page_size": 50
  }
}

15.22 POST /api/db-servers/databases/:did/execute

描述: 执行 SQL 语句
认证: 需要 JWT

路径参数:

参数 类型 说明
did int 数据库 ID

请求参数 (Request Body):

字段 类型 必填 说明
sql string SQL 语句

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "success": true,
    "output": "Query OK, 1 row affected"
  }
}

15.23 POST /api/db-servers/databases/:did/insert

描述: 插入记录
认证: 需要 JWT

路径参数:

参数 类型 说明
did int 数据库 ID

查询参数:

参数 类型 说明
dry_run string 设为 “true” 仅生成 SQL 不执行

请求参数 (Request Body):

字段 类型 必填 说明
table string 表名
data object 字段名值对

15.24 POST /api/db-servers/databases/:did/update

描述: 更新记录
认证: 需要 JWT

路径参数:

参数 类型 说明
did int 数据库 ID

查询参数:

参数 类型 说明
dry_run string 设为 “true” 仅生成 SQL 不执行

请求参数 (Request Body):

字段 类型 必填 说明
table string 表名
data object 要更新的字段名值对
primary_key string 主键字段名
primary_val any 主键值

15.25 POST /api/db-servers/databases/:did/delete

描述: 删除记录
认证: 需要 JWT

路径参数:

参数 类型 说明
did int 数据库 ID

查询参数:

参数 类型 说明
dry_run string 设为 “true” 仅生成 SQL 不执行

请求参数 (Request Body):

字段 类型 必填 说明
table string 表名
primary_key string 主键字段名
primary_val any 主键值

15.26 POST /api/db-servers/databases/:did/tables

描述: 创建表
认证: 需要 JWT

路径参数:

参数 类型 说明
did int 数据库 ID

请求参数 (Request Body):

字段 类型 必填 说明
name string 表名
columns array 列定义数组

columns 数组元素:

字段 类型 说明
name string 列名
type string 数据类型
nullable bool 是否可空
is_primary bool 是否主键
auto_incr bool 是否自增

15.27 DELETE /api/db-servers/databases/:did/tables

描述: 删除表
认证: 需要 JWT

路径参数:

参数 类型 说明
did int 数据库 ID

查询参数:

参数 类型 必填 说明
table string 表名

15.28 POST /api/db-servers/databases/:did/backup

描述: 创建数据库备份
认证: 需要 JWT

路径参数:

参数 类型 说明
did int 数据库 ID

15.29 GET /api/db-servers/databases/:did/backups

描述: 获取数据库备份列表
认证: 需要 JWT

路径参数:

参数 类型 说明
did int 数据库 ID

15.30 GET /api/db-servers/backups/:bid/download

描述: 下载数据库备份文件
认证: 需要 JWT

路径参数:

参数 类型 说明
bid int 备份 ID

错误码:

错误码 说明
40000 备份未完成
40400 备份不存在或备份文件不存在

15.31 POST /api/db-servers/backups/:bid/restore

描述: 恢复数据库备份
认证: 需要 JWT

路径参数:

参数 类型 说明
bid int 备份 ID

请求参数 (Request Body):

字段 类型 必填 说明
confirm bool 必须为 true 确认恢复操作

错误码:

错误码 说明
40000 未确认(需设置 confirm: true)
40400 备份不存在

15.32 DELETE /api/db-servers/backups/:bid

描述: 删除数据库备份
认证: 需要 JWT

路径参数:

参数 类型 说明
bid int 备份 ID

15.33 GET /api/db-servers/mysql/config

描述: 获取 MySQL 配置文件内容
认证: 需要 JWT

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "found": true,
    "config": {
      "file_path": "/etc/mysql/my.cnf",
      "sections": [
        {
          "name": "mysqld",
          "params": {
            "max_connections": "151",
            "innodb_buffer_pool_size": "128M"
          }
        }
      ]
    },
    "sections": {
      "mysqld": {
        "params": {"max_connections": "151"},
        "meta": [{"key": "max_connections", "description": "最大连接数"}]
      }
    }
  }
}

15.34 POST /api/db-servers/mysql/config

描述: 保存 MySQL 配置
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
sections array 配置段数组

sections 元素:

字段 类型 说明
name string 段名称(如 mysqld)
params object 键值对参数

15.35 GET /api/db-servers/mysql/common-params

描述: 获取 MySQL 常用参数说明(前端未使用)
认证: 需要 JWT

查询参数:

参数 类型 默认值 说明
section string mysqld 配置段名称

15.36 GET /api/db-servers/postgresql/config

描述: 获取 PostgreSQL 配置文件内容
认证: 需要 JWT


15.37 POST /api/db-servers/postgresql/config

描述: 保存 PostgreSQL 配置
认证: 需要 JWT

请求参数 (Request Body): 同 MySQL 配置保存接口


15.38 GET /api/db-servers/postgresql/common-params

描述: 获取 PostgreSQL 常用参数说明(前端未使用)
认证: 需要 JWT


15.39 GET /api/db-servers/redis/config

描述: 获取 Redis 配置文件内容
认证: 需要 JWT


15.40 POST /api/db-servers/redis/config

描述: 保存 Redis 配置
认证: 需要 JWT

请求参数 (Request Body): 同 MySQL 配置保存接口


15.41 GET /api/db-servers/redis/common-params

描述: 获取 Redis 常用参数说明(前端未使用)
认证: 需要 JWT


16. 定时任务

16.1 GET /api/cron/presets

描述: 获取预设的 cron 表达式模板
认证: 需要 JWT


16.2 GET /api/cron/describe

描述: 解析 cron 表达式为人类可读描述
认证: 需要 JWT

查询参数:

参数 类型 必填 说明
schedule string cron 表达式

16.3 GET /api/cron/next-runs

描述: 获取 cron 表达式的下次执行时间
认证: 需要 JWT

查询参数:

参数 类型 必填 说明
schedule string cron 表达式

16.4 GET /api/cron/tasks

描述: 获取所有定时任务
认证: 需要 JWT

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": [
    {
      "id": 1,
      "name": "backup-daily",
      "command": "/scripts/backup.sh",
      "schedule": "0 2 * * *",
      "description": "每日备份",
      "enabled": true,
      "status": "idle",
      "script_id": 0,
      "timeout": 3600,
      "max_retry": 3,
      "env_vars": "",
      "work_dir": "/tmp",
      "last_run": "2024-01-15 02:00:00",
      "next_run": "2024-01-16 02:00:00",
      "created_at": "2024-01-01 00:00:00"
    }
  ]
}

16.5 POST /api/cron/tasks

描述: 创建定时任务
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
name string 任务名称(唯一)
schedule string cron 表达式(5 个字段:分 时 日 月 周)
command string 条件 命令(与 script_id 二选一)
script_id int 条件 脚本 ID(与 command 二选一)
description string 描述
timeout int 超时时间(0-86400 秒)
max_retry int 最大重试次数(0-10)
env_vars string 环境变量(JSON)
work_dir string 工作目录

错误码:

错误码 说明
40000 参数校验失败(表达式格式/名称重复/超时范围/缺少命令或脚本)

16.6 GET /api/cron/tasks/:id

描述: 获取定时任务详情(前端未使用)
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 任务 ID

16.7 PUT /api/cron/tasks/:id

描述: 更新定时任务
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 任务 ID

请求参数 (Request Body): 所有字段均可选(部分更新)

字段 类型 说明
name string 任务名称
schedule string cron 表达式
command string 命令
description string 描述
script_id int 脚本 ID
timeout int 超时时间
max_retry int 最大重试次数
env_vars string 环境变量
work_dir string 工作目录

16.8 DELETE /api/cron/tasks/:id

描述: 删除定时任务
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 任务 ID

16.9 POST /api/cron/tasks/:id/enable

描述: 启用定时任务
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 任务 ID

16.10 POST /api/cron/tasks/:id/disable

描述: 禁用定时任务
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 任务 ID

16.11 POST /api/cron/tasks/:id/run

描述: 立即执行定时任务
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 任务 ID

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "message": "任务已执行"
  }
}

16.12 GET /api/cron/tasks/:id/logs

描述: 获取定时任务执行日志
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 任务 ID

查询参数:

参数 类型 默认值 说明
limit int 50 返回条数(最大 200)

16.13 GET /api/cron/scripts

描述: 获取脚本列表
认证: 需要 JWT


16.14 POST /api/cron/scripts

描述: 创建脚本
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
name string 脚本名称(唯一)
content string 脚本内容
language string 语言(sh、bash、python、python3,默认 sh)
description string 描述

错误码:

错误码 说明
40000 名称重复/内容为空/不支持的语言/解释器未安装

16.15 GET /api/cron/scripts/:id

描述: 获取脚本详情(前端未使用)
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 脚本 ID

16.16 PUT /api/cron/scripts/:id

描述: 更新脚本
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 脚本 ID

请求参数 (Request Body): 所有字段均可选

字段 类型 说明
name string 脚本名称
content string 脚本内容
language string 语言
description string 描述

16.17 DELETE /api/cron/scripts/:id

描述: 删除脚本
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 脚本 ID

错误码:

错误码 说明
40900 存在依赖此脚本的定时任务

16.18 GET /api/cron/docs

描述: 获取定时任务文档列表(前端未使用)
认证: 需要 JWT


16.19 POST /api/cron/docs

描述: 创建定时任务文档(前端未使用)
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
title string 文档标题
content string 文档内容

16.20 GET /api/cron/docs/:id

描述: 获取文档详情(前端未使用)
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 文档 ID

16.21 PUT /api/cron/docs/:id

描述: 更新文档(前端未使用)
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 文档 ID

16.22 DELETE /api/cron/docs/:id

描述: 删除文档(前端未使用)
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 文档 ID

17. 防火墙

17.1 GET /api/firewall/status

描述: 获取防火墙状态
认证: 需要 JWT

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "enabled": true,
    "tool": "iptables",
    "version": "1.8.7",
    "rule_count": 15,
    "custom_rule_count": 5,
    "default_in": "ACCEPT",
    "default_out": "ACCEPT"
  }
}

17.2 POST /api/firewall/enable

描述: 启用防火墙
认证: 需要 JWT

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "message": "防火墙已启用"
  }
}

17.3 POST /api/firewall/disable

描述: 禁用防火墙(需要确认)
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
confirm bool 必须为 true

错误码:

错误码 说明
40000 未确认(需设置 confirm: true)

17.4 POST /api/firewall/default-policy

描述: 设置默认链策略
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
chain string 链名(INPUT 或 OUTPUT)
policy string 策略(ACCEPT 或 DROP)

错误码:

错误码 说明
40000 无效的链或策略

17.5 GET /api/firewall/logs

描述: 获取防火墙日志
认证: 需要 JWT

查询参数:

参数 类型 默认值 说明
lines int 100 返回行数(最大 1000)

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": [
    {
      "timestamp": "Jan 15 10:00:00",
      "action": "DROP",
      "protocol": "tcp",
      "src_ip": "1.2.3.4",
      "dst_ip": "5.6.7.8",
      "src_port": 12345,
      "dst_port": 22,
      "interface": "eth0",
      "raw": "Jan 15 10:00:00 server kernel: ..."
    }
  ]
}

17.6 GET /api/firewall/rules

描述: 获取防火墙规则列表
认证: 需要 JWT

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": [
    {
      "id": 1,
      "chain": "INPUT",
      "protocol": "tcp",
      "port": "80",
      "action": "ACCEPT",
      "source": "0.0.0.0/0",
      "target": "",
      "enabled": true,
      "priority": 100,
      "ip_version": "ipv4",
      "remark": "允许 HTTP",
      "created_at": "2024-01-15 10:00:00"
    }
  ]
}

17.7 POST /api/firewall/rules

描述: 创建防火墙规则
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
chain string 链(INPUT、OUTPUT、FORWARD)
protocol string 协议(tcp、udp、all)
port string 端口(如 “80”、”8000-9000”)
action string 动作(ACCEPT、DROP、REJECT)
source string 源 IP/CIDR
ip_version string IP 版本(ipv4、ipv6、both)
remark string 备注

17.8 GET /api/firewall/rules/export

描述: 导出防火墙规则
认证: 需要 JWT


17.9 POST /api/firewall/rules/import

描述: 导入防火墙规则
认证: 需要 JWT


17.10 POST /api/firewall/rules/bulk-enable

描述: 批量启用规则
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
ids int[] 规则 ID 列表

17.11 POST /api/firewall/rules/bulk-disable

描述: 批量禁用规则
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
ids int[] 规则 ID 列表

17.12 POST /api/firewall/rules/bulk-delete

描述: 批量删除规则
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
ids int[] 规则 ID 列表

17.13 GET /api/firewall/rules/:id

描述: 获取单条规则详情(前端未使用)
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 规则 ID

17.14 PUT /api/firewall/rules/:id

描述: 更新防火墙规则
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 规则 ID

请求参数 (Request Body): 所有字段均可选

字段 类型 说明
chain string
protocol string 协议
port string 端口
action string 动作
source string 源 IP/CIDR
ip_version string IP 版本
remark string 备注

17.15 DELETE /api/firewall/rules/:id

描述: 删除防火墙规则
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 规则 ID

17.16 POST /api/firewall/rules/:id/enable

描述: 启用单条规则
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 规则 ID

17.17 POST /api/firewall/rules/:id/disable

描述: 禁用单条规则
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 规则 ID

17.18 POST /api/firewall/rules/:id/move-up

描述: 上移规则优先级
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 规则 ID

17.19 POST /api/firewall/rules/:id/move-down

描述: 下移规则优先级
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 规则 ID

17.20 GET /api/firewall/system-rules

描述: 获取系统级防火墙规则(由系统/其他工具管理的规则)
认证: 需要 JWT


17.21 POST /api/firewall/system-rules/delete

描述: 删除系统级防火墙规则(前端未使用)
认证: 需要 JWT


17.22 GET /api/firewall/templates

描述: 获取防火墙规则模板
认证: 需要 JWT


17.23 POST /api/firewall/templates/apply

描述: 应用防火墙规则模板
认证: 需要 JWT


18. SSH管理

18.1 GET /api/ssh/config

描述: 获取 SSH 服务器配置
认证: 需要 JWT

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "port": 22,
    "permit_root_login": "prohibit-password",
    "password_auth": "yes",
    "pubkey_auth": "yes",
    "max_auth_tries": 6,
    "login_grace_time": 120,
    "client_alive_interval": 300,
    "client_alive_count_max": 3,
    "allow_users": "",
    "deny_users": ""
  }
}

18.2 PUT /api/ssh/config

描述: 保存 SSH 配置
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
port int SSH 端口(1-65535)
permit_root_login string Root 登录策略(yes/no/prohibit-password)
password_auth string 密码认证(yes/no)
pubkey_auth string 公钥认证(yes/no)
max_auth_tries int 最大认证尝试次数(0-100)
login_grace_time int 登录超时时间(0-3600 秒)
client_alive_interval int 客户端心跳间隔(0-86400 秒)
client_alive_count_max int 心跳最大计数(0-100)
allow_users string 允许的用户列表
deny_users string 拒绝的用户列表

错误码:

错误码 说明
40000 参数校验失败

18.3 POST /api/ssh/config/test

描述: 测试 SSH 配置文件
认证: 需要 JWT

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "message": "配置文件语法正确"
  }
}

18.4 POST /api/ssh/config/reload

描述: 重载 SSH 服务
认证: 需要 JWT

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "message": "SSH 服务已重载"
  }
}

18.5 GET /api/ssh/sessions

描述: 获取活跃 SSH 会话列表
认证: 需要 JWT

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "sessions": [
      {
        "pid": 12345,
        "user": "root",
        "ip": "192.168.1.100",
        "started": "2024-01-15 10:00:00"
      }
    ]
  }
}

18.6 POST /api/ssh/sessions/:pid/kill

描述: 终止指定 SSH 会话
认证: 需要 JWT

路径参数:

参数 类型 说明
pid int 会话进程 PID(必须大于 1)

错误码:

错误码 说明
40000 无效的 PID

18.7 GET /api/ssh/logins

描述: 获取 SSH 登录历史
认证: 需要 JWT

查询参数:

参数 类型 默认值 说明
limit int 50 返回记录数

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "records": [
      {
        "user": "root",
        "ip": "192.168.1.100",
        "time": "2024-01-15 10:00:00",
        "status": "accepted"
      }
    ]
  }
}

19. 容器/Docker

19.1 GET /api/docker/status

描述: 检测 Docker 安装状态
认证: 需要 JWT


19.2 POST /api/docker/install

描述: 安装 Docker
认证: 需要 JWT


19.3 POST /api/docker/start

描述: 启动 Docker 服务
认证: 需要 JWT


19.4 POST /api/docker/stop

描述: 停止 Docker 服务
认证: 需要 JWT


19.5 POST /api/docker/restart

描述: 重启 Docker 服务
认证: 需要 JWT


19.6 GET /api/docker/info

描述: 获取 Docker 系统信息
认证: 需要 JWT


19.7 POST /api/docker/mirror

描述: 配置 Docker 镜像加速器
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
mirrors string[] 镜像加速器 URL 列表

19.8 GET /api/containers

描述: 获取容器列表
认证: 需要 JWT

查询参数:

参数 类型 说明
all string 设为 “true” 包含已停止容器

19.9 GET /api/containers/:id

描述: 获取容器详情
认证: 需要 JWT

路径参数:

参数 类型 说明
id string 容器 ID 或名称

19.10 POST /api/containers

描述: 创建容器
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
name string 容器名称
image string 镜像名称
ports object 端口映射
volumes array 卷挂载
env array 环境变量
cmd string[] 启动命令

19.11 POST /api/containers/:id/start

描述: 启动容器
认证: 需要 JWT

路径参数:

参数 类型 说明
id string 容器 ID

19.12 POST /api/containers/:id/stop

描述: 停止容器
认证: 需要 JWT

路径参数:

参数 类型 说明
id string 容器 ID

19.13 POST /api/containers/:id/restart

描述: 重启容器
认证: 需要 JWT

路径参数:

参数 类型 说明
id string 容器 ID

19.14 POST /api/containers/:id/pause

描述: 暂停容器
认证: 需要 JWT

路径参数:

参数 类型 说明
id string 容器 ID

19.15 POST /api/containers/:id/unpause

描述: 恢复容器
认证: 需要 JWT

路径参数:

参数 类型 说明
id string 容器 ID

19.16 DELETE /api/containers/:id

描述: 删除容器
认证: 需要 JWT

路径参数:

参数 类型 说明
id string 容器 ID

查询参数:

参数 类型 说明
force string 设为 “true” 强制删除运行中的容器

19.17 GET /api/containers/:id/logs

描述: 获取容器日志
认证: 需要 JWT

路径参数:

参数 类型 说明
id string 容器 ID

查询参数:

参数 类型 默认值 说明
tail int 100 返回行数
since string - 起始时间

19.18 POST /api/containers/:id/exec

描述: 在容器中执行命令
认证: 需要 JWT

路径参数:

参数 类型 说明
id string 容器 ID

请求参数 (Request Body):

字段 类型 必填 说明
cmd string[] 命令及参数

19.19 GET /api/containers/:id/stats

描述: 获取容器资源统计
认证: 需要 JWT

路径参数:

参数 类型 说明
id string 容器 ID

19.20 GET /api/containers/:id/top

描述: 获取容器进程列表
认证: 需要 JWT

路径参数:

参数 类型 说明
id string 容器 ID

19.21 POST /api/containers/:id/copy-to

描述: 复制文件到容器
认证: 需要 JWT

路径参数:

参数 类型 说明
id string 容器 ID

Content-Type: multipart/form-data


19.22 POST /api/containers/:id/copy-from

描述: 从容器复制文件
认证: 需要 JWT

路径参数:

参数 类型 说明
id string 容器 ID

请求参数 (Request Body):

字段 类型 必填 说明
path string 容器内文件路径

19.23 POST /api/containers/:id/rename

描述: 重命名容器
认证: 需要 JWT

路径参数:

参数 类型 说明
id string 容器 ID

请求参数 (Request Body):

字段 类型 必填 说明
name string 新名称

19.24 PUT /api/containers/:id/update

描述: 更新容器配置
认证: 需要 JWT

路径参数:

参数 类型 说明
id string 容器 ID

19.25 GET /api/images

描述: 获取镜像列表
认证: 需要 JWT


19.26 POST /api/images/pull

描述: 拉取镜像
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
image string 镜像名称(如 nginx:latest)

19.27 DELETE /api/images/:id

描述: 删除镜像
认证: 需要 JWT

路径参数:

参数 类型 说明
id string 镜像 ID

19.28 GET /api/compose/projects

描述: 获取 Docker Compose 项目列表
认证: 需要 JWT


19.29 POST /api/compose/up

描述: 启动 Compose 项目
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
path string compose.yml 文件路径

19.30 POST /api/compose/down

描述: 停止并删除 Compose 项目
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
path string compose.yml 文件路径

19.31 POST /api/compose/restart

描述: 重启 Compose 项目
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
path string compose.yml 文件路径

19.32 GET /api/compose/logs

描述: 获取 Compose 项目日志
认证: 需要 JWT

查询参数:

参数 类型 必填 说明
path string compose.yml 文件路径

19.33 GET /api/compose/config

描述: 获取 Compose 配置文件内容
认证: 需要 JWT

查询参数:

参数 类型 必填 说明
path string compose.yml 文件路径

19.34 PUT /api/compose/config

描述: 保存 Compose 配置文件
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
path string compose.yml 文件路径
content string YAML 内容

19.35 GET /api/volumes

描述: 获取 Docker 卷列表
认证: 需要 JWT


19.36 POST /api/volumes

描述: 创建 Docker 卷
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
name string 卷名称
driver string 驱动(默认 local)

19.37 DELETE /api/volumes/:name

描述: 删除 Docker 卷
认证: 需要 JWT

路径参数:

参数 类型 说明
name string 卷名称

19.38 GET /api/networks

描述: 获取 Docker 网络列表
认证: 需要 JWT


19.39 POST /api/networks

描述: 创建 Docker 网络
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
name string 网络名称
driver string 驱动(默认 bridge)

19.40 DELETE /api/networks/:id

描述: 删除 Docker 网络
认证: 需要 JWT

路径参数:

参数 类型 说明
id string 网络 ID

20. 模板

20.1 GET /api/templates/docker-images

描述: 获取 Docker 镜像模板列表(前端未使用,仅使用脚本模板)
认证: 需要 JWT

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "version": 1,
    "categories": [
      {
        "name": "Web 服务器",
        "images": [
          {
            "name": "Nginx",
            "image": "nginx:latest",
            "description": "高性能 HTTP 服务器",
            "ports": ["80:80", "443:443"]
          }
        ]
      }
    ]
  }
}

20.2 GET /api/templates/categories

描述: 获取模板分类名称列表
认证: 需要 JWT

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": ["Web 服务器", "数据库"]
}

20.3 GET /api/templates/scripts

描述: 获取脚本模板列表
认证: 需要 JWT

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "categories": [
      {
        "name": "常用脚本",
        "scripts": [...]
      }
    ]
  }
}

21. 进程守护

21.1 GET /api/processes

描述: 获取所有托管进程列表(包含运行状态)
认证: 需要 JWT

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": [
    {
      "id": 1,
      "name": "my-app",
      "command": "/usr/bin/node",
      "args": "server.js",
      "dir": "/app",
      "env": "{}",
      "auto_restart": true,
      "max_restarts": 5,
      "restart_delay": 5,
      "stop_timeout": 10,
      "startup_timeout": 30,
      "auto_start": true,
      "log_file": "/var/log/my-app.log",
      "group_id": 0,
      "status": {
        "id": 1,
        "process_id": 1,
        "status": "running",
        "pid": 12345,
        "uptime": 3600,
        "restarts": 0,
        "cpu_percent": 5.2,
        "memory_mb": 128.5,
        "exit_code": 0,
        "last_start": "2024-01-15 10:00:00"
      }
    }
  ]
}

21.2 POST /api/processes

描述: 创建进程配置
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
name string 进程名称
command string 启动命令
args string 命令参数
dir string 工作目录
env string 环境变量(JSON)
auto_restart bool 是否自动重启
max_restarts int 最大重启次数
restart_delay int 重启延迟(秒)
stop_timeout int 停止超时(秒)
startup_timeout int 启动超时(秒)
auto_start bool 是否开机自启
log_file string 日志文件路径
group_id int 分组 ID

21.3 GET /api/processes/:id

描述: 获取进程详情(前端未使用)
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 进程 ID

21.4 PUT /api/processes/:id

描述: 更新进程配置
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 进程 ID

请求参数 (Request Body): 所有字段均可选(部分更新)


21.5 DELETE /api/processes/:id

描述: 删除进程配置
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 进程 ID

21.6 POST /api/processes/:id/start

描述: 启动进程(前端未使用,仅使用批量启动)
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 进程 ID

21.7 POST /api/processes/:id/stop

描述: 停止进程(前端未使用,仅使用批量停止)
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 进程 ID

21.8 POST /api/processes/:id/restart

描述: 重启进程(前端未使用,仅使用批量重启)
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 进程 ID

21.9 GET /api/processes/:id/logs

描述: 获取进程日志
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 进程 ID

查询参数:

参数 类型 默认值 说明
limit int 50 返回条数
offset int 0 偏移量

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "items": [
      {
        "id": 1,
        "process_id": 1,
        "type": "stdout",
        "content": "Server started on port 3000",
        "created_at": "2024-01-15 10:00:00"
      }
    ],
    "total": 500
  }
}

21.10 GET /api/processes/:id/stats

描述: 获取进程运行时资源统计(前端未使用)
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 进程 ID

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "cpu_percent": 5.2,
    "memory_mb": 128.5,
    "pid": 12345,
    "uptime": 3600,
    "restarts": 0
  }
}

21.11 POST /api/processes/batch/start

描述: 批量启动进程
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
ids int[] 进程 ID 列表

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "started": 3,
    "failed": 1
  }
}

21.12 POST /api/processes/batch/stop

描述: 批量停止进程
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
ids int[] 进程 ID 列表

21.13 POST /api/processes/batch/restart

描述: 批量重启进程
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
ids int[] 进程 ID 列表

21.14 GET /api/process-groups

描述: 获取进程分组列表
认证: 需要 JWT

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": [
    {
      "id": 1,
      "name": "Web Apps",
      "description": "Web 应用进程组",
      "created_at": "2024-01-15 10:00:00"
    }
  ]
}

21.15 POST /api/process-groups

描述: 创建进程分组(前端未使用)
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
name string 分组名称
description string 描述

21.16 GET /api/process-groups/:id

描述: 获取进程分组详情
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 分组 ID

21.17 PUT /api/process-groups/:id

描述: 更新进程分组(前端未使用)
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 分组 ID

请求参数 (Request Body): 所有字段均可选

字段 类型 说明
name string 分组名称
description string 描述

21.18 DELETE /api/process-groups/:id

描述: 删除进程分组(前端未使用)
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 分组 ID

21.19 GET /api/processes/export

描述: 导出所有进程配置为 JSON
认证: 需要 JWT


21.20 POST /api/processes/import

描述: 从 JSON 导入进程配置
认证: 需要 JWT

请求参数 (Request Body): 进程配置数组

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "imported": 5
  }
}

22. 系统进程

22.1 GET /api/system/processes

描述: 获取系统进程列表
认证: 需要 JWT

查询参数:

参数 类型 默认值 说明
sort_by string memory 排序字段(memory/cpu)
order string desc 排序方向(asc/desc)
search string - 搜索关键词
limit int 100 返回数量

22.2 GET /api/system/processes/:pid

描述: 获取系统进程详情(前端未使用)
认证: 需要 JWT

路径参数:

参数 类型 说明
pid int 进程 PID

23. 通知管理

23.1 GET /api/notifications

描述: 获取通知列表
认证: 需要 JWT

查询参数:

参数 类型 默认值 说明
unread string - 设为 “true” 仅返回未读
limit int 50 返回数量

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": [
    {
      "id": 1,
      "title": "CPU 使用率过高",
      "content": "CPU 使用率已超过 90%",
      "level": "warning",
      "read": false,
      "created_at": "2024-01-15 10:00:00"
    }
  ]
}

23.2 GET /api/notifications/unread-count

描述: 获取未读通知数量
认证: 需要 JWT

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "count": 5
  }
}

23.3 POST /api/notifications

描述: 创建通知(管理员操作,前端未使用,由系统自动创建)
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
title string 通知标题
content string 通知内容
level string 级别(info/warning/error)

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "message": "通知已创建"
  }
}

23.4 PUT /api/notifications/:id/read

描述: 标记通知为已读
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 通知 ID

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "message": "已标记为已读"
  }
}

23.5 PUT /api/notifications/read-all

描述: 标记所有通知为已读
认证: 需要 JWT

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "message": "全部已标记为已读"
  }
}

23.6 DELETE /api/notifications/:id

描述: 删除通知
认证: 需要 JWT

路径参数:

参数 类型 说明
id int 通知 ID

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "message": "已删除"
  }
}

24. 安全扫描

24.1 POST /api/security/cve/scan

描述: 扫描已安装 apt 包的 CVE 漏洞(通过 osv.dev API)
认证: 需要 JWT

请求参数: 无

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "vulnerabilities": [
      {
        "package": "openssl",
        "version": "3.0.2-0ubuntu1.15",
        "vuln_ids": ["CVE-2024-6119"]
      }
    ],
    "count": 1
  }
}

24.2 POST /api/security/cve/upgrade

描述: 升级指定包以修复 CVE 漏洞
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
packages string[] 要升级的包名列表

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "message": "升级完成",
    "output": "..."
  }
}

24.3 GET /api/security/cve/kernel

描述: 获取内核版本状态(当前运行 vs 最新已安装)
认证: 需要 JWT

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "current": "6.8.0-45-generic",
    "latest": "6.8.0-47-generic",
    "needs_reboot": true
  }
}

24.4 GET /api/security/cve/upgradable

描述: 获取可升级包数量
认证: 需要 JWT

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "count": 12
  }
}

25. 文件外链

25.1 POST /api/file-shares

描述: 创建文件分享链接
认证: 需要 JWT

请求参数 (Request Body):

字段 类型 必填 说明
file_path string 文件路径
password string 访问密码
expires_at string 过期时间(ISO 8601)
max_downloads number 最大下载次数(0=无限)

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "id": 1,
    "token": "abc123...",
    "file_path": "/data/report.pdf",
    "expires_at": "2026-08-01T00:00:00Z",
    "max_downloads": 5,
    "download_count": 0,
    "created_at": "2026-07-23T10:00:00Z"
  }
}

25.2 GET /api/file-shares

描述: 获取当前用户的所有分享链接
认证: 需要 JWT


25.3 GET /api/file-shares/:id

描述: 获取单个分享详情
认证: 需要 JWT


25.4 PUT /api/file-shares/:id

描述: 更新分享设置(密码、过期时间、下载次数)
认证: 需要 JWT


25.5 DELETE /api/file-shares/:id

描述: 删除分享链接
认证: 需要 JWT


25.6 POST /api/file-shares/cleanup

描述: 清理过期分享
认证: 需要 JWT


公开分享接口(无需认证)

方法 路径 说明
GET /share/:token/info 获取分享信息
POST /share/:token/verify 验证访问密码
GET /share/:token/download 下载文件

26. 端口监控

26.1 GET /api/system/ports

描述: 获取所有监听端口列表
认证: 需要 JWT

响应示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "ports": [
      {
        "protocol": "tcp",
        "port": 8080,
        "local_addr": "0.0.0.0",
        "state": "LISTEN",
        "pid": 1234,
        "process_name": "easyserver",
        "user": "root"
      }
    ],
    "total": 1
  }
}

附录

A. 请求频率限制

API 使用滑动窗口限流机制,分三级:

  • 登录接口: 10 次 / 1 分钟
  • 通用 API: 1000 次 / 1 分钟
  • 静态资源: 5000 次 / 1 分钟

超出限制后返回 HTTP 429 状态码。

可通过 auth.login_rate_limitauth.rate_limitserver.assets_rate_limit 配置。

B. CORS 跨域

CORS 通过配置文件中的 allowed_origins 控制。在开发模式下,自动允许 localhost 来源。

C. 审计日志

所有受保护的 API 调用(除了健康检查和认证接口)都会自动记录到审计日志中,包括:

  • 操作用户
  • 操作类型
  • 请求资源
  • 客户端 IP
  • User-Agent
  • 请求状态码

D. 安全头部

所有响应自动附加以下安全头部:

  • X-Content-Type-Options: nosniff
  • X-Frame-Options: DENY
  • X-XSS-Protection: 1; mode=block

回到顶部

EasyServer — 一站式 Linux 服务器管理面板