Installation
Install SHM on a verified AlmaLinux 9 server with the one-time, license-bound command generated in Client Area.
Where to find it: Documentation > Hosting Manager > Installation.
Available to: Anyone may read this guide. Generating the command requires access to the SHM license in Client Area, and installation requires root on the target server.
What this page does
This guide separates server eligibility from the installation steps. The current SHM installer validates the operating system, rejects an unsafe fresh-install target, installs its runtime dependencies, prepares the service baseline, activates the selected license, and reports the panel address.
Requirements
| Requirement | Required state |
|---|---|
| Operating system | A clean AlmaLinux 9 server is mandatory. Other distributions and major versions are not supported. |
| Server state | No existing SHM installation or hosting control panel. A fresh install is refused when cPanel, Plesk, DirectAdmin, Webmin, Usermin, Virtualmin, or SHM runtime markers are detected. |
| Access | A root shell on the server. The installer exits before making changes when it is not run as root. |
| License | The SHM license assigned to this server, with Generate install token available in Client Area. |
| Server identity | The intended hostname, primary IPv4 address, working DNS resolution, and accurate system time prepared before installation. |
| Network and tools | Outbound HTTPS access to Synconix and package repositories, plus curl and bash for the initial command. Keep the active SSH port reachable during the change. |
Do not use the fresh-install command to overwrite an existing SHM server. Preserve the server and its backups, then use the supported repair path with Synconix Support.
Virtualization and container support
SHM supports bare-metal servers, KVM virtual machines, LXC and OpenVZ system containers, and Virtuozzo containers running on a modern kernel. The virtualization product name is only the first clue. What matters is whether that server can use the Linux kernel features required by each optional SHM capability.
A KVM virtual machine has its own kernel. An LXC, OpenVZ, or Virtuozzo system container shares the physical host's kernel. The hosting provider therefore controls low-level features such as cgroup controllers, namespaces, nested mounts, subordinate user-ID mappings, and /dev/fuse. SHM can detect and use these features, but it cannot create or grant a kernel permission that the host has blocked. This is why two containers with the same amount of CPU and RAM can offer different SHM capabilities.
| Environment | What to expect |
|---|---|
| Bare metal or KVM | Recommended for the full feature set. The server controls its own kernel and can normally provide cgroup v2, namespaces, mounts, and rootless Podman requirements without an outer container profile withholding them. AlmaLinux 9 and every normal SHM preflight requirement still apply. |
| LXC or OpenVZ | Supported for SHM. Core panel and hosting services remain available when their own prerequisites pass. Managed Podman, JailShell, and per-account resource controls can be fully available, partly available, or unavailable according to the permissions delegated by the container host. |
| Modern-kernel Virtuozzo | Supported. The full optional feature set is available when the host exposes systemd, delegated cgroup v2 controllers, namespaces, and the required mount permissions. A legacy cgroup v1 container can still run independent SHM services, but managed Podman and cgroup-based account limits remain unavailable. |
What cgroup v2 does
Think of cgroup v2 as the Linux resource-control layer. SHM asks systemd to place work performed by each hosting account into that account's own controlled group. The kernel can then enforce a ceiling for that account without applying the same ceiling to the whole server.
cpuenforces the account's CPU percentage.memoryenforces its RAM limit.pidslimits how many processes or tasks it can run.ioenforces disk bandwidth and IOPS limits.
Disk-space and inode quotas are separate. They depend on quota support in the filesystem that stores the account, not on cgroup v2.
Container permissions by feature
- Core SHM and hosting services: The panel and independent web, PHP, DNS, mail, and database services are not disabled merely because cgroup v2 is missing. Each service must still pass its own installation prerequisite and health check.
- Managed Podman: Requires systemd as PID 1, a working systemd user manager, delegated
cpu,memory, andpidscontrollers, unprivileged user and network namespaces, subordinate UID/GID mappings, and working rootless storage and networking. A container host may also need to expose/dev/fuseand allow nesting. - JailShell: Base JailShell does not require cgroup v2. In a system container it does require systemd as PID 1, a filesystem that permits its protected setuid launcher, nesting or mount namespaces, and permission for the isolated bind,
proc, anddevptsmounts. The container profile commonly grants the required mount operations throughCAP_SYS_ADMIN. Enabling Podman inside JailShell also requires every Podman capability listed above. - Per-account resource limits: CPU, RAM, process/task, disk-bandwidth, and IOPS limits are available only for the controllers exposed by the host. If one controller is missing, the related fields remain unlimited and SHM does not pretend that an unenforceable limit was applied.
Why a restricted container cannot enable these features
The host kernel creates the cgroup hierarchy and decides which namespaces, devices, capabilities, and mount operations enter the container before SHM starts. Installing another package or changing a file inside the guest cannot replace a missing host-kernel feature, convert a legacy cgroup v1 host to cgroup v2, or delegate a permission from outside the guest. When one of these checks fails, the cause is the container's virtualization profile rather than an SHM setting.
What to confirm with your VPS provider
- systemd runs as PID 1 inside the container.
- A unified cgroup v2 hierarchy is delegated with
cpu,memory, andpids; requestiowhen account disk-bandwidth or IOPS limits are required. - Nesting or mount namespaces and the bind,
proc, anddevptsmount operations required by JailShell are allowed. - For Podman, unprivileged user/network namespaces, subordinate UID/GID mappings, rootless networking, and
/dev/fuseare available.
If the provider cannot supply these capabilities, use KVM or bare metal for the complete feature set. A restricted LXC, OpenVZ, or Virtuozzo container can still be a valid SHM server for the independent features it supports; unavailable optional capabilities should be treated as a known platform limit, not as a failed SHM installation.
Install SHM
Installation command: Open Client Area > Licenses.
- Sign in to Client Area and open Licenses.
- Select the SHM license intended for this server, choose Generate install token, and confirm.
- Keep Stable selected unless Synconix Support has asked you to use another release channel.
- Copy the complete command while the token countdown is active. Client Area displays the command in this format:
curl -fsSL 'https://download.synconix.com/YOUR_INSTALL_TOKEN' | bash
YOUR_INSTALL_TOKEN is a non-working placeholder. Use only the command generated for the selected license. The real token is one-time and expires; never save or share it in scripts, screenshots, tickets, or logs.
- Paste the generated command into the root shell of the intended server and run it exactly as shown.
- Let the installer finish. Do not bypass an operating-system, existing-panel, or existing-SHM safety refusal.
Verify the installation
- Confirm that the installer reports completion and prints an HTTPS address on port
882. - Open the printed address and confirm that the SHM sign-in page responds.
- Sign in and verify that the selected license is recognized before configuring customer services.
- If the installer stops, read
/var/log/synconix-shm/install.log. Generate a new token only when the previous token expired; do not reuse another license's command.
Result and next check
SHM is installed only when the installer completes, the panel opens on the intended server, and the correct license is active. Continue with Quick Start to configure services, security, packages, a test account, DNS, mail, and backups.
Theme color