Panellicense

Install InterWorx on AlmaLinux 9: full setup walkthrough

From a fresh EL9 box to a licensed NodeWorx login — system requirements, the install.sh script, goiworx.pex activation, firewall ports, and the CloudLinux conversion.

schema: HowToschema: FAQPageschema: BreadcrumbList

InterWorx installs from a single bash script and reaches a working NodeWorx login in one sitting. The parts that trip people up are upstream of the script: an unclean base OS, a missing FQDN, a provider that locks /etc/resolv.conf, or a firewall that never opens 2443 so the license can't validate.

This walks the whole path on AlmaLinux 9 — the same steps apply to RHEL 9 and Rocky 9, and to the 8.x releases of all three. If you're still deciding on a SKU, the InterWorx license tiers breakdown covers what VPS Lease actually caps.

Check the box before you touch it

InterWorx 8 wants a fresh, 64-bit EL8 or EL9 install — RHEL, AlmaLinux, or Rocky. Not a repurposed server, not one with a web stack already on it. The installer removes conflicting RPMs with yum, and the more it has to remove, the more likely something breaks halfway.

Minimums from the vendor:

ResourceMinimumRecommended
CPU1.1 GHz2+ cores
RAM2 GB4 GB+
Swap4 GBEqual to RAM at 4-8 GB RAM; 4 GB minimum above 8 GB
Disk20 GB40 GB

Virtuozzo, Xen, OpenVZ, and VMware are supported. Containers are not — Docker and LXC are explicitly unsupported, so an LXC "VPS" from a budget provider is a dead end regardless of how much RAM it has.

Set a proper hostname

Set an FQDN that resolves, and that isn't a domain you plan to host on the box:

hostnamectl set-hostname server1.example.com
hostname -f

Unlock resolv.conf on Vultr

Vultr ships /etc/resolv.conf immutable. The installer writes DNS config and the activation script hangs on it later — this is the single most common "the install froze" report:

chattr -i /etc/resolv.conf
chmod 644 /etc/resolv.conf

Confirm name resolution works before going further:

ping -c2 updates.interworx.com
ping -c2 license.interworx.com

Run the installer

One command, as root:

sh <((curl -sL updates.interworx.com/interworx/8/install.sh))

For InterWorx 7, swap the 8 for a 7. InterWorx 8 went to public release in April 2026 and is the right choice for a new build — 7 only makes sense if you're matching an existing fleet.

Useful flags:

  • -l — headless, no prompts. Use this in provisioning automation.
  • -u — run yum update first.
  • -k — force removal of conflicting packages instead of stopping.
  • -m / -p — pin the MySQL/MariaDB and PHP versions. Without them the installer pulls the latest stable of each.

What the script does to your server, so nothing is a surprise:

  1. Disables SELinux. Non-negotiable, InterWorx doesn't run with it enforcing.
  2. Moves /home to /chroot/home and symlinks it back — only if /home isn't already its own partition. If you want /home on separate storage, partition it before you install.
  3. Uninstalls conflicting RPMs via yum.
  4. Installs InterWorx and its stack — Apache, MariaDB/MySQL, PHP, Dovecot, BIND.

Reboot when it finishes, before activating.

reboot

Activate the license and create the NodeWorx admin

The activation script doubles as the master-account setup. Interactive:

cd /usr/local/interworx/bin
./goiworx.pex

It asks for the license key (format INTERWORX_XXXXXXXXXX), then an email address and password for the master NodeWorx user. Set that password to something other than the server's root password — the panel account and the shell account should not share credentials.

For unattended builds, pass everything on the command line:

~iworx/bin/goiworx.pex --key=INTERWORX_XXXXXXXXXX --email=admin@example.com --password=CHANGEME --ignorechecks

Part of activation converts the stack to PHP-FPM, which can take up to 15 minutes. It looks stalled. It isn't.

Don't have a key yet? Activate an InterWorx license — VPS Lease starts at $7.80/mo and covers up to 35 accounts.

Open the right ports

InterWorx validates its license against license.interworx.com on TCP 2443 outbound, and the panel itself listens on 2443. At least one publicly reachable IP with 2443 open is a hard licensing requirement — a panel behind a full-block firewall will fail activation and, later, fail its periodic re-sync.

