If you run your own VPS and want a graphical hosting control panel without paying cPanel licence fees, Control Web Panel (CWP, formerly CentOS Web Panel) is one of the most popular free options. It gives you a web interface for creating accounts, hosting multiple sites, managing DNS, email and SSL — all on a server where you keep full root access.
This guide walks through installing CWP on a Momo Cloud VPS, configuring it for first use, and securing it properly. CWP is squarely a RHEL-family tool, so the operating system you provision matters a great deal — we'll cover that first.
What CWP is, and who it suits
CWP is a self-managed control panel: you install it on a server you control, and you are responsible for the OS, updates and security. It bundles Apache (and optionally Nginx/Varnish as a reverse proxy), PHP version switching, MySQL/MariaDB, a DNS server, an email stack (Postfix/Dovecot) and free SSL via AutoSSL/Let's Encrypt.
It suits people who want a free, full-featured panel and are comfortable with root-level Linux administration. If you simply want hosting that "just works" without managing a server, Momo Cloud's shared and managed hosting (which already runs cPanel or managed CyberPanel) is the lower-effort path. CWP is for when you specifically want your own VPS.
Requirements: pick the right OS first
CWP targets Enterprise Linux — AlmaLinux and Rocky Linux (and historically CentOS). It does not support Ubuntu or Debian. This is the single most common mistake people make. Although Ubuntu is the default OS for most Momo Cloud server tutorials, for CWP you must provision an EL-family image.
- A fresh VPS — never install CWP over an existing web stack. The installer expects a clean machine.
- AlmaLinux 9 or Rocky Linux 9 (64-bit). AlmaLinux 8 / Rocky 8 also work on current CWP builds.
- A static IP address (your VPS IP is fixed — find it on the server detail page in the client area).
- At least 2 GB RAM (4 GB+ recommended once email and SSL are running), and a couple of CPU cores.
- Root access via SSH.
Tip: When ordering your VPS from the Momo Cloud catalogue, choose AlmaLinux or Rocky as the OS during the order wizard. If you only see Ubuntu, open a support ticket and ask for an EL image, or reinstall the OS from the server panel before you begin.
Warning: If you are committed to Ubuntu, do not force CWP. Use CyberPanel instead — it runs cleanly on Ubuntu 22.04/24.04 LTS and offers a similar free, full-featured experience (it's also the panel Momo Cloud uses for some managed services).
Before you start: take a snapshot
The CWP installer makes sweeping changes and the server reboots midway. If anything goes wrong, you want a clean rollback point. Open your VPS from the server list at cloud.momo.tz and create a snapshot before doing anything else. You can revert to it in minutes if the install misbehaves.
Installing CWP
Connect over SSH using the IP and root password shown on the server detail page (reveal the password with the eye icon, or use the in-browser Console if you prefer).
First, fully update the OS and install a couple of prerequisites:
sudo dnf -y update
sudo dnf -y install wget
Set a fully-qualified hostname before installing — CWP is fussy about this. Use a subdomain you control, not your bare domain:
sudo hostnamectl set-hostname server.example.com
Now download and run the official CWP installer. The script lives at the project's repository; run it from /usr/local/src:
cd /usr/local/src
sudo wget https://raw.githubusercontent.com/cPanelization/cwp-el9/main/installers/cwp-el9-latest
sudo sh cwp-el9-latest
Tip: Use the installer that matches your OS — cwp-el9-latest for AlmaLinux/Rocky 9, and the EL8 installer for version 8. Always fetch the current installer link from the official CWP site rather than copying an old URL, as the paths change between releases.
The installation takes roughly 20–40 minutes depending on your VPS specs and network. It will pull in Apache, PHP, MariaDB and the rest of the stack. When it finishes, it prints your panel URLs and reboots the server:
sudo reboot
First login
After the reboot, CWP listens on two admin ports. Open the panel in your browser using your server's IP:
- https://YOUR_IP:2031 — secure (HTTPS) admin login.
- http://YOUR_IP:2030 — plain HTTP admin login.
Log in with username root and your server's root password. Your browser will warn about the self-signed certificate on first use — that's expected; you can replace it with a proper hostname certificate later.
Set hostname, shared IP and nameservers
From the dashboard, confirm the basics before creating any accounts:
- Shared IP: set this to your VPS's public IP so hosted sites resolve correctly.
- Hostname: verify it matches the FQDN you set earlier.
- Nameservers: if you plan to run DNS on the VPS, create glue records (e.g.
ns1.yourdomain.com/ns2.yourdomain.com) at your registrar pointing to this IP. If you would rather let Momo Cloud handle DNS, point your domain at ns1.momo.tz and ns2.momo.tz and manage records there instead.
Tip: DNS changes can take up to 24 hours to propagate. Set nameservers early so they have time to settle before you start testing live sites.
Creating a package and an account
CWP separates resource limits (packages) from the accounts that consume them — the same model as cPanel/WHM.
1. Create a package
Go to Packages > Add a Package and define limits: disk quota, bandwidth, number of databases, email accounts, subdomains and FTP accounts, plus which PHP options apply. Save it.
2. Create a user account / website
Go to User Accounts > New Account, then enter the domain, a username, an email and password, and select the package you just created. CWP provisions the account, document root and a default vhost. The customer can then log in to their own user panel (on port 2083 for HTTPS) to manage their site.
DNS and email
If you enabled the DNS server, CWP creates a zone for each new account automatically. Review records under DNS Functions > List DNS Zones and adjust A/MX/TXT records as needed. If you delegated DNS to Momo Cloud's nameservers instead, recreate the equivalent records there.
For email, CWP installs Postfix and Dovecot. Make sure your VPS has correct PTR/reverse DNS and SPF/DKIM/DMARC records or your mail will land in spam. Reverse DNS is set at the provider level — open a support ticket if you need the PTR record for your VPS IP configured.
SSL with AutoSSL / Let's Encrypt
CWP ships free SSL. For per-account certificates, use AutoSSL, which issues and renews Let's Encrypt certificates for hosted domains automatically. For the panel's own hostname, secure it under CWP Settings > Edit Settings (or the SSL section) so the admin URL stops showing a certificate warning. The only requirement is that the domain already resolves to your server's IP — so finish DNS before requesting certificates.
Securing the panel
A fresh CWP box is reachable on the public internet on several ports. Harden it before putting real sites on it.
Firewall
CWP installs CSF (ConfigServer Security & Firewall) and is managed from Security > CSF Firewall. Confirm it is enabled and that you have opened only the ports you actually need: 20/21 (FTP), 22 or your custom SSH port, 25/465/587 (mail), 80/443 (web), 53 (DNS), and the CWP panel ports 2030/2031/2082/2083/2086/2087. Close everything else.
Change the SSH port
Moving SSH off port 22 cuts down on automated brute-force noise. Edit the SSH config:
sudo sed -i 's/^#\?Port .*/Port 2222/' /etc/ssh/sshd_config
sudo systemctl restart sshd
Warning: Open the new port in CSF before you log out, or you will lock yourself out. If that happens, use the in-browser Console from the server detail page to fix it without SSH.
fail2ban / login protection
CSF includes Login Failure Daemon (lfd), which bans IPs after repeated failed logins to SSH, FTP, mail and the panel itself — review its thresholds under the CSF settings. If you prefer fail2ban, you can install it from the CWP security tools, but running it alongside CSF/lfd is usually redundant; pick one. Also disable direct root SSH login in favour of a sudo user once you've confirmed access works.
CWP vs CyberPanel: which to install
| Consideration | CWP | CyberPanel |
|---|---|---|
| Best OS | AlmaLinux / Rocky (EL) | Ubuntu 22.04 / 24.04, AlmaLinux |
| Web server | Apache (+ optional Nginx/Varnish) | OpenLiteSpeed / LiteSpeed |
| Free tier | Yes (Pro is paid) | Yes (Ent is paid) |
| Email + DNS built in | Yes | Yes |
| Free SSL | AutoSSL / Let's Encrypt | Let's Encrypt |
In short: provision EL and use CWP, or provision Ubuntu and use CyberPanel. Don't try to bend one onto the other's OS.
Wrapping up
CWP gives you a capable, free hosting panel with full root control, provided you run it on the OS it was built for — AlmaLinux or Rocky — and take the time to lock it down. Snapshot first, install on a clean EL VPS, set your hostname and nameservers, then layer on packages, DNS, email, SSL and firewall rules in that order.
Ready to try it? Spin up an AlmaLinux or Rocky VPS from your Momo Cloud client area at cloud.momo.tz, take a snapshot, and follow the steps above. If you need an EL image, reverse DNS configured, or a hand at any point, our team is on 24/7 support via a ticket in the client area.