All documentation
  1. Home
  2. Docs
  3. Requirements

Requirements

The installer checks every item on this page in its first stage and stops with a plain message naming the one that failed. Nothing is checked halfway through.

The server

Operating system
Ubuntu 24.04 LTS. Nothing else. One OS is the reason the tuning, the package names and the service units can be exact rather than defensive.
Architecture
x86_64. arm64 is not supported: a binary can be built for it, but no arm64 machine has ever run KLYRN, so the installer refuses rather than ship something untested.
Memory
1 GB minimum. Under 4 GB the installer creates a swap file, but only if the server has none.
Disk
10 GB free.
Access
Root, with systemd, and outbound network access for apt, DNS and HTTPS.
Ports
80 and 443 for the sites, 7443 for the panel on its own TLS listener. All three must be free.

A clean server

KLYRN owns nginx.conf, the PHP-FPM pools and the MariaDB tuning file it writes. It will not adopt a machine that another panel or another administrator is already configuring, because the first update would overwrite their work.

Preflight refuses when it finds:

  • Another control panel.
  • Apache, which would fight nginx for port 80.
  • nginx or MariaDB already running with configuration KLYRN did not write.

The message names what it found and the command to stop it. This is the check that fires most often on a server that has been used before. A fresh provider image has none of them.

Re-installing over an earlier KLYRN is supported. Running the installer again on a finished server is a no-op; if a previous run was interrupted it resumes at the first stage that did not verify. See Running it again.

What you need locally

A current browser for the panel, and an SSH client for the first few minutes. The panel is a single-page application served by KLYRN itself over TLS on port 7443; there is nothing to install on your own machine.

The panel's own certificate is self-signed until you give it a hostname, so the first visit warns. Giving the panel a hostname gets it a Let's Encrypt certificate and ends the warning.

What gets installed

The versions are fixed, not detected. This is what a KLYRN server runs after the installer finishes.

Web server
nginx, configured from the hardware profile. No .htaccess: rules a migration finds are translated and shown to you.
PHP
PHP 8.3 FPM from ppa:ondrej/php, added with a pinned key fingerprint. One pool per site, running as that site's Unix user.
Database
MariaDB 10.11 LTS, hardened through typed SQL: no anonymous users, root over the Unix socket only.
Firewall
ufw, default deny inbound, allowing the SSH port currently in use plus 80, 443 and 7443.
KLYRN itself
Two systemd units from one static binary: klyrn-core as root and off the network, klyrn-web as the unprivileged klyrn user. About 27 MB of resident memory between them at idle.
Node.js
Fetched on demand for Node sites, verified against nodejs.org's published SHA-256 list. Not installed unless a Node site needs it.