# Cómo subir esto a api.meperdi.com (FTP + npm install en el servidor)

Esta carpeta trae el código ya compilado (`dist/`) y las dos librerías internas ya
resueltas (`vendor/domain`, `vendor/validation`), pero **sin** `node_modules` — las
instalas tú en el servidor con `npm install`, que es la forma correcta.

## 1. En tu servidor, borra esto primero

Dentro de la carpeta `api.meperdi.com` que ya tenías, borra:

- `node_modules/` — el que habías subido es de tu Mac, no sirve en el servidor Linux.
- `.env` — tiene tus credenciales de prueba locales, no las reales.
- `src/`, `tsconfig.json`, `nest-cli.json`, `.env.example`, `package.json` (el viejo),
  `DEPLOY_CPANEL.md`, `dist/` (el viejo) — opcional borrarlos, no se usan en producción,
  pero no hacen daño si los dejas.

**No toques** `.htaccess`, `tmp/`, `public/`, `stderr.log`, `php.ini`, `.user.ini`,
`cgi-bin/`, `.well-known/` — esos los generó cPanel al crear la app y deben quedarse.

## 2. Sube el contenido de esta carpeta

Arrastra **el contenido** de `api-deploy/` (no la carpeta en sí) a esa misma carpeta
`api.meperdi.com` del servidor: `dist/`, `vendor/`, `package.json`, `package-lock.json`.

## 3. Configura el .env real

Crea un archivo `.env` en esa misma carpeta (puedes crearlo directo en el File Manager
de cPanel: botón "+ File") con tus datos reales:

```
PORT=3000
FRONTEND_ORIGIN=https://www.meperdi.com

DB_HOST=localhost
DB_PORT=5432
DB_NAME=<el nombre que le pusiste en PostgreSQL Databases>
DB_USER=<el usuario que creaste ahí>
DB_PASSWORD=<su contraseña>
```

`PORT` no lo toques — cPanel lo sobreescribe automáticamente.

## 4. Correr npm install desde cPanel — la forma correcta

cPanel → **Setup Node.js App** → click en tu aplicación (`api.meperdi.com`) para abrir
su pantalla de detalle. Ahí vas a ver:

- Un botón que dice **"Run NPM Install"** (a veces aparece como ícono junto al nombre
  de la app, o dentro de "Detected configuration files"). Es la forma más simple: un
  clic, cPanel corre `npm install` con la versión de Node correcta, usando el
  `package.json` de la carpeta que configuraste como "Application root".
- Espera a que termine (puede tardar 1-2 minutos) y revisa que no haya errores en el
  log que muestra.

**Si no ves ese botón** (algunos cPanel lo esconden), la alternativa es la terminal:

1. En la misma pantalla de tu app, cPanel muestra un comando para "entrar" al entorno
   de Node de esa app específica, algo como:
   ```bash
   source /home/TU_USUARIO/nodevenv/api.meperdi.com/22/bin/activate
   ```
   Cópialo tal cual te lo muestra cPanel (el usuario y la ruta cambian según tu cuenta).
2. Abre cPanel → **Terminal** (si tu plan la tiene) y pega ese comando.
3. Luego:
   ```bash
   cd ~/api.meperdi.com
   npm install
   ```

## 5. Crea las tablas (una sola vez)

En esa misma terminal (con el entorno de Node ya activado del paso anterior):

```bash
npm run migration:run
npm run seed
```

`seed` es opcional — solo crea un tag de prueba (`activa-luna`) para verificar que todo
funciona, mientras no existe todavía el flujo real de activación.

## 6. Reinicia y prueba

Botón **Restart** en Setup Node.js App. Luego, desde cualquier navegador:

```
https://api.meperdi.com/api/health
```

Debe mostrar `{"data":{"status":"ok","db":true},...}`. Si `db` sale `false`, revisa los
datos de `DB_*` en tu `.env`.

```
https://api.meperdi.com/api/public/tags/activa-luna
```

Debe mostrar el perfil de Luna completo.
