Skip to content

Naming things

Naming things is hard, but should at least be consistent.

Server names


By default, individual hosts should have use the domain name.

The domain name should be used if:

  • The server has an unique server name (see below), or
  • The server's primary IP address for all address families it has connecivity on is a statically assigned public IP address.

Unique server names

Unique (e.g. non-role-based) server names should be used if:

  • The server has multiple, somewhat unrelated roles (e.g. multipurpose VPSes)
  • The server hosts a service that requires a long-lived server name (e.g. mail exchangers and DNS primaries)
  • The server hosts a service where the rDNS entry will be user-visible (e.g. IRC bouncers)
  • The server is a shell box or other general user-facing host
  • The server is an owned hardware server that is expected to have a long service life with various major hardware changes/upgrades.

There are currently two established naming schemes:

  • VPSes from commercial cloud providers: cloud types and related weather phenomena
  • Anything else: plant species, with the first few letters matching the purpose of the server

If using such a name:

  • For VMs, these should be the exception and not the norm.
  • A single name may never ever ever be assigned to two different hosts at once.

Role-based names

The general role-based service name scheme is: roleNN, where NN is a zero padded rolling number starting from 1. For example, a postgres node could be pg03.

Sometimes it's useful to include location/cluster information in the hostname. In this case, that should be included after the basic role information. For example, a Ganeti node in Hetzner's Helsinki DC could be gnt-hetzner-hel01.

If a word separator is needed, a dash (-) is used.