diff --git a/deploy/novacpx-webserver-switch b/deploy/novacpx-webserver-switch
new file mode 100755
index 0000000..d09363a
--- /dev/null
+++ b/deploy/novacpx-webserver-switch
@@ -0,0 +1,59 @@
+#!/bin/bash
+# NovaCPX — switch customer hosting web server (port 80/443)
+# The panel ALWAYS stays on Apache (ports 8880-8883); only customer-facing ports are switched.
+set -e
+TARGET="${1:-apache}"
+PORTS_CONF="/etc/apache2/ports.conf"
+
+write_ports_apache() {
+ cat > "$PORTS_CONF" << 'EOF'
+# Managed by NovaCPX — do not edit manually
+
+# Panel ports (always active)
+Listen 8880
+Listen 8881
+Listen 8882
+Listen 8883
+
+# Customer hosting ports (Apache handles 80/443)
+Listen 80
+
Current web server for hosting accounts. Changing requires migration of all vhosts.
+Controls which server handles customer sites on ports 80/443. The panel itself always runs on Apache (ports 8880–8883) regardless of this setting.
+Running status — Apache: ${opts.apache_active ? Nova.badge('active','green') : Nova.badge('inactive','red')} Nginx: ${opts.nginx_active ? Nova.badge('active','green') : Nova.badge('inactive','red')}