Skip to main content

Hosts and services

Everything the server answers for hangs on two things: a host, which is a hostname the server knows, and the services attached to it, which are what that hostname does. example.com is a host; its DNS zone, its website and its mail are three services on it. The server's own hostnames are hosts too, with the system's services on them.

An account holder sees only their own hosts and services, in the vocabulary of Domains, zones, and services. Hosts and Services, in the admin app's System menu, show every host and every service on the server, the system's included.

Hosts​

Hosts lists each hostname with its owner (an account, or System), the services on it, and one certificate badge: OK, Self-signed, Expired or None. A Self-signed badge carries, as its tooltip, the reason the last certificate round gave.

A host's page adds:

  • Domain: the DNS zone the host belongs to. A host finds its zone by walking up its own name, label by label, until it reaches a host that carries a zone belonging to the same owner, and takes the closest one. So shop.example.com belongs to the zone example.com, unless it is a zone of its own.
  • Provisioning Strategy, Last Provisioning, Reason and Last Attempt: how the host gets its certificate and how the last round ended. Certificates explains them.
  • The Services on the host, each with its Role: web, mail, domain or other.
  • The Certificates assigned to the host.
elpanctl host:list
elpanctl host:view <hostname or UUID>

host:view also prints the DNS records at the host. host:list accepts --format=tsv or --format=jsonl for scripts, as every list command does.

A host without services​

A host is created with its first service and removed, by a worker, once it carries no service and no mail address (a mailbox, a forwarder, a group). One left behind from before that rule existed is a dangling host:

elpanctl host:remove-dangling --dry-run
elpanctl host:remove-dangling

It asks about each host unless you pass --force, and re-checks the host before removing it: one that gained a service or a mail address in the meantime is skipped.

Services​

Services lists every service on the server: hostname, type, owner and creation time. A service's page shows the same, with its Role, its Description, a Note when its owner wrote one, and the Generated DNS Records the service contributes to its zone.

elpanctl service:list
elpanctl service:list --owner=<username>
elpanctl service:list --owner=server
elpanctl service:list --type=<type>

The service types​

An account's services:

TypeWhat it is
DNS ZoneAnswers DNS for the domain and every domain beneath it. The container the account's other services publish their records into.
WebsiteA website on the hostname, with the DNS records that point it at the account's group (Shared IP Address Groups) and automatic HTTPS.
Website AliasAnother hostname serving an existing website.
MailThe domain sends and receives mail: MX, SPF, DKIM, DMARC and the autodiscovery records come from it.
Mail ServerThe access side of mail, webmail and client connections; each Mail service names the Mail Server its users connect through.
Identity ProviderAn OpenID Connect provider on the hostname, where the account's domain users sign in.

The server's own, owned by System, on the server hostname and its subdomains:

TypeHostnameWhat it is
Server<server hostname>The canonical server name and its settings.
DNS Zone<server hostname>The server's own zone.
Admin Paneladmin.<server hostname>The admin app.
Control Panelcontrol.<server hostname>Where account holders sign in.
Identity Provideraccounts.<server hostname>The server's own OpenID Connect provider.
Incoming Mail Servermail.<server hostname>Receives mail from outside and delivers it to mailboxes on this server.
Outgoing Mail Servermail-out.<server hostname>Sends the system's mail out.
Bounce Handlerbounces.<server hostname>Receives delivery failure reports for mail the server forwarded.
DNS Serverdns1.<server hostname>, dns2.<server hostname>The server's own authoritative name servers. See How DNS publication works.
phpMyAdmin, Adminerphpmyadmin.<…>, adminer.<…>The database tools.
System services cannot be removed

service:remove refuses a service the server created and needs, and says so.

Create a service​

The account holder creates services in their panel; you create them with the service:*:create commands, usually right after the account, as Create an account shows.

Refresh a host or a service​

Each service keeps its configuration on disk and its DNS records in the zone, and regenerates both when something it depends on changes. When they look out of step with what the panel shows, ask for them again:

elpanctl service:refresh <service UUID>
elpanctl host:refresh <hostname>

service:refresh asks one service to regenerate its configuration; a worker applies it. host:refresh regenerates the DNS records of every service on the host, comparing them with what the zone already holds, so a refresh that changes nothing publishes nothing.

Remove a service​

elpanctl service:remove <service UUID>

It shows the service and asks before removing it (--force skips the question, and is needed when there is no terminal to answer it). The service's DNS records and, for a website, its vhost go with it. The repository's rules hold here as they do in the account panel: a Mail Server that other Mail services use, or an Identity Provider with client applications, is refused with the reason.

The host stays, and a worker removes it once it has no service and no mail address left; host:remove-dangling removes one that is left behind.

The server's own panels

Removing the server's Admin Panel, Control Panel or Identity Provider service takes down the sign-in it provides, and the devices and passkeys registered on it. service:remove names what each one takes with it before asking; only the Admin Panel service can be set up again (service:adminpanel:init). An admin user who signs in with a passkey alone gets back in with server:login or server:admin-user:reset-credentials (see Break-glass on the host).