143 lines
3.1 KiB
Markdown
143 lines
3.1 KiB
Markdown
|
|
# 宝塔面板 API 接口文档
|
||
|
|
|
||
|
|
## 1. 鉴权机制
|
||
|
|
|
||
|
|
所有 API 请求均需包含鉴权参数,使用 POST 方式提交。
|
||
|
|
|
||
|
|
### 签名算法
|
||
|
|
|
||
|
|
```python
|
||
|
|
import time
|
||
|
|
import hashlib
|
||
|
|
|
||
|
|
def get_sign(api_key):
|
||
|
|
now_time = int(time.time())
|
||
|
|
# md5(timestamp + md5(api_key))
|
||
|
|
sign_str = str(now_time) + hashlib.md5(api_key.encode('utf-8')).hexdigest()
|
||
|
|
request_token = hashlib.md5(sign_str.encode('utf-8')).hexdigest()
|
||
|
|
return now_time, request_token
|
||
|
|
```
|
||
|
|
|
||
|
|
### 基础参数
|
||
|
|
|
||
|
|
每次 POST 请求必须包含:
|
||
|
|
- `request_time`: 当前时间戳 (10位)
|
||
|
|
- `request_token`: 计算生成的签名
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 2. 系统管理接口
|
||
|
|
|
||
|
|
### 获取系统基础统计
|
||
|
|
- **URL**: `/system?action=GetSystemTotal`
|
||
|
|
- **功能**: 获取 CPU、内存、系统版本等信息
|
||
|
|
|
||
|
|
### 获取磁盘信息
|
||
|
|
- **URL**: `/system?action=GetDiskInfo`
|
||
|
|
- **功能**: 获取各分区使用情况
|
||
|
|
|
||
|
|
### 获取网络状态
|
||
|
|
- **URL**: `/system?action=GetNetWork`
|
||
|
|
- **功能**: 获取实时网络流量
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 3. 网站管理接口
|
||
|
|
|
||
|
|
### 获取网站列表
|
||
|
|
- **URL**: `/data?action=getData&table=sites`
|
||
|
|
- **参数**:
|
||
|
|
- `limit`: 每页条数 (默认15)
|
||
|
|
- `p`: 页码 (默认1)
|
||
|
|
- `search`: 搜索关键词 (可选)
|
||
|
|
|
||
|
|
### 添加静态/PHP网站
|
||
|
|
- **URL**: `/site?action=AddSite`
|
||
|
|
- **参数**:
|
||
|
|
- `webname`: 域名 (json字符串)
|
||
|
|
- `path`: 根目录路径
|
||
|
|
- `version`: PHP版本 (`00`=纯静态, `74`=PHP 7.4)
|
||
|
|
- `port`: 端口 (默认 `80`)
|
||
|
|
|
||
|
|
### 删除网站
|
||
|
|
- **URL**: `/site?action=DeleteSite`
|
||
|
|
- **参数**:
|
||
|
|
- `id`: 网站ID
|
||
|
|
- `webname`: 网站域名
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 4. 文件管理接口
|
||
|
|
|
||
|
|
### 读取文件内容
|
||
|
|
- **URL**: `/files?action=GetFileBody`
|
||
|
|
- **参数**: `path`: 文件绝对路径
|
||
|
|
|
||
|
|
### 保存文件内容
|
||
|
|
- **URL**: `/files?action=SaveFileBody`
|
||
|
|
- **参数**:
|
||
|
|
- `path`: 文件绝对路径
|
||
|
|
- `data`: 文件内容
|
||
|
|
- `encoding`: 编码 (默认 `utf-8`)
|
||
|
|
|
||
|
|
### 创建目录
|
||
|
|
- **URL**: `/files?action=CreateDir`
|
||
|
|
- **参数**: `path`: 目录绝对路径
|
||
|
|
|
||
|
|
### 删除文件/目录
|
||
|
|
- **URL**: `/files?action=DeleteFile`
|
||
|
|
- **参数**: `path`: 绝对路径
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 5. Node.js 项目管理 (PM2)
|
||
|
|
|
||
|
|
> 注:部分接口可能随宝塔版本更新而变化
|
||
|
|
|
||
|
|
### 获取 Node 项目列表
|
||
|
|
- **URL**: `/project/nodejs/get_project_list`
|
||
|
|
|
||
|
|
### 添加 Node 项目
|
||
|
|
- **URL**: `/project/nodejs/add_project`
|
||
|
|
- **参数**:
|
||
|
|
- `name`: 项目名称
|
||
|
|
- `path`: 项目根目录
|
||
|
|
- `run_cmd`: 启动命令
|
||
|
|
- `port`: 项目端口
|
||
|
|
|
||
|
|
### 启动/停止/重启项目
|
||
|
|
- **URL**: `/project/nodejs/start_project` (或 `stop_project`, `restart_project`)
|
||
|
|
- **参数**: `project_name`: 项目名称
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 6. SSL证书管理
|
||
|
|
|
||
|
|
### 获取证书列表
|
||
|
|
- **URL**: `/ssl?action=GetCertList`
|
||
|
|
|
||
|
|
### 获取网站SSL配置
|
||
|
|
- **URL**: `/site?action=GetSSL`
|
||
|
|
- **参数**: `siteName`: 网站名称
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 7. 计划任务
|
||
|
|
|
||
|
|
### 获取计划任务列表
|
||
|
|
- **URL**: `/crontab?action=GetCrontab`
|
||
|
|
|
||
|
|
### 执行计划任务
|
||
|
|
- **URL**: `/crontab?action=StartTask`
|
||
|
|
- **参数**: `id`: 任务ID
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 8. 服务管理
|
||
|
|
|
||
|
|
### 重载/重启服务
|
||
|
|
- **URL**: `/system?action=ServiceAdmin`
|
||
|
|
- **参数**:
|
||
|
|
- `name`: 服务名称 (nginx, mysql等)
|
||
|
|
- `type`: 操作类型 (reload, restart, stop, start)
|