All chapters

Modules

Modules is what the machine runs for every site: its runtimes, database servers, mail, webmail, file transfer, DNS and backup tool. A fresh cpleks has almost none of it. Each card installs from the distribution's own archive (or, where a card says so, from the software's own publisher), switches on where there is a switch, and says what it did. Only an administrator sees this screen. The test machine below has PHP, Node.js, Python, MariaDB, PostgreSQL, Postfix + Dovecot, Roundcube, Pure-FTPd, NSD and restic installed, all through these cards.

The top of the Modules screen: its introduction, and the Runtimes group with PHP 8.5 ON, Node.js 22 and Python 3.14 installed, each with Uninstall and Decide who may.
The Modules screen of the test machine, from the top. Below the runtimes come the database servers, mail servers, webmail clients, DNS server, SFTP and FTP servers.

What is on it

GroupCards
Mail serversPostfix + Dovecot, Exim + Dovecot, Sendmail (one per machine); a connection to a mail server you run somewhere else; Sending mail
Webmail clientsRoundcube, SnappyMail, Rainloop, Horde (one served for the whole machine)
Database serversMariaDB or MySQL (one slot), PostgreSQL, SQLite, MongoDB
FTP serversPure-FTPd, vsftpd, ProFTPD (one per machine), for FTPS
RuntimesPHP, Node.js, Python, ASP.NET Core
SFTPThe customers' SFTP service, part of the panel and on by default
DNS serverNSD, the nameserver for domains whose DNS lives here
Backupsrestic, which copies backup sets off the machine

Install

  1. Find the card and read it: what the software is, what installing it changes, and anything you should know first, such as that the machine may not have the memory to run it. That warning is a fact placed above the button; the button still works. The round i button beside the card's name shows its full text.
  2. Press Install. The card follows the install live, with the panel's own steps marked cplex: between the package tool's output.
  3. When it is done, the card shows the version and ON (a server that is running) or INSTALLED (a runtime or a tool, which has nothing to run by itself). Installing opens no port by itself.

One package operation runs at a time. Pressing Install on another card meanwhile is refused with a sentence, not a spinner that never ends. Runtimes are chosen per site afterwards, on the site's Server settings tab (Sites).

The switches

Mail, the FTP server and SFTP have an on/off switch. Switching one on or off opens or closes ports in this server's firewall, so the change is armed with a ten-minute rollback: confirm it on the Server screen with Keep this firewall, or the firewall goes back to what it was. A firewall in front of the machine, such as a cloud security group, is not this one; the same ports have to be opened there by you.

Versions and package sources

  • PHP can be installed in more than one version side by side. The card offers exactly the versions the package tool can install on this release, never a version that might exist, and each site picks among the installed ones.
  • Software that is not in the distribution's archive (more PHP versions from Ondřej Surý's archive, MongoDB from MongoDB's own repository) comes from a package source you add on the card, with What am I trusting? explaining who publishes it and what the source may supply. The signing key is built into cpleks, never downloaded. Adding a source is a decision you can take back with Remove.

Uninstall and replace

  • Uninstall removes the software from the server. It never deletes a customer's data, and it never purges the configuration the software was set up with.
  • Where a slot holds one implementation (mail, MariaDB or MySQL, FTP), installing another says so first: This uninstalls … from this server first, with what stays and what does not, and a button that names both steps. Nothing is replaced silently.
  • If a package operation was interrupted (a reboot in the middle, for example), a banner offers Finish it, and names the card to uninstall when finishing cannot succeed.
The Install MySQL? confirmation: it uninstalls MariaDB from this server first, explains that no customer data is deleted and that MariaDB's databases stay in its own data directory, with Cancel and Uninstall mariadb and install MySQL buttons.
What pressing Install MySQL on a server that runs MariaDB asks first. On the test machine it was answered with Cancel.

Who may use a module

Decide who may on a card, or Plans ▸ What each package may use, switches a module off for everyone on a package, with exceptions per customer. Everything installed is included until you switch it off (Users, customers and plans).

Add-ons

Add-ons in the rail is a different screen: software installed into a site. In this release that is WordPress, installed from a site's Add-ons tab with its database and sign-in set up for you. It needs WP-CLI on the server, which an administrator installs by hand at /usr/local/bin/wp; until then the card reads UNAVAILABLE. Under What this box has the screen shows what it looked for and what it found, and it marks plainly the add-ons this build does not provide.