🔹 Paso 1: Preparar tu proyecto
- Estructura típica:
src/ server.js rutas/ controladores/ package.json - Asegúrate de que tu
server.jsoapp.jssea el punto de entrada.
🔹 Paso 2: Instalar obfuscador
En tu máquina local:
npm install --save-dev javascript-obfuscator
🔹 Paso 3: Crear script de build
Edita tu package.json y agrega:
"scripts": {
"build": "javascript-obfuscator src --output dist/src --compact true --control-flow-flattening true && javascript-obfuscator app.js --output dist/app.js",
"start:dist": "node dist/app.js"
}
Esto:
- Toma todo lo que está en
src/. - Genera una carpeta
dist/con código ofuscado. - Aplica técnicas de protección (compactación, flattening).
🔹 Paso 4: Ejecutar build
npm run build
Ahora tendrás:
dist/
server.js
rutas/
controladores/
package.json
package-lock.json
🔹 Paso 5: Subir a cPanel
- Entra al File Manager o usa FTP.
- Sube la carpeta
dist/y los archivospackage.jsonypackage-lock.jsona tu directorio de aplicación (~/api). - En cPanel → Setup Node.js App:
- Ruta:
~/api/dist - Versión de Node.js: usa la LTS disponible (ej. Node 18).
- Archivo de inicio:
server.js.
- Ruta:
🔹 Paso 6: Instalar dependencias en el servidor
En el terminal de cPanel o por SSH:
cd ~/api/dist
npm install --production
Esto instala solo las dependencias necesarias para producción.
🔹 Paso 7: Probar y ajustar
- Reinicia la aplicación desde el Application Manager.
- Verifica que tu API responde en la URL asignada por cPanel.
- Si necesitas variables de entorno, usa el panel de configuración de Node.js en cPanel (puedes definir
PORT,DB_URL, etc.).
🔹 Resultado
- Tu API corre en cPanel con Node.js.
- El código fuente está ofuscado en
dist/, mucho más difícil de leer. - No necesitas binarios, todo se ejecuta con el Node.js del hosting.
🔹 Paso 8: Probar localmente
Arranca tu API desde la carpeta dist:
npm run start:dist
o directamente:
node dist/server.js
Abre en tu navegador:
http://localhost:3000
(o el puerto que uses en tu API).
🔹 Paso 9: Validar
- Si responde correctamente, significa que el build ofuscado funciona.
- Si falla, revisa que las rutas y dependencias estén bien copiadas a
dist/.
✅ Resultado
- Tu API corre en Ubuntu Budgie usando el código ofuscado.
- Ya tienes la misma carpeta (
dist/+package.json+package-lock.json) que subirás a cPanel. - Así garantizas que funcionará igual en el hosting.