Short answer: download cldeploy from https://repo.cloudlinux.com/cloudlinux/sources/cln/cldeploy and run bash cldeploy --precheck. Then convert with bash cldeploy -k YOUR_KEY, or with bash cldeploy -i for an IP-based licence (licences bought through cPanel are IP-based), and reboot into the CloudLinux kernel.
Applies to cldeploy 1.132 (options and code read; --precheck run on AlmaLinux 9.8 + cPanel 138, 11 Oct 2026); CloudLinux command-line tools documentation
Everyday commands: cagefsctl for CageFS, lvectl and lveinfo for LVE limits, selectorctl for the PHP Selector. If the server says it is not registered, re-register with /usr/sbin/clnreg_ks --force. Keep the folder /etc/cl-convert-saved that the conversion creates: cldeploy --uninstall uses it to go back to AlmaLinux, and without it a cPanel server is converted to end-of-life CentOS instead.
What we checked: we downloaded cldeploy 1.132 on our cPanel lab server (cPanel & WHM 138, AlmaLinux 9.8) on 11 October 2026, read its options and code, and ran --precheck, which changed nothing on the server. We did not convert the lab, because conversion replaces the kernel and is hard to undo. The cagefsctl, lvectl, lveinfo and selectorctl commands are quoted from CloudLinux’s command-line documentation; we have not run them on a CloudLinux server for this page.
Table of Contents
Check first: cldeploy --precheck
wget https://repo.cloudlinux.com/cloudlinux/sources/cln/cldeploy
bash cldeploy --precheck --skip-version-check
On our lab the precheck finished with exit code 0, and the installed package count was the same before and after (2,170). It printed:
[CHECK] system is not already converted to CloudLinux - SUCCESS
[CHECK] conversion to CloudLinux is not running - SUCCESS
[CHECK] Detected CloudLinux release 9.8 - SUCCESS
[CHECK] basic system checks passed - SUCCESS
[CHECK] dnf plugins are enabled - SUCCESS
[CHECK] groups clsupergid and clsudoers are empty - SUCCESS
[CHECK] incompatible binary driver is not detected - SUCCESS
[CHECK] incompatible third-party kernel modules are not installed - SUCCESS
[CHECK] conversion will be performed from Almalinux - SUCCESS
The precheck log is /var/log/cldeploy-precheck.log. A FAILED line names the problem to fix before converting, for example a third-party kernel module.
Convert AlmaLinux to CloudLinux
bash cldeploy -k YOUR_ACTIVATION_KEY # key from CloudLinux Network (CLN)
bash cldeploy -i # IP-based licence (e.g. bought through cPanel)
reboot # boot into the CloudLinux kernel
To keep the key out of your shell history, cldeploy also reads it from the CLDEPLOY_ACTIVATION_KEY environment variable. Other options from cldeploy -h:
| Option | What it does |
|---|---|
--precheck | Checks whether the server can be converted, then exits |
-y, --noninteractive | Answers yes to all questions |
--conversion-only | Converts the OS but does not install control panel components |
--components-only | Installs only the control panel components |
--skip-kmod-check | Skips the check for unsupported kernel modules (use with care) |
--hostinglimits | Also installs mod_hostinglimits |
--testing-repos | Enables the testing repositories |
-c, --uninstall | Converts back (see the uninstall section) |
The conversion is logged in /var/log/cldeploy.log, and cldeploy keeps copies of the original OS release files in /etc/cl-convert-saved.
Licence: key, IP and re-registration
cldeploy registers the server with one of two commands, which you can also run yourself:
/usr/sbin/rhnreg_ks --activationkey YOUR_KEY # key-based licence
/usr/sbin/clnreg_ks # IP-based licence
/usr/sbin/clnreg_ks --force # re-sync an active licence (cPanel's fix for the error below)
If dnf or cPanel’s upcp fails with This system is not registered with CloudLinux Network server, check that the licence is active for this server’s IP or key. Then run /usr/sbin/clnreg_ks --force. Without --force you may see Command rhn_check exited with code zero. That usually means that registration is not needed. Use --force to override.
CageFS commands
| Task | Command |
|---|---|
| Create CageFS | cagefsctl --init |
Cage everyone (except users in users.disabled) | cagefsctl --enable-all |
| Cage one user | cagefsctl --enable USER |
| Uncage one user | cagefsctl --disable USER |
| Is a user caged? | cagefsctl --user-status USER |
| Is CageFS on? | cagefsctl --cagefs-status |
| Current mode | cagefsctl --display-user-mode |
| List caged or uncaged users | cagefsctl --list-enabled / --list-disabled |
| Update the skeleton | cagefsctl --update (--force-update ignores the update period) |
Remount after editing cagefs.mp | cagefsctl --remount-all |
| Remount one user | cagefsctl -m USER |
| Rebuild a user’s alt-php ini | cagefsctl --rebuild-alt-php-ini USER |
| Self-diagnosis | cagefsctl --sanity-check |
| Back up and recreate CageFS | cagefsctl --reinit |
Do not confuse --force-update with -f/--force: the second one recreates CageFS. For the PHP Selector error that appears when CageFS is off, see “Cannot manage PHP versions when CageFS is disabled”.
LVE limits: lvectl and lveinfo
CloudLinux recommends setting limits in LVE Manager in WHM, DirectAdmin or Plesk. From the command line, lvectl has the form lvectl command [lveid] [options]:
lvectl list # loaded LVEs and their limits (IDs)
lvectl list-user # the same with usernames
lvectl set default --speed=100% --pmem=256m # server defaults (CloudLinux's own example)
lvectl set-user bob --pmem=2048m --maxEntryProcs=40 # one user
lvectl delete-user bob # back to the defaults
lvectl package-list # limits per hosting package
lvectl apply all # re-apply /etc/container/ve.cfg to every LVE
lvectl destroy all # reset all LVEs, killing processes inside them
Limit options: --speed=N% (CPU, 100% is one core), --pmem (physical memory), --vmem, --nproc (processes), --maxEntryProcs (concurrent entry processes, the cause of 508 errors), --io (KB/s), --iops and --unlimited. The older --save flag is deprecated. To see who hits limits:
lveinfo --period today --order-by aCPU --limit 10 --display-username # top CPU users today
lveinfo -d --period=1d --by-fault=ep # who hit the entry-process limit
lveinfo --period=1d --user=bob # one user's history
cloudlinux-top # live view
What each limit means and how to choose values: CloudLinux LVE limits explained. For 508 errors: “508 Resource Limit Is Reached”.
PHP Selector: selectorctl
selectorctl --list # available alt-php versions
selectorctl --summary # which versions are enabled
selectorctl --set-user-current=8.3 --user=bob # set one user's PHP version
For Python and Node.js, CloudLinux uses cloudlinux-selector instead of selectorctl.
Uninstall: what cldeploy --uninstall really does
cldeploy -c (--uninstall) converts the server back. We did not run it, but we read what version 1.132 does:
- It first removes CageFS, MySQL Governor (
db-governor), alt-php, alt-python and LVE Manager, so every customer feature that depends on them stops. - Converted from AlmaLinux: the conversion saved the original OS release files in
/etc/cl-convert-saved. If that folder shows AlmaLinux, the uninstall reinstalls the AlmaLinux release packages. - No saved files (the server was installed as CloudLinux from the start, or the folder was deleted): on cPanel and Plesk it converts to CentOS and imports keys from
mirror.centos.org. CentOS 7 and 8 are end-of-life, so that is not a system to keep. - Converted from Rocky Linux: it stops with
Unfortunately automatic uninstall for RockyLinux is not possible. Reinstall you server from scratch.
So never delete /etc/cl-convert-saved, take a full backup before converting or reverting, and test the revert on a copy of the server first. On a busy production server, a fresh AlmaLinux server plus an account migration is usually less risky than reverting in place; see migrate cPanel accounts to a new server.
Common problems
- “This system is not registered with CloudLinux Network server”. Confirm that the licence is active, then run
/usr/sbin/clnreg_ks --force. - The precheck reports an incompatible kernel module. Remove the module or ask the vendor.
--skip-kmod-checkonly hides the warning. - Limits do not change after editing ve.cfg. Run
lvectl apply all. - A user has old files inside CageFS. Run
cagefsctl --force-update, thencagefsctl -m USER. - lvectl rejects --ep. The option is
--maxEntryProcs.
Frequently asked questions
How do I convert AlmaLinux to CloudLinux?
Download cldeploy from repo.cloudlinux.com/cloudlinux/sources/cln/cldeploy, run bash cldeploy --precheck, then bash cldeploy -k YOUR_KEY (or -i for an IP-based licence) and reboot into the CloudLinux kernel.
How do I re-register a CloudLinux licence?
For an IP-based licence run /usr/sbin/clnreg_ks --force. For a key run /usr/sbin/rhnreg_ks --activationkey YOUR_KEY. cPanel recommends clnreg_ks --force when dnf or upcp says the system is not registered.
Can I uninstall CloudLinux and go back to AlmaLinux?
Yes, if the server was converted from AlmaLinux with cldeploy and /etc/cl-convert-saved still exists: cldeploy --uninstall uses it to reinstall the AlmaLinux release. Without that folder, cPanel and Plesk servers are converted to end-of-life CentOS, and servers converted from Rocky Linux are refused. CageFS, alt-php and LVE Manager are removed either way.
How do I raise a user’s entry process limit?
Run lvectl set-user USERNAME --maxEntryProcs=40, or set it per package in LVE Manager. Check who hit the limit with lveinfo -d --period=1d --by-fault=ep.
What is the difference between cagefsctl --update and --force-update?
--update adds new and changed files to CageFS when the update period has passed; --force-update does it now, ignoring the period. Neither recreates CageFS; that is --reinit or --force.
Reading a lot of our guides? Go ad-free with srvScripts Pro for $6 a month. It also pays for new guides. Cancel any time.
Maintenance record
This guide changes servers, data or security settings, so we re-check it against current versions on a fixed schedule. Take a backup or snapshot before you start.
- Maintained by
- srvScripts editorial team
- Supported versions
- cldeploy 1.132 (options and code read; --precheck run on AlmaLinux 9.8 + cPanel 138, 11 Oct 2026); CloudLinux command-line tools documentation
- Last full review
- Next review
- Sources
- docs.cloudlinux.com/cloudlinuxos/command-line_tools
docs.cloudlinux.com/legacy/command-line_tools
docs.cloudlinux.com/cloudlinuxos/limits
support.cpanel.net/hc/en-us/articles/360060392994-How-to-convert-a-CentOS-or-AlmaLinux-server-to-CloudLinux
support.cpanel.net/hc/en-us/articles/34366662577559-dnf-upcp-failing-This-system-is-not-registered-with-CloudLinux-Network-server