应用程序接口示例
温馨提示
这是官方团队成员创建的一个示例,
示例
示例可以在单独的repo中找到。
从用户名/密码身份验证升级到访问/密钥身份验证
替换以下代码:
// Prepare POST query
$postvars = [
"user" => $hst_username,
"password" => $hst_password,
"returncode" => $hst_returncode,
"cmd" => $hst_command,
"arg1" => $username,
];
具有以下内容:
// Prepare POST query
$postvars = [
"hash" => "access_code:secret_code",
"returncode" => $hst_returncode,
"cmd" => $hst_command,
"arg1" => $username,
];
v-wrapper-hestia-api
温馨提示
这是官方团队成员创建的一个示例,
这是一个与 Hestia API 交互的实用程序。 它是一个使用curl 执行API 调用的bash 脚本,您只需添加要使用的命令及其参数作为参数即可。
安装:
使用 git 克隆
cd ~
git clone https://gitee.com/linboxs/hestiamb.git
sudo cp v-wrapper-hestia-api/v-wrapper-hestia-api /usr/local/bin/
使用 curl
sudo curl -s https://gitee.com/linboxs/hestiamb/raw/master/v-wrapper-hestia-api -o /usr/local/bin/v-wrapper-hestia-api
sudo chmod 755 /usr/local/bin/v-wrapper-hestia-api
使用 wget
sudo wget https://gitee.com/linboxs/hestiamb/raw/master/v-wrapper-hestia-api -O /usr/local/bin/v-wrapper-hestia-api
sudo chmod 755 /usr/local/bin/v-wrapper-hestia-api
配置脚本使用的选项(主机、端口和凭证):
创建并编辑文件 ~/.v-wrapper-hestia-api.conf
对于新 API 添加以下变量并使用您自己的数据:
host='hestiacp.example.com'
port='8083'
access_key='HereYourAccessKey'
secret_key='HereYourSecretKey'
对于 旧版 API(用户/密码) 使用您自己的数据添加以下变量(用户将始终是管理员):
host='hestiacp.example.com'
port='8083'
user='admin'
password='HereYourPassword'
对于 旧版 API(哈希值) 使用您自己的数据添加以下变量:
host='hestiacp.example.com'
port='8083'
hash='HereYourHash'
对于所有 API 模式,您可以添加所有变量,脚本将根据已使用的选项使用正确的变量:
host='hestiacp.example.com'
port='8083'
access_key='HereYourAccessKey'
secret_key='HereYourSecretKey'
user='admin'
password='HereYourPassword'
hash='HereYourHash'
用法:
v-wrapper-hestia-api [-l|--list] [-u|--user-password] [-h|--hash] HESTIA_COMMAND [ARG1] [ARG2] [...] [ARG13]
列出Hestia命令:
使用此选项您可以列出 Hestia 使用的命令、描述和选项。
v-wrapper-hestia-api [-l|--list] [search pattern]
示例:
v-wrapper-hestia-api -l
v-wrapper-hestia-api -l v-change
v-wrapper-hestia-api --list v-list
v-wrapper-hestia-api -l '.*mail'
v-wrapper-hestia-api --list 'v-.*web'
输出示例:
$ v-wrapper-hestia-api -l v-change-mail
HESTIA COMMAND DESCRIPTION OPTIONS
-------------- ----------- -------
v-change-mail-account-password change mail account password USER DOMAIN ACCOUNT PASSWORD
v-change-mail-account-quota change mail account quota USER DOMAIN ACCOUNT QUOTA
v-change-mail-account-rate-limit change mail account rate limit USER DOMAIN ACCOUNT RATE
v-change-mail-domain-catchall change mail domain catchall email USER DOMAIN EMAIL
v-change-mail-domain-rate-limit change mail domain rate limit USER DOMAIN RATE
v-change-mail-domain-sslcert change domain ssl certificate USER DOMAIN SSL_DIR [RESTART]
新 API:
v-wrapper-hestia-api hestia_command [arg1] [arg2] [...] [arg13]
旧 API(用户名/密码):
v-wrapper-hestia-api [-u|--user-password] hestia_command [arg1] [arg2] [...] [arg13]
遗留 API(哈希):
v-wrapper-hestia-api [-h|--hash] hestia_command [arg1] [arg2] [...] [arg13]
示例:
v-wrapper-hestia-api v-list-users
v-wrapper-hestia-api v-list-web-domain user domain
v-wrapper-hestia-api -h v-list-web-domain user domain
v-wrapper-hestia-api --user-password v-list-users
编辑连接参数:
您可以在脚本中编辑以下变量:
v_host=''
v_port=''
v_access_key=''
v_secret_key=''
v_user=''
v_password=''
v_hash=''
或者您可以在 $HOME
中创建一个配置文件 .v-wrapper-hestia-api.conf
或在当前目录中创建一个文件 .v-wrapper-hestia-api.conf
(该文件优先于 其他选项)。
如果使用conf文件,要使用的变量是(请记住conf文件中不使用“v-”前缀):
host=''
port=''
access_key=''
secret_key=''
user=''
password=''
hash=''
注意:默认情况下,脚本(在本例中为curl)需要在您的Hestia服务器中安装有效的证书,如果您的证书已过期、自签名等,您可以忽略证书验证编辑脚本并更改 将“curl_ignore_cert=0”变量更改为“curl_ignore_cert=1”或将“curl_ignore_cert=1”添加到您的conf文件中。
如何在 Hestia 控制面板中创建访问 API 的凭据
新的 API
您可以使用 Web UI 创建访问密钥。
用户管理配置文件
-> 访问密钥
-> 添加访问密钥
-> 选择您要使用的权限并添加注释(使用空格)
-> 保存
您将看到新的“访问密钥”和“秘密密钥”(将两者保存在安全的地方)。
使用命令行,您可以使用命令“v-add-access-key”创建访问密钥和秘密密钥。
用法:v-add-access-key USER [权限] [注释] [格式]
例如:
# v-add-access-key admin billing AdminBill
ACCESS_KEY_ID: InNqgp01kO3v0W22eg6Z
SECRET_ACCESS_KEY: lcp45pvgZh0f_33veMB2P6HDVUYpYeHjTatZ=hDu
USER: admin
PERMISSIONS: billing
COMMENT: AdminBill
TIME: 01:35:44
DATE: 2023-09-10
如果您想查看可用的 api 以及可以在每个 api 中使用的命令,请使用命令“v-list-apis”。
# v-list-apis
API ROLE COMMANDS
--- ---- --------
billing admin v-add-user,v-delete-user,v-suspend-user,v-unsuspend-user,v-change-user-shell,v-list-user,v-list-users,v-make-tmp-file,v-add-domain,v-change-user-package,v-make-tmp-file,v-change-user-password
mail-accounts user v-list-mail-domains,v-list-mail-domain,v-list-mail-account,v-list-mail-accounts,v-list-mail-account-autoreply,v-delete-mail-account,v-delete-mail-account-alias,v-delete-mail-account-autoreply,v-delete-mail-account-forward,v-delete-mail-account-fwd-only,v-add-mail-account,v-add-mail-account-alias,v-add-mail-account-autoreply,v-add-mail-account-forward,v-add-mail-account-fwd-only,v-change-mail-account-password,v-change-mail-account-quota,v-suspend-mail-account,v-suspend-mail-accounts,v-unsuspend-mail-account,v-unsuspend-mail-accounts
phpmyadmin-sso admin v-add-database-temp-user,v-delete-database-temp-user
purge-nginx-cache user v-purge-nginx-cache,v-list-web-domains,v-list-web-domain
sync-dns-cluster admin v-list-users,v-list-sys-config,v-list-user,v-add-cron-restart-job,v-delete-dns-domains-src,v-insert-dns-domain,v-insert-dns-record,v-insert-dns-records,v-rebuild-dns-domains,v-rebuild-dns-domain,v-delete-dns-record,v-make-tmp-file,v-insert-dns-domain,v-delete-dns-domain
update-dns-records user v-list-dns-records,v-change-dns-record
您可以修改现有 api 或在 /usr/local/hestia/data/api/
中创建您自己的编辑文件,或者使用您要使用的命令列表添加文件。
如果由于某种原因你需要能够使用所有可用的命令,你可以使用此命令向管理员用户授予所有权限(GodMode 只是一个有趣的注释),这里,重要的部分是''
。
# v-add-access-key admin '' GodMode
ACCESS_KEY_ID: ss7zCZQ5HasP3FeZyhYW
SECRET_ACCESS_KEY: ircw1YhKzPlGufaNrQnutN8UOo3JkHqXvWKxCa3J
USER: admin
PERMISSIONS:
COMMENT: GodMode
TIME: 01:52:16
DATE: 2023-09-10
旧 API(用户/密码)
警告!
不建议使用旧版 API,并且可能会在未来版本中从 Hestia 中删除。
您不需要创建任何内容,只需使用您的用户 admin(是唯一允许的用户)及其密码。 使用此方法,您将能够使用所有 Hestia 命令。
遗留 API(哈希)
警告!
不建议使用旧版 API,并且可能会在未来版本中从 Hestia 中删除。
要创建哈希,您必须使用命令行和命令“v-generate-api-key”
示例:
# v-generate-api-key
zIafmk4i6opgjto7x3U_t8sVKj3JT6-P
复制它,您就可以使用它了。 使用此方法,您将能够使用所有 Hestia 命令。
添加你的客户端ip到允许访问API的ip
默认情况下,Hestia 不允许任何 ip 连接到 API,因此如果您想从外部客户端连接,则必须将客户端 ip 添加到 API_ALLOWED_IP。
使用网络用户界面: 服务器设置
-> 配置
-> 安全
-> 系统
-> API 允许的 IP 地址
-> 在新行中添加您的客户端 IP
-> 保存
使用命令行:参考IP系列命令介绍
我不推荐这样做,但是,如果由于某种原因您想要允许所有外部 ip 使用您的 Hestia API,您可以通过 Web UI 或通过命令行添加 ip 0.0.0.0
。 使用风险自负