Skip to main content

Create an account

From an initialized server to an account whose holder can sign in and has a domain with a website and mail.

The account​

elpanctl account:create <username>

An account is three Unix users on the server (<username>, <username>-www and <username>-mail), and its username follows from that: a lowercase letter, then up to 15 lowercase letters or digits. The name of a deleted account is never reused.

The account is born without a password. The command prints a setup link into the account panel (https://control.<server hostname>/r/<code>) and an eight-digit PIN, which you hand to the account holder so they choose their own password or passkey. The PIN is shown once and can't be shown again; account:reset <username> issues a new link. The link's rules are in Accounts, and what the holder sees in the account docs: Your setup link.

The same in the admin app: Accounts › Create Account asks for the username and the account's limits, filled with the defaults (Limits), and shows the setup link once, on the account's page.

The shared IP address group​

Every account belongs to one shared IP address group: the set of addresses its websites are served from. account:create puts the account in the first group unless you name another:

elpanctl ip_address_group:list
elpanctl account:create <username> <group ID>

The admin app's Create Account has no group field and always uses the first group. The groups were created at install (--ip-group); adding one later is in Shared IP Address Groups.

Limits​

A new account gets the memory cap of the host's sizing profile. Storage, processes, CPU, mail rates and the rest are set with account:edit, or on the account's Edit page: Limits.

The first services​

A domain gets its capabilities from the services attached to its hostnames, and the standard set for a domain is five services on three hostnames:

HostnameServiceCommand
<domain>DNS zone: the server answers DNS for the domain and every name beneath it.service:domain:create <username> <domain>
accounts.<domain>Identity provider: the sign-in portal of the domain users, which the website and mail services name.service:identity:create <username> accounts.<domain>
mail.<domain>Mail server: webmail and the host mail apps connect to.service:mailaccess:create <username> mail.<domain>
<domain>Mail: the domain sends and receives mail, with its MX, SPF, DKIM and DMARC records.service:mail:create <username> <domain>
<domain>Website, with the DNS records that point it at the server and a certificate.service:website:create <username> <domain>

The order matters: the mail server and the website need the account's identity provider to exist, and the mail service needs the mail server. Each command creates the hostname if the account doesn't have it yet.

The whole set at once, together with the account, is one command:

elpanctl user:create <username> <domain> [<group ID>]

It creates the account, the five services above and a website alias on www.<domain>, and prints the setup link. In the admin app, Add Domain on the account's Domains tab does the same for an existing account, and is how you give it a second domain. A hostname the server already knows is refused.

To see what an account has:

elpanctl account:view <username>
elpanctl service:list --owner=<username>
Only you create zones

The account holder builds inside the zones you give them: websites and mail on subdomains, mailboxes, DNS records. They can't add a domain of their own, so a holder with a new domain comes to you.

Why a domain is several services

A hostname does nothing by itself; a service is the job it does. Splitting the jobs lets a domain have mail without a website, a website on a subdomain, or a mail server shared by several domains. The account docs explain the model: Domains, zones, and services.

What the account holder sees next​

After the setup link, the holder signs in to the account panel and finds the domain ready: a Website and a Mail service on it, the Mail Server, the Identity Provider and the www alias, with the DNS zone already publishing the records they need. The account docs take it from there:

The zone is served by the server's own name servers, dns1.<server hostname> and dns2.<server hostname>. How DNS publication works covers them and what happens when records don't arrive.

On your side, the account appears on Accounts (Accounts), and a billing system can create accounts the same way over the server API: Billing systems.