DEV Community

Danilo Machado
Danilo Machado

Posted on

2 1

Exemplos de uso da api do cpanel

Bom, quando trabalhei num sistema distribuído, precisávamos criar subdomínios, databases e várias outras coisas em real-time para cada cliente especificamente, então criei um shell script para automatizar as tarefas.

// create subdomain
curl -H'Authorization: cpanel {cpanel_user}:{cpanel_token}' 'https://{cpanel_url}:2083/json-api/cpanel?cpanel_jsonapi_func=addsubdomain&cpanel_jsonapi_module=SubDomain&cpanel_jsonapi_version=2&domain={sub_domain}&rootdomain={domain}&dir={directory}'
// delete subdomain
curl -H'Authorization: cpanel cpanel {cpanel_user}:{cpanel_token}' 'https://{cpanel_url}:2083/json-api/cpanel?cpanel_jsonapi_func=delsubdomain&cpanel_jsonapi_module=SubDomain&cpanel_jsonapi_version=2&domain={$url}'
// create database
curl -H'Authorization: cpanel cpanel {cpanel_user}:{cpanel_token}' 'https://{cpanel_url}:2083/json-api/cpanel?cpanel_jsonapi_user=user&cpanel_jsonapi_apiversion=2&cpanel_jsonapi_module=MysqlFE&cpanel_jsonapi_func=createdb&db={database}'
// delete database
curl -H'Authorization: cpanel cpanel {cpanel_user}:{cpanel_token}' 'https://{cpanel_url}:2083/json-api/cpanel?cpanel_jsonapi_user=user&cpanel_jsonapi_apiversion=2&cpanel_jsonapi_module=MysqlFE&cpanel_jsonapi_func=deletedb&db={database}'
// add privilegies in database
curl -H'Authorization: cpanel cpanel {cpanel_user}:{cpanel_token}' 'https://{cpanel_url}:2083/json-api/cpanel?cpanel_jsonapi_user=user&cpanel_jsonapi_apiversion=2&cpanel_jsonapi_module=MysqlFE&cpanel_jsonapi_func=setdbuserprivileges&db={database}&dbuser={database_user}&privileges=ALL PRIVILEGES'

Deixo acima alguns endpoints da versão v2 da api do cpanel que me ajudou bastante na automatização.

Referências

cpanel api docs

Top comments (2)

Collapse
 
tadeu_martins_6fcf50ae479 profile image
Tadeu Martins

Olá Danilo tudo bem?
Estou tentando utilizar a api e retorna esse erro: curl: (7) Failed connect to meusite.com:2083; Connection refused

Aconteceu isso com você? Qual foi a solução?

Collapse
 
xxdannilinxx profile image
Danilo Machado

@tadeu_martins_6fcf50ae479 aconteceu sim, se você não tiver acesso, precisa entrar em contato com o provedor do seu host pra liberar tráfego na porta 2083.

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs