Skip to content
Browse documentation 146 guides

Hosting & server tools

HestiaCP Hosting — setup and reference

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

About 4 min read

On this page

Module and release scope

This guide covers HestiaCP 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
access_key — API access key secret Yes Use the account-specific value described below.
secret_key — API secret key secret Yes Use the account-specific value described below.

Creates one dedicated Hestia customer user and one web domain for each hosting service. Supports read-only account synchronization, package inventory, account creation, suspension, restoration, package changes and explicitly authorized termination. Existing accounts with multiple web domains or administrator roles are refused; attach those to a separate operational workflow. This module does not create mail domains, DNS zones, reseller accounts, VPS instances or server subscriptions, and does not provide automatic sign-in or SSL issuance.

Connect a server

  1. Install a supported, updated HestiaCP server and use a trusted TLS certificate on the panel. Enter only its HTTPS origin, normally https://panel.example.test:8083; the module appends /api/. Firewall access should be limited to the billing server.
  2. From the original administrator account, generate a dedicated API access key and secret. Hestia's API supports a custom command profile: permit v-list-user-packages, v-list-users, v-list-user, v-list-web-domains, v-search-domain-owner, v-add-user, v-add-web-domain, v-suspend-user, v-unsuspend-user, v-change-user-package and v-delete-user. Inventory and global duplicate checks require administrator scope. Keep the key's allowed source IP restricted.
  3. Enter the API access key and secret in the connection, and the actual nameservers used for hosting. Product package names must exactly match Hestia's inventory. Run Test; it reads packages and users without creating an account.
  4. Modules install disabled. Enable this module, configure and test a connection, then explicitly enable the connection. Remote writes and each automated lifecycle operation remain disabled until independently enabled in that connection.

The core reserves a stable lowercase login and encrypted provisioning password before submission. Creation checks both login and existing web-domain ownership before adding a user, then adds its web domain. A failure after user creation remains unconfirmed: review and synchronize the reserved account before any retry, because no automatic cleanup or duplicate create is attempted. Completion requires a new read of the exact login, package, ordinary user role, single owned domain and matching suspension state. Termination requires a suspended account and explicit lifecycle policy, and deletes that dedicated user's resources.

All requests verify TLS, refuse redirects and compressed replies, enforce response-size limits, and never retry writes automatically. This API is command based; its read-only inventory operations also use POST. No provider secrets or contact records appear in test diagnostics.

Official references: REST API and key profiles, API authentication, CLI command arguments, official API examples.

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 →