Skip to content

API 系统介绍

Hestia REST API 可用于执行控制面板的核心功能。 例如,我们在内部使用它来同步 DNS 集群并集成 WHMCS 计费系统。 该 API 还可用于创建新的用户帐户、域、数据库,甚至构建替代的 Web 界面。

API 参考 提供 PHP 代码示例,演示如何将 API 集成到应用程序或脚本中。 但是,您也可以使用任何其他语言与 API 进行通信。

随着 Hestia v1.6.0 的发布,我们引入了更先进的 API 系统,它将允许非管理员用户使用特定命令。

无法连接到API

随着Hestia v1.4.0版本的发布,我们决定加强安全性。如果您想从远程服务器连接到API,首先需要将其IP地址加入白名单。如果要添加多个地址,请用新行分隔它们。要绕过IP过滤,请删除所有现有的IP地址并输入allow-all

可以禁用API吗?

是的,您可以通过服务器设置禁用API。该文件将从服务器上删除,并且所有连接都将被忽略。请注意,禁用API后,某些功能可能无法正常工作。

密码 vs API密钥 vs 访问密钥

访问密钥

  • 用户特定。
  • 可以限制权限。例如,仅允许v-purge-nginx-cache命令。
  • 可以在禁用其他登录方法的同时仍然允许使用API密钥。
  • 可以仅限制为管理员用户使用,或允许所有用户使用。

密码

DANGER

此方法已弃用

  • 仅应由管理员用户使用。
  • 更改管理员密码需要在所有使用该密码的地方进行更新。
  • 允许执行所有命令。

API密钥

DANGER

此方法已弃用

  • 仅应由管理员用户使用。
  • 更改管理员密码对此无影响。
  • 允许执行所有命令。

设置访问/密钥认证

要创建访问密钥,请遵循我们文档中的指南

TIP

或者,可以使用以下命令创建。要创建一个需要管理员权限的访问密钥,请通过初始管理员用户创建API密钥!

bash
v-add-access-key 'admin' 'profile' test json

如果您想使用API密钥执行所有支持的命令,请使用

bash
v-add-access-key 'admin' '*' test json

创建自定义API密钥配置文件

/usr/local/hestia/data/api/中创建一个新文件,内容如下

bash
ROLE='admin'
COMMANDS='v-list-web-domains,v-add-web-domain,v-list-web-domain'
  • Role(角色):user(用户)或admin(管理员)。
  • Commands(命令):逗号分隔的列表,包含您需要的所有命令。

如果您使用的软件已经支持哈希格式,请使用ACCESS_KEY:SECRET_KEY代替旧的API密钥。

返回代码

名称注释
0OK命令已成功执行
1E_ARGS提供的参数不足
2E_INVALID对象或参数无效
3E_NOTEXIST对象不存在
4E_EXISTS对象已存在
5E_SUSPENDED对象已挂起
6E_UNSUSPENDED对象已恢复
7E_INUSE对象正在被其他对象使用,无法删除
8E_LIMIT由于主机包限制,无法创建对象
9E_PASSWORD密码错误/无效
10E_FORBIDEN此用户无法访问该对象
11E_DISABLED子系统已禁用
12E_PARSING配置已损坏
13E_DISK磁盘空间不足,无法完成操作
14E_LA服务器太忙,无法完成操作
15E_CONNECT连接失败,主机不可达
16E_FTPFTP服务器未响应
17E_DB数据库服务器未响应
18E_RDDRRDtool无法更新数据库
19E_UPDATE更新操作失败
20E_RESTART服务重启失败