Skip to content
Browse documentation 146 guides

Hosting & server tools

Virtualmin Hosting — setup and reference

Configure Virtualmin Hosting credentials, package mapping, provisioning, readback and operational limits.

About 4 min read

On this page

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.

Need a hand?

Tell us your product version, the step you are following and what happened. Our support desk keeps your conversation together.

Contact support →