ESNET SHPK — Complete cPanel Hosting Bundle =========================================== Package: esnet-shpk-cpanel.zip App type: Next.js 16 (Node.js) — NOT a static HTML website IMPORTANT --------- Your cPanel host MUST support "Setup Node.js App" (also called Node.js Selector / CloudLinux Node Selector). If that menu is missing, this package cannot run on that host. Ask your provider to enable Node.js, or use a VPS / Node host. WHAT IS INSIDE THIS ZIP ----------------------- server.js ← startup file (required) package.json .env ← sample env vars (edit your domain) .next/ ← built app + static assets public/ ← images, logo, icons node_modules/ ← production runtime (do not delete) CPANEL-README.txt ← this file STEP-BY-STEP PUBLISH ON CPANEL ------------------------------ 1) Upload - Log in to cPanel → File Manager - Go to /home/YOUR_USERNAME/ - Create folder: esnet-app - Upload esnet-shpk-cpanel.zip into esnet-app - Extract the zip inside esnet-app - Confirm these exist: esnet-app/server.js esnet-app/package.json esnet-app/.next/ esnet-app/public/ Do NOT upload this as normal HTML into public_html only. 2) Create Node.js application - cPanel → Software → Setup Node.js App - Click Create Application - Settings: Node.js version ............ 20 LTS (or 22) Application mode ........... Production Application root ........... esnet-app Application URL ............ your domain (or subdomain) Application startup file ... server.js - Click Create 3) Environment variables In the Node app settings, add/edit: NODE_ENV=production NEXT_PUBLIC_SITE_URL=https://YOUR-DOMAIN.com Optional (contact form webhook): CONTACT_WEBHOOK_URL=https://hooks.example.com/... Save. 4) Start the application - Click Start / Restart - Status must show: Running - Open https://YOUR-DOMAIN.com 5) SSL certificate - cPanel → SSL/TLS Status (or Let's Encrypt / AutoSSL) - Issue SSL for your domain - Force HTTPS if available COMMON FIXES ------------ - Blank page / 503 ........... Restart Node app; wait 30–60 seconds - Wrong content/domain ....... Check NEXT_PUBLIC_SITE_URL matches domain - App won't start ............ Startup file must be exactly: server.js - Node version error ......... Use Node 20 or 22 - Images missing ............. Confirm public/ folder exists after extract - Contact form fails ......... Optional CONTACT_WEBHOOK_URL not set (form still validates; webhook delivery needs URL) NOTES ----- - PORT is assigned by cPanel automatically. Do not hardcode PORT. - Do not run "npm run build" on cPanel — this zip is already built. - Avoid deleting node_modules unless support tells you to reinstall. - After changing env vars, always Restart the Node app. SUPPORT CHECKLIST FOR HOSTING PROVIDER -------------------------------------- If you open a ticket with your host, send this: "Please enable Setup Node.js App / Passenger for my account. I need to run a Next.js production app with startup file server.js, Node 20+, application root /home/USER/esnet-app." Prepared for: ESNET SHPK Site: https://esnet-shpk.com