Hosting & server tools
Virtualmin Hosting — setup and reference
Configure Virtualmin Hosting credentials, package mapping, provisioning, readback and operational limits.
About 4 min read
Module and release scope
This guide covers Virtualmin Hosting 1.0.0, Extension API 1, from the reviewed product source. Its declared core range is 1.3.6–1.3.99. Use the matching released core and signed provider package; a version label alone does not install the required contracts. Source availability does not mean the module is bundled in every currently downloadable product, installed on your server, enabled or certified for your merchant/server account. Nothing in this guide enables a provider or changes your existing connections.
Open System → Hosting servers (newer source may group these as Payments, Domain services or Hosting services). Install the reviewed signed package through Modules & addons or the integration workspace's Install tab, enable the module separately, add an account/connection, save its own credentials, run its stated Test and explicitly enable the connection. Saving or retesting disables the connection until you enable it again. Start with the provider's test environment where supported; otherwise use an isolated account or server.
Exact connection fields
These are the fields declared by this module. Secret values are entered privately and encrypted by the application. Defaults are configuration hints, not approved live merchant settings. Internal fields are populated by the module and are not operator-editable.
| Key / label | Type | Required | Default / guidance |
|---|---|---|---|
server_url — HTTPS control-panel origin |
url | Yes | Include the panel port; do not include an API path. A trusted TLS certificate is required. |
default_nameservers — Default hosting nameservers |
text | No | Comma or space separated authoritative nameservers. |
allow_writes — Allow account creation and changes |
boolean | No | Default: false |
allow_automated_create — Allow automated creation |
boolean | No | Default: false |
allow_automated_suspend — Allow automated suspension |
boolean | No | Default: false |
allow_automated_unsuspend — Allow automated restoration |
boolean | No | Default: false |
allow_automated_change_package — Allow automated package changes |
boolean | No | Default: false |
allow_automated_terminate — Allow automated termination |
boolean | No | Default: false |
username — Webmin master administrator |
text | Yes | Use the account-specific value described below. |
password — Administrator password |
secret | Yes | Use the account-specific value described below. |
Remote integration for Virtualmin GPL/Pro top-level customer virtual servers. Supports account plan inventory, exact account synchronization, creation, suspension, restoration, plan changes and explicit lifecycle termination. It does not provision reseller accounts, Cloudmin virtual machines, aliases, subservers, automatic sign-in or SSL certificates. It refuses administrator logins or an account owning more than the mapped domain.
Configure
Use a current supported Virtualmin/Webmin installation with a trusted TLS certificate. Enter its HTTPS origin, normally https://panel.example.test:10000, the master administrator login and password, and actual hosting nameservers. The module appends /virtual-server/remote.cgi. Firewall access should be restricted to the billing server. Product packages use exact account plan names, not template names or plan IDs.
The administrator requires remote API access for list-plans and list-domains; provisioning additionally requires create-domain, disable-domain, enable-domain, modify-domain and delete-domain. Test reads the plan and account inventories only. Both inventory reads and writes use authenticated POST, keeping passwords out of URLs. Never bypass certificate verification.
Fresh installations are disabled. Enable the module, configure and successfully test the connection, then explicitly enable the connection. Allow account creation and changes and all automated lifecycle flags remain false until independently enabled.
Creation uses the billing core's reserved stable login/password, exact chosen plan, plan limits, configured default features and default IP. A complete account inventory checks both the login and domain before submission. Success requires fresh reads confirming the exact top-level domain, unique owner login, plan name, provider ID and explicit enabled/disabled inventory membership. Plan changes apply plan limits; they do not automatically add/remove website features. Termination requires remote suspension and explicit lifecycle authorization; it deletes the mapped dedicated virtual server and its associated data.
Accepted changes with an incomplete or contradictory follow-up read remain pending. A transport failure after submission never causes an automatic retry or a new random login. Review the reserved account and synchronize it. Response size is limited, redirects and compressed replies are refused, and provider diagnostics redact credentials and contacts. Administrative list output may contain sensitive fields internally; only the minimum verified account identity is returned to the core.
Official references: remote API, command line API, official command implementation, JSON output parser.