Requirements
The installer checks every item on this page in its first stage. It stops with a plain message naming the one that failed.
The server
- Operating system
- Ubuntu 24.04 LTS. Nothing else.
- Architecture
- x86_64. arm64 is not supported and the installer refuses it. No arm64 machine has ever run KLYRN.
- 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 server that another panel or 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.
Re-installing over an earlier KLYRN is supported. See Running it again.
What you need locally
A current browser for the panel, and an SSH client for the first few minutes. KLYRN serves the panel itself over TLS on port 7443. Nothing is installed on your own machine.
The first visit warns, because the panel's certificate is self-signed. Giving the panel a hostname gets it a Let's Encrypt certificate.
What gets installed
The versions are fixed. A KLYRN server runs this 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.