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:
| Resource | Minimum | Recommended |
|---|---|---|
| CPU | 1.1 GHz | 2+ cores |
| RAM | 2 GB | 4 GB+ |
| Swap | 4 GB | Equal to RAM at 4-8 GB RAM; 4 GB minimum above 8 GB |
| Disk | 20 GB | 40 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— runyum updatefirst.-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:
- Disables SELinux. Non-negotiable, InterWorx doesn't run with it enforcing.
- Moves
/hometo/chroot/homeand symlinks it back — only if/homeisn't already its own partition. If you want/homeon separate storage, partition it before you install. - Uninstalls conflicting RPMs via yum.
- 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.
| Port | Purpose |
|---|---|
| 2443 | NodeWorx and SiteWorx over HTTPS, plus license validation |
| 2080 | HTTP redirect for the panel, so customers don't hit a certificate warning |
| 22 | SSH |
| 80 / 443 | Hosted sites |
| 25, 465, 587, 110, 143, 993, 995 | |
| 53 | DNS, 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
:2443isn'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.
nodeworxandsiteworxwrap 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?+
Can I install InterWorx on CentOS 7?+
How long does the InterWorx install take?+
Why does my InterWorx install hang on Vultr?+
Do I need to reinstall InterWorx to move to CloudLinux?+
Can I run InterWorx in a Docker or LXC container?+
Next steps
- Migrate cPanel accounts to InterWorx with mass transfer — the importer, and everything it won't bring across.
- InterWorx clustering setup guide — clustering is included on every SKU, including VPS Lease.
- InterWorx vs cPanel — feature and cost comparison if you're still weighing the move.
Running more than a handful of nodes? Talk to us about volume pricing.