Path: API › 项目部署

`POST /deployment`

将选中的一键部署软件包（内置或自定义）安装到指定网站。

## Request body

_Required._

- `action86.request_time` (string, required) — Unix 时间戳。
- `action86.request_token` (string, required) — 按 API 概览生成的签名。
- `action86.action` (string, required) — 具体操作名称。
  - one of `"SetupPackage"`
- `action86.dname` (string, required) — 软件包名称（通过 `GetList` 获取，如 `ThinkPHP-5.0`、`discuz-X3.4`）
- `action86.site_name` (string, required) — 目标网站域名
- `action86.project_type` (string, optional) — 项目类型，默认 `php`；Java 项目需传 `java`

## Example request

```text
{
  "request_time": "string",
  "request_token": "string",
  "action": "SetupPackage",
  "dname": "string",
  "site_name": "string",
  "project_type": "string"
}
```

## Code samples

### cURL（填写面板地址与签名）

```curl
curl --request POST \
  --url "https://your-panel.example.com:8888/deployment" \
  --header "Content-Type: application/x-www-form-urlencoded" \
  --data-urlencode "request_time=<Unix时间戳>" \
  --data-urlencode "request_token=<按 API 概览生成的签名>" \
  --data-urlencode "action=SetupPackage" \
  --data-urlencode "dname=<dname>" \
  --data-urlencode "site_name=<site_name>"
```

## Responses

### default

接口响应，业务状态见下方详细说明。

#### Example

```json
{
  "status": true,
  "msg": {
    "admin_username": "",
    "admin_password": "",
    "success_url": ""
  }
}
```

- `action86.response.default.status` (boolean, optional) — `true` 部署成功
- `action86.response.default.msg.admin_username` (string, optional) — 管理员用户名（如有）
- `action86.response.default.msg.admin_password` (string, optional) — 管理员密码（如有）
- `action86.response.default.msg.success_url` (string, optional) — 部署完成后的访问路径


## SetupPackage

将选中的一键部署软件包（内置或自定义）安装到指定网站。

- **路由**：`POST /deployment`
- **action**：`SetupPackage`

## 输入参数

| 参数名称 | 必选 | 类型 | 描述 |
|----------|------|------|------|
| action | 是 | String | 固定值 `SetupPackage` |
| dname | 是 | String | 软件包名称（通过 `GetList` 获取，如 `ThinkPHP-5.0`、`discuz-X3.4`） |
| site_name | 是 | String | 目标网站域名 |
| project_type | 否 | String | 项目类型，默认 `php`；Java 项目需传 `java` |

## 输出参数

| 参数名称 | 类型 | 描述 |
|----------|------|------|
| status | Boolean | `true` 部署成功 |
| msg.admin_username | String | 管理员用户名（如有） |
| msg.admin_password | String | 管理员密码（如有） |
| msg.success_url | String | 部署完成后的访问路径 |

## 示例

### 部署 PHP 框架（ThinkPHP）

```
POST /deployment HTTP/1.1
Host: 192.168.168.213:8888
Content-Type: application/x-www-form-urlencoded

action=SetupPackage&dname=ThinkPHP-5.0&site_name=testapi.bt.local
```

```json
{"status": true, "msg": {"admin_username": "", "admin_password": "", "success_url": "/index.php"}}
```

> 框架类包部署后直接可访问，`success_url` 指向入口文件。

### 部署 CMS（Discuz）

```
action=SetupPackage&dname=discuz-X3.4&site_name=testapi.bt.local
```

```json
{"status": true, "msg": {"admin_username": "", "admin_password": "", "success_url": ""}}
```

> CMS 类包 `success_url` 为空，需访问网站域名进入 Web 安装向导完成数据库配置。

