Files
soul/开发文档/服务器管理/references/宝塔api接口文档.md

143 lines
3.1 KiB
Markdown
Raw Normal View History

# 宝塔面板 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)