@elvatis_com/openclaw-ispconfig
v0.1.2
Published
OpenClaw plugin for ISPConfig server management - domains, mailboxes, databases, DNS, websites
Maintainers
Readme
@elvatis_com/openclaw-ispconfig
OpenClaw plugin to manage ISPConfig via the Remote JSON API.
Features
- Session-based API client with auto-reconnect
- 31 tools for read, write, and one-command provisioning
- Safety guards via
readOnlyandallowedOperations - Live integration tests against a real ISPConfig host (read-only)
ISPConfig API format
This plugin uses the JSON endpoint format:
- URL:
https://server:8080/remote/json.php?method_name - Method is passed as query string, not in JSON body
- Body format:
- login:
{ "username": "...", "password": "..." } - normal calls:
{ "session_id": "...", ...params } - logout:
{ "session_id": "..." }
- login:
Installation
ClawHub
clawhub install openclaw-ispconfignpm
npm install @elvatis_com/openclaw-ispconfigISPConfig setup
- In ISPConfig, create a Remote User.
- Grant required API permissions.
- Copy endpoint URL and credentials.
- Configure plugin in OpenClaw.
Configuration
openclaw.plugin.json config keys:
apiUrl(required): ISPConfig JSON API URLusername(required): remote userpassword(required, secret): remote passwordserverId(default1): default server iddefaultServerIp(optional): fallback IP for provisioning DNS A recordreadOnly(defaultfalse): block write toolsallowedOperations(default[]): whitelist of tool namesverifySsl(defaulttrue): TLS certificate verification
Tools
Read tools
isp_methods_listparams: noneisp_system_infoparams: noneisp_client_listparams: optional filter fieldsisp_client_getparams:client_idisp_sites_listparams: optional filters accepted bysites_web_domain_getisp_site_getparams:primary_id(orsite_id,domain_id)isp_domains_listparams: noneisp_dns_zone_listparams: user-related filter paramsisp_dns_record_listparams:zone_idisp_mail_domain_listparams: optional filtersisp_mail_user_listparams: optional filtersisp_db_listparams: user-related filtersisp_ssl_statusparams: noneisp_quota_checkparams:client_idisp_backup_listparams: none (returns skipped if API method unavailable)isp_cron_listparams: optional filters
Write tools
isp_client_addparams: ISPConfigclient_addpayloadisp_site_addparams: ISPConfigsites_web_domain_addpayloadisp_domain_addparams: alias forisp_site_addisp_dns_zone_addparams: ISPConfigdns_zone_addpayloadisp_dns_record_addparams: includetype(A,AAAA,MX,TXT,CNAME) and matching payloadisp_dns_record_deleteparams: includetypeand matching delete payloadisp_mail_domain_addparams: ISPConfigmail_domain_addpayloadisp_mail_user_addparams: ISPConfigmail_user_addpayloadisp_mail_user_deleteparams: ISPConfigmail_user_deletepayloadisp_db_addparams: ISPConfigsites_database_addpayloadisp_db_user_addparams: ISPConfigsites_database_user_addpayloadisp_shell_user_addparams: ISPConfigsites_shell_user_addpayloadisp_ftp_user_addparams: ISPConfigsites_ftp_user_addpayloadisp_cron_addparams: ISPConfigsites_cron_addpayload
Provisioning tool
isp_provision_site- Required params:
domainclientNameclientEmail
- Optional params:
serverIpcreateMail(defaulttrue)createDb(defaulttrue)serverId(default from config)
Workflow:
- Create client
- Create site with SSL and Let's Encrypt enabled
- Create DNS zone
- Add DNS records (
A,CNAME, SPF TXT, DMARC TXT) - Optionally create mail domain and
info@+admin@mailboxes - Optionally create DB user and database
- Ensure SSL flags are enabled on the site
Safety
readOnly=trueblocks all write and provisioning toolsallowedOperations=[...]allows only named tools
Development
npm run build
npm testFor live tests, provide environment variables:
ISPCONFIG_API_URLISPCONFIG_USERISPCONFIG_PASS
License
MIT
