Free Website Control Panel Installer & Server Toolkit for beginners
Auto-detects your Linux server → recommends the best FREE panel → installs it with its official installer
🌐 Language / زبان: English | اردو (Roman Urdu)
🚀 Quick Start • 🧭 Menu • 🖥️ Panels • ⭐ Which panel? • 📘 Docs • ❓ FAQ
Important
Just bought a VPS and have no idea what to do? This tool is exactly for you. It detects your server, tells you which control panel actually fits your RAM / CPU / distro, runs the panel's latest official installer, and later removes it cleanly - with a beginner guide in English and Roman Urdu built right in.
- What is this?
- 🚀 Quick Start
- 🧭 What's inside the menu?
- 🖥️ The 8 panels
- ⭐ Which panel should you pick?
- 🔍 How detection & recommendation works
- 🧹 Junk Cleaner & 🗑️ Clean removal
- 💻 Command-line flags
- 📘 Documentation for beginners
- ❓ FAQ
- 🤝 Contributing & license
VPS WebHoster is a single Bash script that turns a blank Linux VPS into a managed hosting server - without reading 50 tutorials.
| It does | It does NOT |
|---|---|
| ✅ Detect Ubuntu / Debian / AlmaLinux / Rocky / CentOS | ❌ Touch paid panels (cPanel, Plesk, DirectAdmin) |
✅ Detect x86_64 / aarch64, RAM, CPU cores, disk |
❌ Run anything without showing you the command first |
| ✅ Build a terminal TUI (dialog/whiptail, plain fallback) | ❌ Delete your website files or databases |
| ✅ Recommend the best free panel for your machine | ❌ Hide which panel is incompatible or why |
| ✅ Run each panel's latest official installer | ❌ Install without a confirmation |
| ✅ Remove panels cleanly (services → packages → files → ports) | ❌ Claim to be a replacement for understanding your server |
| ✅ Junk-cleaner, firewall, fail2ban, auto-updates, status | |
| ✅ Beginner guide in English + Roman Urdu |
Made by Hayder. Free forever, MIT licensed.
SSH into your VPS as root, then:
wget https://raw.githubusercontent.com/qamrixtech/vps-webhoster/main/vps-webhoster.sh
sudo bash vps-webhoster.shOr clone the whole repo (docs included):
git clone https://github.com/qamrixtech/vps-webhoster.git
cd vps-webhoster
sudo bash vps-webhoster.shThen follow the menu:
1. System Detection & Info → see what your server is
2. Install Control Panel → answer "what will you host?" → ★ recommended on top
3. Panel Details & Comparison → pros / cons of every panel (EN + Roman Urdu)
4. Remove Panel Cleanly → uninstall with cleanup + verification
5. Junk Cleaner → free disk space (shows before/after)
6. Security Hardening → firewall + fail2ban + auto updates
7. Server Status Dashboard → RAM, disk, ports, failed services
8. System Update & Upgrade
9. Beginner Guide → English / Roman Urdu, inside the terminal
10. Language & Settings
11. About / Credits
Tip
Use a fresh VPS. Panel installers officially want a clean operating system. The script warns you if it finds an existing panel.
1️⃣ System Detection & Info - click to expand
Prints OS family, normalized version token, architecture, RAM, CPU cores, disk, virtualization, public IP - and a compatibility row for all 8 panels with the exact reason if one doesn't fit:
[OK ] HestiaCP compatible - 1024MB min
[OK ] CloudPanel compatible - 2048MB min
[--] CyberPanel needs x86_64, you have aarch64
[OK ] aaPanel compatible - 512MB min
2️⃣ Install Website Control Panel - ★ recommendation on top
-
You answer "What will you host?" (WordPress/PHP · Node/Python/Go · Email + DNS + PostgreSQL · Hosting business · Learning)
-
The list is ranked - the recommended panel appears first with its score and reason, e.g.:
★ RECOMMENDED (CloudPanel) - scored 87/100 - perfect RAM fit (4GB), best for WordPress/PHP, fits Debian 12 / x86_64 / 4 core(s) -
You see the panel's features, pros and cons (English or Roman Urdu)
-
The exact official installer command is shown for confirmation
-
The official interactive installer runs
-
A summary screen shows panel URL, port, credentials location and the firewall port you must open
4️⃣ Remove Panel Cleanly - click to expand
- Auto-detects installed panels by their marker paths
- Big BACK UP FIRST warning + confirmation
- Panel-specific cleanup: stop/disable services → purge packages → delete directories → remove created users
- Optional: purge the whole web stack (nginx/apache/PHP/database/mail) or keep it
- Report: marker gone? ports closed? panels left?
[!WARNING] Panels modify system configs deeply. On production servers, a fresh OS reinstall is the only guaranteed clean slate. CWP's own docs say the same (they provide no uninstaller at all).
5️⃣ Junk Cleaner - click to expand
Checklist with disk used before/after:
| Item | What it does |
|---|---|
pkgcache |
apt/dnf downloaded package cache |
autoremove |
orphaned unused packages |
journal |
systemd journal trimmed to 200 MB |
oldlogs |
old rotated logs (*.gz, *.1) |
tmp |
/tmp files older than 7 days |
trash |
root's trash |
kernels |
keep only the 2 newest kernels |
docker |
images + build cache only, volumes kept |
snap |
old/disabled snap revisions |
Never touches /var/www, website files or database dumps.
6️⃣ Security Hardening - click to expand
- Firewall:
ufw(Debian/Ubuntu, deny incoming + allow SSH) orfirewalld(AlmaLinux/Rocky/CentOS) - fail2ban: installed, configured with an
sshdjail, enabled - Auto-updates:
unattended-upgrades/dnf-automatic/yum-cron - SSH tips: key-based login, disabling password auth, non-root user, why changing ports isn't real security
All free or freemium - verified against official docs (Oct 2026).
| # | Panel | License | Min RAM | Standout |
|---|---|---|---|---|
| ⭐ | HestiaCP | 100% free (GPL) | 1 GB | PostgreSQL + custom DNS + full mail - most complete cPanel alternative |
| ⭐ | CloudPanel | Free CE | 2 GB | Lightest modern UI, Varnish, MariaDB, PHP/Node/Python/Go, ARM64 |
| aaPanel | Free (Pro paid) | 512 MB | Lowest RAM, runs on Ubuntu+Debian+Alma+Rocky, free WAF | |
| CyberPanel | Free (Pro paid) | 1 GB | OpenLiteSpeed = fastest PHP/WordPress, PowerDNS | |
| Virtualmin GPL | 100% free (GPL) | 1 GB | Most mature - mail, DNS, PostgreSQL, ARM64, powerful CLI | |
| ISPConfig | 100% free (GPL) | 1 GB | True multi-server / reseller panel, ARM64 | |
| FastPanel | Free license | 1 GB | Modern UI, free commercial license, official uninstaller | |
| CWP | Free (Pro paid) | 2 GB | Enterprise security for AlmaLinux/Rocky |
Pros & cons of each panel (short version) - full write-ups in docs/en/panels.md
| Panel | ✅ Pros | ❌ Cons |
|---|---|---|
| HestiaCP | Truly free, PostgreSQL + custom DNS + mail, ARM64, friendly UI | Full stack wants 4 GB RAM; Debian/Ubuntu only; no official uninstaller |
| CloudPanel | Very light, Varnish built-in, Node/Python/Go native, ARM64 | 2 GB min; no mail server; no PostgreSQL; Debian/Ubuntu only |
| aaPanel | 512 MB min, widest OS support (Alma/Rocky too), free WAF | Advanced features paid; ARM64 unofficial; promo banners |
| CyberPanel | Fastest PHP (OpenLiteSpeed), PowerDNS, Redis, unlimited free domains | x86_64 only; no PostgreSQL; no Debian; no official uninstaller |
| Virtualmin | 100% free, PostgreSQL+DNS+mail, RHEL+Debian+ARM64, huge CLI | Dated interface; steeper learning curve |
| ISPConfig | 100% free, real multi-server, PostgreSQL, ARM64 auto-installer | Slower/heavier setup; plain UI; no official uninstaller |
| FastPanel | Free commercial license, modern UI, official uninstall command | x86_64 only; email license activation; smaller community |
| CWP | Strong security (CSF, ClamAV, ModSecurity), great PHP selector | RHEL only; 2 GB min; no uninstaller ("reinstall the OS") |
Deliberately excluded: VestaCP (unmaintained - use HestiaCP), cPanel / Plesk / DirectAdmin (paid), Sentora (abandoned).
The script answers this automatically - but here's the human version:
| Your server / need | Pick |
|---|---|
| 512 MB–1 GB RAM, any distro | aaPanel |
| 2 GB+, Debian/Ubuntu, WordPress/PHP | CloudPanel |
| Need email + PostgreSQL + custom DNS | HestiaCP |
| Fastest possible PHP/WordPress | CyberPanel |
| AlmaLinux / Rocky, low RAM, beginner | aaPanel |
| ARM64 VPS (Hetzner, AWS Graviton, Oracle) | HestiaCP / CloudPanel / Virtualmin / ISPConfig |
| Hosting business / resellers / clusters | ISPConfig or HestiaCP |
| Learning, first server ever | aaPanel or HestiaCP |
/etc/os-release → ID + VERSION_ID → "ubuntu:24.04" / "almalinux:9" / "debian:12"
uname -m → x86_64 | aarch64
/proc/meminfo → RAM MB/GB
nproc → CPU cores
df → disk GB
Each panel carries a support matrix (OS tokens × architecture × min RAM × min disk). Panels that don't fit are shown greyed out with the exact reason - never silently hidden.
The recommendation score is transparent:
| Factor | Points |
|---|---|
| RAM ≥ recommended | +25 |
| RAM ≥ 2× minimum | +15 |
| RAM ≥ minimum only | +5 |
| ≥2 CPU cores | +10 |
Use-case match (node:cloudpanel, email:hestiacp, …) |
+18…+30 |
| Panel maturity base | +8…+15 |
| Distro-family native bonus | +8 |
Two beginner-shaped problems, two menu options:
- Junk Cleaner → frees disk space (cache, orphans, logs, old kernels,
trash) and prints
before → after. Your site files and databases are never touched. - Remove Panel Cleanly → the reverse of installing: services stopped, packages purged, files and users removed, ports verified - plus an optional full web-stack purge.
Full details: docs/en/script-guide.md · docs/ur/script-guide.md
bash vps-webhoster.sh --detect # system report (no root needed)
bash vps-webhoster.sh --list # all panels + support matrix
bash vps-webhoster.sh --guide [--lang ur] # beginner guide to stdout
bash vps-webhoster.sh --lang ur # set default guide language
sudo bash vps-webhoster.sh --install hestiacp # straight into the installer
sudo bash vps-webhoster.sh --remove aapanel # clean removal
sudo bash vps-webhoster.sh --clean # safe cleaning (or --clean pkgcache,journal)
sudo bash vps-webhoster.sh --security # firewall + fail2ban + auto updates
sudo bash vps-webhoster.sh --status # status dashboard
sudo bash vps-webhoster.sh --update # system upgrade
sudo bash vps-webhoster.sh --version # versionEverything is written twice - English and Roman Urdu (اردو):
| 📖 English | 📖 Roman Urdu (اردو) | What's inside |
|---|---|---|
| Beginner Guide | .beginner Guide | What is a control panel? What is SSH? The difference + real-world examples + how to connect with PuTTY/Terminal |
| The Panels | Panels | Every panel's features, pros & cons, official install/uninstall commands, who each is for |
| Script Guide | Script Guide | Every menu option explained (incl. junk cleaner), CLI flags, logging, troubleshooting |
| What is SSH? | SSH kya hai? | SSH explained from zero: password vs keys, PuTTY/Terminal steps, everyday commands, troubleshooting table |
| What is a WAF? | WAF kya hai? | Web Application Firewall in plain English: SQLi/XSS explained, firewall vs WAF vs fail2ban, how to enable it per panel, false positives |
| Linux for Windows users | Windows user ke liye Linux | What a "distribution" is, Debian vs RHEL families, Windows↔Linux term translation, how to try Linux safely (WSL/Live USB) |
| Linux commands cheat sheet | Linux commands ki list | 100+ commands with plain-English definitions, examples and when to use them + the 20 you'll actually use daily |
Start here if you have never used a server: docs/en/beginner-guide.md - control panel = TV remote / hotel reception, SSH = your own key to the server room. It all clicks after one read.
Is it really free?
Yes - the script is MIT licensed and every panel in the list is free or has a genuinely usable free mode. Panels with paid extras (aaPanel Pro, CyberPanel Pro, CWP Pro) are marked as freemium. Paid-only panels are not included at all.
Will it work on my existing server with websites on it?
It will run, but panel installers officially target fresh systems. On a server with live sites, back everything up first and prefer a clean OS + restore. The script warns you if it detects an existing panel.
My server is ARM64 - which panels work?
HestiaCP, CloudPanel, Virtualmin and ISPConfig officially support
aarch64. aaPanel/CyberPanel/FastPanel/CWP are x86_64-only - the script
will show them as incompatible with the reason.
Does the script test anything by running it?
Development follows one rule: static checks only (bash -n,
shellcheck) - the script itself is never executed automatically, because it
changes servers. You run it, on your machine, on your choice.
Where are logs and settings stored?
/var/log/vps-webhoster.log (fallback /tmp/vps-webhoster-<uid>.log) and
~/.vps-webhoster.conf for your language choice.
Can I switch panels later?
Yes: Remove Panel Cleanly → Junk Cleaner → install the new panel. On production servers a fresh OS install is still the safest way.
Bug fixes, panel updates (install commands change!) and Roman Urdu improvements are welcome - see CONTRIBUTING.md.
License: MIT - Copyright (c) 2026 Hayder
Made with care by Hayder
⭐ Star this repo if it saved you a tutorial