Virtualmin
Paid invoices create hosting accounts on your own Virtualmin server, unpaid ones suspend them. Customers see disk, bandwidth, mailboxes and databases in your portal.
Ubuntu 24.04 · 2 vCPU · 4 GB
What it does for you
- A paid hosting order creates the account on the product's plan and emails the customer their login.
- An unpaid renewal suspends the account; paying restores it. Accounts are never deleted automatically.
- Customers manage mailboxes, databases and subdomains from their portal.
What you need
- A Virtualmin server reachable from Teculiar over HTTPS (usually port 10000).
- An admin login on it with access to the Virtualmin Remote API.
- Hosting plans (and, optionally, templates) set up in Virtualmin for each package you sell.
Set it up
- 01Configure the module
Go to Admin → Products → Modules and choose Configure on Virtualmin Hosting Panel.
- 02Add the server
Give the connection a name, then enter the Virtualmin Server URL, the Admin Username and the Admin Password. The password is stored encrypted and shown as ******** afterwards.
- 03Self-signed certificate
Tick Allow Self-Signed SSL Certificate only if your panel has no trusted certificate.
- 04Email host prefixes
Optionally set Email host prefixes: each becomes a link on the customer's own domain in hosting emails.
- 05Pause between jobs
Optionally set Minutes between server jobs if your server needs a pause between creating or suspending accounts.
- 06Choose it on each product
On each hosting product (or its category), choose Virtualmin as the module, and the plan (and template) the account is created on. A product with no module is handled by hand.
- 07Show the panel in the embedded portal
On by default. Turn it off to keep the hosting panel out of the portal you embed on another website; your own portal still shows it.
Events
- service.provisioned
- service.suspended
- service.unsuspended
Good to know
- When it is switched off, hosting orders are still billed, but no account is created, suspended or restored: each waits for you to handle it on the server. The hosting panel disappears from your customers' portal. Nothing is deleted; switching the module back on resumes automation.
- Several servers: add one connection per server. A hosting account stays on the server it was created on; new accounts go to the default connection, unless the product names a server group. When every server in the group is full, a new order waits for you instead of overfilling one.
- Test connection checks the login with a read-only call.