Skip to content

Create a website

A website in Hyperion is a hosting: one domain with its own system user, document root, nginx vhost and, depending on the type, a PHP runtime and a database. You create one from the Hostings page.

  • Your account has the Create hostings permission. Administrators have it.
  • You know the domain. It does not have to point at the server yet; you can create the site first and switch DNS later.
  • On a cluster with more than one node, you know which node should run the site, or you accept automatic placement.
  • For a PHP application or WordPress, the PHP version you want is installed on the node. The create form offers PHP 8.1, 8.2, 8.3 and 8.4 (see PHP versions and limits).
  1. Open Hostings in the sidebar and click Add a website.

  2. Under What do you want to create?, pick one card:

    • WordPress website installs WordPress, creates the database and generates an admin login. This is the default.
    • Static website serves plain HTML, CSS and images.
    • PHP application gives you PHP and, optionally, a database.
    • App behind a proxy forwards the domain to an app that already runs elsewhere.
    • Redirect sends every visitor to another address. No files, PHP or database are created.

    When the server accepts test sites, a Test website card opens a one-screen form that asks only for a subdomain.

  3. Click Next →. In the Domain field enter the address, for example example.com. A hint under the field tells you when a hosting with that domain already exists.

  4. Optional: in Other addresses enter extra names separated by commas or spaces, for example www.example.com, m.example.com. These become aliases.

  5. Optional: click Check under Is the address pointing here yet?. It reports whether the domain already resolves to this server. A mismatch never blocks creation.

  6. Click Next → and fill in the details for the type you chose:

    • WordPress admin: Your email (blank uses admin@<your-domain>), Site title (blank uses the domain), Admin username (blank uses admin; letters, digits and . _ @ -, up to 60 characters), Admin password (blank or shorter than 8 characters generates a strong one), Language (English, Čeština, Slovenčina, Deutsch, Español, Français or Polski) and Keep this site out of Google for now.
    • Where is the app running? for a proxy, for example http://localhost:3000. WebSocket connections work, and the visitor’s real IP and host are passed through.
    • Send visitors to, Kind of redirect (Permanent (301) or Temporary (302)) and Keep the path for a redirect. The target must start with http:// or https://.
  7. Optional: open Advanced options:

    • Turn on HTTPS now (get a free Let’s Encrypt certificate) issues a certificate as the first step after creation. It needs the domain to point at the server already.
    • Which server should host this? appears only when nodes are enrolled. Auto picks the node with the most free capacity.
    • Profile appears when profiles exist. A profile applies saved limits, plugins and themes after creation. See concepts.
    • PHP version and Database (MariaDB or PostgreSQL). The WordPress card fills in PHP 8.3 and MariaDB when you leave these at none.
    • System user names the Linux account. Leave it blank to derive one from the domain.
  8. Click Create website.

Hyperion creates the system user, the directories, the PHP-FPM pool, the database, a temporary self-signed certificate and the nginx vhost, then opens the site’s page. The document root is /home/<system-user>/<domain>/htdocs, next to logs and tmp. If any step fails, the earlier steps are undone, so you do not end up with a half-created site.

A domain you type with a leading www. is stored without it, so www.example.com becomes the site example.com. Add www.example.com under Other addresses if you want it served.

The system user name is derived from the domain: dots and hyphens become underscores, so my-shop.com becomes my_shop_com. If that name is taken, Hyperion tries _2, _3 and so on. Naming an existing user in System user puts the new site into that account, so both sites run as the same Linux user. Only administrators may do that.

Monitoring starts on its own: an HTTP probe of / every 60 seconds, with an alert after 3 failures in a row. The alert shows in the notification bell. Email and Slack need a destination on the site’s Monitoring & logs tab, because a monitor uses only its own list and webhook. See Monitor a site’s availability.

On the site’s page you see a Credentials for example.com panel with the URL, system user, htdocs path, database host, name, user and password, and the WordPress admin URL, username, email and password. This is the only time the database and WordPress passwords are shown. Click Copy all or Download as .txt, store them, then click I’ve saved these — hide.

For WordPress and for Turn on HTTPS now, a background job continues after the page opens. Its progress shows on the page and under Background jobs. WordPress installation takes roughly 10 to 60 seconds.

Open Hostings: the site is listed with state active.

  • A hosting for example.com already exists on the master node. Pick a different domain. The domain is used by another hosting, on this node or on another one (the message names it). Pick another domain or delete the old hosting.
  • Reverse proxy requires an upstream URL. Fill in Where is the app running?.
  • Redirect requires a target URL starting with http:// or https://. Correct Send visitors to.
  • Only an administrator can put a new site into an existing system user. Leave System user blank, or ask an administrator.
  • Master is in control-plane-only mode (Settings → Cluster → Placement). Pick a worker node from the dropdown. The master does not host sites. Pick a worker or change the placement setting.
  • Certificate issuance failed: … The site stays on the self-signed certificate. Fix DNS, then follow Issue an HTTPS certificate.
  • WordPress install failed: … The hosting exists. Re-run the install from the WordPress tab.