Skip to content

Documentation

Webmin and Virtualmin

Webmin is the control panel integration for servers that run Virtualmin. It creates and manages web hosting accounts on a machine that is already up. There is no operating system to install and no machine to boot. An account is created, given a plan, and later suspended, moved to another plan or removed.

Webmin is the panel, Virtualmin does the hosting

You know the product as Webmin, and that is what this page is called. What Provibr actually drives is Virtualmin: the module that knows about domains, plans and quotas. Plain Webmin manages a Linux machine and has no notion of a hosting account at all.

On a server without the module the remote API simply is not there: it answers exactly like a module that does not exist. So Provibr cannot fall back on plain Webmin, and it does not pretend to: the connection is refused with a reason rather than half-created.

What you need

Webmin's remote API speaks HTTP Basic, so the secret here is a password and not a token. That is a property of Webmin, not a choice of ours, and it is the reason the two rules below are stricter than for the other control panels.

  • Host: the panel's address. It has to be https, and port 10000 is filled in for you if you leave it out.
  • Webmin user: root works, but a user that only has the Virtualmin module is better.
  • Password: the password of that user. There is nothing to scope, so choose the user carefully.
  • TLS fingerprint: required, because Webmin's installer leaves a self-signed certificate behind.
Give the Virtualmin module to a Webmin user you created for this. It can do everything Virtualmin can do, which is a lot, but not everything Webmin can do.

https and the fingerprint are both mandatory

The other control panel integrations accept a plain http address and tell you what that costs. This one does not, and the difference is the secret: a DirectAdmin login key can be limited to a handful of commands, a Webmin password cannot be limited at all.

Sending that password unencrypted, or to a certificate nobody verified, is not a trade-off we make on your behalf. So http is refused and the fingerprint field cannot be left empty.

Read the fingerprint from any machine that can reach the panel, and paste it as you got it, with or without colons, and the prefix your tool prints may stay.

shell
openssl s_client -connect <host>:10000 </dev/null 2>/dev/null | \
  openssl x509 -noout -fingerprint -sha256
Commands and terminal output are in English everywhere, in the panel and in these pages. One text, one truth: what you read here is literally what your host will print back.

The remote API

Provibr does not use the Webmin web interface. It calls the remote API of the Virtualmin module, which returns machine-readable answers rather than pages. Some installations have that route disabled; you switch it back on under Webmin, Webmin Configuration, Advanced Options.

When the panel answers with a login page instead of the API, the agent says so by name. That usually means the address points at a page rather than at the panel, or the remote API is off.

Settings

There are none. A Webmin server decides for itself where an account lives and which address it gets, so there is nothing left for you to choose. The settings tab still exists, because that is also where you resend credentials.

Plans

A Virtualmin plan is the panel's own description of an account: disk quota, monthly traffic, how many domains and mailboxes, which features are on. It is not a Provibr plan and not an operating system. It is a name we refer to, and its contents can change on your server without us noticing.

The integration page can read the list of plans with what is in them, so you can see what you are choosing rather than typing a name from memory.

A web plan pins one Virtualmin plan on one integration and gives it a name of your own. Ordering with a plan beats picking a loose one, and the loose picker stays available for the cases a plan does not cover.

What an account looks like in Provibr

A hosting account is an ordinary server row of the type webserver. Its identifier is the internal number Virtualmin gives the domain, and its domain, user, plan and features come along on every poll.

  • Creating an account needs a domain, an email address, a plan and a password.
  • The unix user is derived from the domain, so hyphens are normal here, unlike DirectAdmin, which has its own naming rule.
  • The password is not recorded anywhere. Only the fact that you supplied one is; the value travels separately.
  • Afterwards you can suspend, resume, change the plan and delete. There is no console, because a hosting account does not have one.
The identifier is the number and not the name, because Virtualmin can rename a domain. A name-based key would come loose from its row the first time somebody does that.

Quota and usage

Disk quota and traffic ride along with the regular poll, so an account gets a usage graph without anything extra being switched on, provided the server can measure them.

Virtualmin only reports quota and usage when filesystem quotas are switched on, and a fresh installation has them off. Until somebody turns them on, those fields simply are not there. Provibr shows nothing instead of a zero: no measurement and no usage are not the same thing.

Adopting accounts that already exist

The import tab lists the accounts on the panel and lets you take the ones you want into Provibr. Accounts already known are shown but cannot be selected again, so you can see the whole picture rather than a filtered one.

Imported accounts count towards your capacity exactly like accounts you ordered. Import more than you have room for and an overage opens, with the usual grace period.