Skip to main content

Accounts

An account is one hosting account on the server: the thing an account holder signs in to, and the owner of everything they host. The server knows nothing about the holder as a person. It knows the account, its username, and what the account owns.

What an account is​

On the host, an account is three Unix users and a directory tree:

On the hostWhat
<username>The main user. SSH, cron jobs, the terminal and the files of the account run as it.
<username>-wwwRuns the account's websites and PHP.
<username>-mailOwns the mailboxes.
The base directory, /home/<username> by defaultHolds home/ (the home directory), mail/ (the mailboxes) and log/.

In the panel, the account owns its services (DNS zones, websites, mail), its domain users (the mailboxes), its databases, its API keys and its webhooks. Deleting the account deletes all of it; see Suspend, terminate and delete an account.

Every account belongs to one of the server's Shared IP Address Groups, whose addresses are the account's public addresses. It also has a private IP address of its own, used by its own services on the host.

The username is the system user name: a lowercase letter followed by up to 15 lowercase letters or digits, 16 characters at most, and it cannot be changed. The username of a deleted account can never be used again, by anyone.

The Accounts screen​

Accounts › Accounts lists every account with its status, its domains and when it was created, and filters by Username or by Domain. Create Account creates one; Deletions opens the history and settings of account deletions.

An account's status is one of:

StatusMeaning
ActiveThe account signs in and all of its services run.
SuspendedDisabled at every level, nothing deleted. Reversible.
Pending deletionTerminated: disabled, frozen, and waiting for its deletion.
Being deletedA deletion is running. One-way.

An account's page​

Select a username to open the account. The page has four tabs:

  • General: the status with its actions (Suspend, Terminate, Restore, Delete now); the general information with Reset credentials and Impersonate; the public and private IP addresses; and the Limits, with Edit.
  • Domains: the account's DNS zones, and Add Domain. See Domains.
  • ACME: the account holder's own ACME client accounts, for a commercial CA that gives them External Account Binding credentials. The server still issues the account's certificates through its own ACME account; see ACME Client Accounts.
  • Outgoing Queue: the account's mail that the server has not delivered yet. See Outgoing Mail Queue.

An open request for help signing in shows as a banner on every tab; see Sign-in Help Requests.

The same information on the command line:

elpanctl account:list [--format=tsv|jsonl]
elpanctl account:view <username>

account:list gives the ID, username, IP addresses, base directory and storage limit of every account. account:view shows one account in full: its directories and Unix users, whether a panel password is set, its locale and time zone, every limit, the AI budget and how much of it is left, and the current resource usage.

Create an account​

Create Account asks for the username and the account's limits, filled in with the defaults; account:create takes the username and, optionally, the ID of the shared IP address group:

elpanctl account:create <username> [<shared-ip-address-group-id>]

Without a group, the account goes into the server's first one. The memory limit comes from the host's sizing profile; every other limit is the panel's default (Limits). The account is created with no domain: add one next, from its Domains tab or with service:domain:create. Create an account walks through the whole sequence.

A new account has no password. The panel issues a single-use setup link instead, and shows it once: in the admin app, on the new account's page; after account:create, in the command's output (--format=tsv or jsonl for a script). The link opens a page where the account holder sets their own password or passkey, so nobody but them ever knows a credential of theirs.

The link comes in two forms, both shown together: a one-click URL, and a claim page with the username and an eight-digit PIN, for a hand-off over the phone. A link is valid for seven days, and issuing a new one invalidates the previous one.

What the account holder does with the link is in the account docs: Your setup link.

No password is stored

The panel stores no password. Whether an account has one is read from the host's shadow file, which is why account:view can say "set" or "passwordless" but never show a password.

Reset an account's credentials​

When an account holder cannot sign in, give them a new setup link. Reset credentials on the account's page and account:reset do the same thing:

elpanctl account:reset <username>... [--force] [--format=tsv|jsonl]

The current password stops at once, every session and remember-me cookie ends, and the account stays passwordless until the holder completes the setup page. account:reset takes several usernames and resets none of them if one is unknown.

account:reset-password is the recovery path:

elpanctl account:reset-password <username>

It sets a generated password and prints it once. Prefer account:reset, which hands the holder a link rather than a password in clear text.

Both commands and Reset credentials are refused while the account is suspended or terminated; see Suspend, terminate and delete an account. How the request from the holder's side reaches you, and how to confirm it came from them, is in Sign-in Help Requests.

Repair an account​

elpanctl account:refresh <username>

re-applies the account's configuration on the host: its Unix users and directories, its limits, and, from its current status, its websites, mail gates, DNS zones and database logins. Run it when the host has drifted from what the panel holds. It changes nothing in the panel's own records. The *:refresh family is described in elpanctl.