# NovaCPX dedicated panel web server # Runs as novacpx-web.service — independent of system Apache/Nginx user www-data; pid /run/novacpx-nginx.pid; error_log /var/log/novacpx/nginx-error.log; events { worker_connections 64; } http { include /etc/nginx/mime.types; default_type application/octet-stream; access_log /var/log/novacpx/nginx-access.log; sendfile on; gzip on; # ── Admin Panel (8882) ───────────────────────────────────────────────────── server { listen 8882 ssl; server_name _; root /srv/novacpx/public/admin; index index.php index.html; ssl_certificate /etc/novacpx/ssl/novacpx.crt; ssl_certificate_key /etc/novacpx/ssl/novacpx.key; ssl_protocols TLSv1.2 TLSv1.3; location / { try_files $uri $uri/ /index.php?$query_string; } location /assets { root /srv/novacpx/public; } location /lib { deny all; } location ~ \.php$ { fastcgi_pass unix:/run/php/php8.3-fpm.sock; fastcgi_index index.php; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SERVER_PORT 8882; fastcgi_read_timeout 300; } location /api/ { fastcgi_pass unix:/run/php/php8.3-fpm.sock; fastcgi_index index.php; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME /srv/novacpx/public/api/index.php; fastcgi_param SERVER_PORT 8882; fastcgi_read_timeout 300; } } # ── Reseller Panel (8881) ────────────────────────────────────────────────── server { listen 8881 ssl; server_name _; root /srv/novacpx/public/reseller; index index.php index.html; ssl_certificate /etc/novacpx/ssl/novacpx.crt; ssl_certificate_key /etc/novacpx/ssl/novacpx.key; ssl_protocols TLSv1.2 TLSv1.3; location / { try_files $uri $uri/ /index.php?$query_string; } location /assets { root /srv/novacpx/public; } location /lib { deny all; } location ~ \.php$ { fastcgi_pass unix:/run/php/php8.3-fpm.sock; fastcgi_index index.php; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SERVER_PORT 8881; fastcgi_read_timeout 300; } location /api/ { fastcgi_pass unix:/run/php/php8.3-fpm.sock; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME /srv/novacpx/public/api/index.php; fastcgi_param SERVER_PORT 8881; fastcgi_read_timeout 300; } } # ── User Panel (8880) ────────────────────────────────────────────────────── server { listen 8880 ssl; server_name _; root /srv/novacpx/public/user; index index.php index.html; ssl_certificate /etc/novacpx/ssl/novacpx.crt; ssl_certificate_key /etc/novacpx/ssl/novacpx.key; ssl_protocols TLSv1.2 TLSv1.3; location / { try_files $uri $uri/ /index.php?$query_string; } location /assets { root /srv/novacpx/public; } location /lib { deny all; } location ~ \.php$ { fastcgi_pass unix:/run/php/php8.3-fpm.sock; fastcgi_index index.php; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SERVER_PORT 8880; fastcgi_read_timeout 300; } location /api/ { fastcgi_pass unix:/run/php/php8.3-fpm.sock; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME /srv/novacpx/public/api/index.php; fastcgi_param SERVER_PORT 8880; fastcgi_read_timeout 300; } } # ── Webmail (8883) ───────────────────────────────────────────────────────── server { listen 8883 ssl; server_name _; root /usr/share/roundcube; index index.php; ssl_certificate /etc/novacpx/ssl/novacpx.crt; ssl_certificate_key /etc/novacpx/ssl/novacpx.key; ssl_protocols TLSv1.2 TLSv1.3; location / { try_files $uri $uri/ /index.php; } location ~ \.php$ { fastcgi_pass unix:/run/php/php8.3-fpm.sock; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_read_timeout 120; } location ~ /\.(ht|git) { deny all; } } }