The AlmaLinux path is the same as the Ubuntu one with dnf instead of apt-get. Two packages per host, both from the same version: shelltrap and the optional shelltrap-cyberpanel.
1. Download and verify
Fetch the packages from the download page with your licence key, or from the client area. Each release directory carries a SHA256SUMS file:
sha256sum -c --ignore-missing SHA256SUMS
rpm -qip shelltrap-0.2.3-1.x86_64.rpm
2. Install
sudo dnf install ./shelltrap-0.2.3-1.x86_64.rpm ./shelltrap-cyberpanel-0.2.3-1.noarch.rpm
Use dnf install rather than rpm -Uvh: the native package manager resolves the dependencies, and rpm -i without a dependency check is only useful for isolated package diagnosis.
3. Activate and check
sudo shelltrap license activate STL-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
sudo shelltrapd --config /etc/shelltrap/shelltrap.toml --check
sudo shelltrap health
Supported RHEL-family releases
AlmaLinux, RockyLinux and RHEL 8, 9 and 10; CloudLinux 8; CentOS 9. Shelltrap does not require a CloudLinux conversion โ it runs on the distribution you already have. That is one of the reasons it exists.
SELinux
The host preflight prints the SELinux and AppArmor state before anything is downloaded, as enforcing, permissive, disabled or unknown. An unknown is a diagnosis, not a quiet promise. Do not loosen SELinux globally to make a test pass; if a policy problem appears, reproduce it on an isolated test machine and tell us what you see.
Full or Lite profile
As on Ubuntu, the profile is measured rather than assumed. Full needs a reachable clamd socket for the shelltrap-scan user plus at least 1.5 GiB of MemAvailable after the reload reserve. Verify:
test -S /run/clamav/clamd.ctl
systemctl status clamd.service
grep -nE 'enable_clamd|clamd_socket' /etc/shelltrap/shelltrap.toml
Removing packages later
A normal removal keeps configuration, logs, state and โ importantly โ quarantine, because quarantine is evidence:
sudo dnf remove shelltrap-cyberpanel shelltrap
RPM has no package-manager purge step. A deliberate cleanup calls the packaged maintainer path behind an explicit gate before the erase:
sudo env SHELLTRAP_PURGE_QUARANTINE=1 /usr/libexec/shelltrap/maintainer/postrm purge
sudo dnf remove shelltrap-cyberpanel shelltrap
Full detail: the installation guide.