# Instalación en cPanel (sin ejecutar npm install)

Este paquete ya incluye la carpeta `node_modules` con todo lo necesario, así que
**NO tienes que ejecutar `npm install`** en el servidor. Esto evita el error
`/bin/ln: Permission denied` que da algunos hostings compartidos.

---

## Paso 1 — Subir los archivos

1. Descomprime este ZIP en tu computador.
2. Sube **todo el contenido** de la carpeta `estudio-solar` (incluida `node_modules`)
   a la carpeta de tu aplicación en el servidor, por ejemplo:
   `trabajos.estudiosolar.cl`
3. Verifica que en la raíz de esa carpeta queden, entre otros:
   `app.js`, `server.js`, `package.json`, y las carpetas `db/`, `public/`, `node_modules/`.

> Importante: sube el CONTENIDO de la carpeta, no la carpeta envolvente.
> El `package.json` debe quedar directamente en la raíz de la aplicación.

---

## Paso 2 — Configurar la app en "Setup Node.js App"

En cPanel → **Setup Node.js App** → tu aplicación (o Create Application):

- **Node.js version:** 22.22.3 (o la más alta 22.x disponible)
- **Application mode:** Production
- **Application root:** la carpeta donde subiste los archivos
- **Application URL:** tu dominio/subdominio
- **Application startup file:** `app.js`

Guarda los cambios.

> NO pulses "Run NPM Install". No hace falta y es justo lo que da el error.
> Las dependencias ya están incluidas en el paquete.

---

## Paso 3 — Variables de entorno

En la misma pantalla, sección **Environment variables**, agrega:

| Nombre           | Valor                                        |
|------------------|----------------------------------------------|
| ADMIN_PASSWORD   | (tu contraseña de administrador)             |
| SESSION_SECRET   | (un texto largo aleatorio)                   |
| NODE_ENV         | production                                   |

Para generar el SESSION_SECRET puedes usar cualquier cadena larga al azar
(40+ caracteres de letras y números).

---

## Paso 4 — Sembrar la base de datos (solo la primera vez)

Esto crea la base con las 15 personas, 5 semanas y 30 tareas.

1. En la pantalla de Setup Node.js App, copia la línea que aparece arriba para
   **entrar al entorno** (empieza con `source /home/estudios/nodevenv/...activate`).
2. Abre la **Terminal** de cPanel (o SSH) y pega esa línea. Enter.
3. Luego pega estas dos líneas (ajusta la ruta si tu carpeta se llama distinto):
   ```
   cd ~/trabajos.estudiosolar.cl
   node db/seed.js
   ```
   Deberías ver: "Personas: 15 / Semanas: 5 / Tareas: 30".

> Nota: aquí NO usamos npm; llamamos a node directamente, así que el error de
> permisos de npm no aplica.

Si el comando `node db/seed.js` diera un error sobre "node:sqlite", avísame:
tengo lista una versión alternativa de la base de datos.

---

## Paso 5 — Arrancar

Vuelve a **Setup Node.js App** y pulsa **Restart**.
Luego abre tu dominio en el navegador:

- Vista del equipo: `https://trabajos.estudiosolar.cl/`
- Panel de administración: `https://trabajos.estudiosolar.cl/admin.html`

---

## Si algo falla

- **"Cannot find module 'node:sqlite'"** al arrancar o sembrar → tu Node no trae
  el SQLite integrado. Avísame y te entrego la versión con la base de datos
  alternativa (un cambio pequeño de mi lado).
- **La app no levanta** → en Setup Node.js App revisa que el startup file sea
  `app.js` y que NODE_ENV, ADMIN_PASSWORD y SESSION_SECRET estén definidos.
  Revisa también el registro de errores que ofrece la misma pantalla.
- **El error /bin/ln vuelve a aparecer** → solo aparece si pulsas "Run NPM Install".
  No lo pulses; con este paquete no se necesita.

---

## Recuerda para el HTTPS y la app instalable

Para que el equipo pueda instalar el ícono en el celular (PWA), la app debe
servirse por **HTTPS**. En cPanel esto se activa con el certificado SSL del dominio
(sección "SSL/TLS Status" → ejecutar AutoSSL). Una vez con HTTPS, comparte el enlace
y cada persona lo instala desde el navegador (ver README.md, sección 9).
