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-coreas root and off the network,klyrn-webas the unprivilegedklyrnuser. 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.