PortPurpose
2443NodeWorx and SiteWorx over HTTPS, plus license validation
2080HTTP redirect for the panel, so customers don't hit a certificate warning
22SSH
80 / 443Hosted sites
25, 465, 587, 110, 143, 993, 995Mail
53DNS, TCP and UDP

InterWorx ships its own firewall front end under NodeWorx → System Services → Firewall. Manage rules there rather than editing iptables directly, or the panel will overwrite you.

If activation fails at this point, work through the InterWorx license error checklist — the 24-hour grace period gives you room, but the panel locks after it.

First login and post-install checklist

Log in at https://ip.ad.re.ss:2443/nodeworx/ with the email and password from activation.

Before you create the first SiteWorx account:

  • Nameservers. Set them under NodeWorx → DNS Server → Name Servers and register the glue records at your registrar. Doing this after you've created accounts means editing every zone.
  • Panel SSL. Issue a Let's Encrypt certificate for the panel hostname so :2443 isn't throwing warnings at customers.
  • Backups. InterWorx's per-account backups are fine for restores of single sites; they are not a disaster recovery plan. Pair them with off-server storage.
  • The CLI. nodeworx and siteworx wrap the same API the panel uses, which is what you script provisioning against:
nodeworx -u                                            # interactive menu
nodeworx -u -c Siteworx -a unsuspend --domain example.com -n

Add -h to any controller to list its actions and required arguments.

Optional: convert to CloudLinux

InterWorx runs on CloudLinux 8 and 9, but you can't install CloudLinux first — you install on RHEL/AlmaLinux/Rocky, then convert. If you're running shared hosting, do this now rather than after you have tenants:

yum install interworx-plugin-cloudlinux
wget https://repo.cloudlinux.com/cloudlinux/sources/cln/cldeploy
sh cldeploy -k YOUR_ACTIVATION_KEY   # or: sh cldeploy -i for IP-based
reboot

Then CageFS and the alternate PHP stack:

yum install cagefs --disablerepo=remi* -y
cagefsctl --init
cagefsctl --enable-cagefs
yum groupinstall alt-php --disablerepo=remi* -y

Enable it in NodeWorx → Plugins → CloudLinux LVE Manager (set Status to Enabled and save). The tools then appear under CloudLinux → LVE Manager.

Adding Softaculous

VPS Lease does not bundle Softaculous; both Dedicated SKUs do. If you're on VPS Lease and want the installer, it's a separate Softaculous license. InterWorx is a supported panel for it, and the install follows the standard Softaculous flow.

Can I install InterWorx on Ubuntu or Debian?+
No. InterWorx is EL-only — RHEL, AlmaLinux, Rocky Linux, or CloudLinux, versions 8 and 9. There is no Debian-family build.
Can I install InterWorx on CentOS 7?+
Not for a new build. CentOS 7 is past end of life and InterWorx 8 requires EL8 or EL9. Install on AlmaLinux 9 instead.
How long does the InterWorx install take?+
The install script itself is mostly package downloads and finishes unattended. Budget extra for the activation step — the PHP-FPM conversion inside goiworx.pex can take up to 15 minutes on its own.
Why does my InterWorx install hang on Vultr?+
Vultr ships /etc/resolv.conf as immutable. Run chattr -i /etc/resolv.conf and chmod 644 /etc/resolv.conf before installing, or the activation script stalls after writing iworx.ini.
Do I need to reinstall InterWorx to move to CloudLinux?+
No. Install on AlmaLinux, then run cldeploy to convert in place and install the interworx-plugin-cloudlinux package. The conversion needs one reboot.
Can I run InterWorx in a Docker or LXC container?+
No. InterWorx does not support containerised environments. Use a KVM, Xen, VMware, or Virtuozzo VPS, or bare metal.

Next steps

Running more than a handful of nodes? Talk to us about volume pricing.

Switch in an afternoon

Switch from your current reseller — free.

We migrate active cPanel, Plesk, LiteSpeed and CloudLinux licenses from any reseller. We prorate the first month so you never pay twice, and your customers see zero downtime during the swap.