# Hostinger VPS — pasos específicos (antes de `DEPLOY.md`)

Esta app necesita un **VPS** (no el Web Hosting compartido de hPanel). Aquí están
los pasos propios de Hostinger para tener un Ubuntu con SSH y el dominio
apuntando; luego sigues la guía general [`DEPLOY.md`](./DEPLOY.md) **desde la sección 3**.

> Los nombres de menús de hPanel pueden variar un poco; la ubicación general es la indicada.

---

## 1. Contratar / activar el VPS

1. Inicia sesión en **hPanel** → menú superior **VPS**.
2. Si aún no tienes uno, compra un plan **KVM** (el **KVM 1** sobra para la Etapa 1:
   1 vCPU, 4 GB RAM, ~50 GB NVMe).
3. En el asistente de configuración, **Sistema operativo**: elige
   **“Plain OS” → Ubuntu 24.04 LTS** (o 22.04 LTS).
   - ❌ **No** elijas plantillas con panel/app (CyberPanel, OpenLiteSpeed, WordPress, N8N…):
     instalan software que choca con Nginx/Node. Queremos Ubuntu “limpio”.
4. Define una **contraseña de root** cuando lo pida (guárdala) y finaliza.

---

## 2. Acceso por SSH

1. hPanel → **VPS** → tu servidor → **Overview**: copia la **IP pública**
   (la usarás como `IP_DEL_VPS`).
2. Acceso:
   - **Con tu contraseña root**: `ssh root@IP_DEL_VPS`
   - **Recomendado (clave SSH)**: hPanel → VPS → **SSH Keys** → *Add SSH Key* y pega
     tu clave pública (`cat ~/.ssh/id_ed25519.pub`). Luego `ssh root@IP_DEL_VPS` entra sin contraseña.
   - **Sin SSH a mano**: hPanel → VPS → **Browser terminal** abre una consola en el navegador.
3. (Opcional) **Firewall de Hostinger**: hPanel → VPS → **Security → Firewall**.
   Si está activo con política restrictiva, crea reglas para permitir **22 (SSH), 80 (HTTP)
   y 443 (HTTPS)**. Si está desactivado, no hace falta (UFW del script ya protege el sistema).

---

## 3. Apuntar el dominio al VPS (DNS)

El dominio probablemente apunta hoy al hosting compartido. Hay que mandarlo al VPS:

1. hPanel → **Domains** → tu dominio → **DNS / Nameservers → DNS records**.
   - Asegúrate de que el dominio usa los **nameservers de Hostinger**
     (`ns1.dns-parking.com`, `ns2.dns-parking.com`) para que esta zona DNS aplique.
2. Edita / crea estos registros **A** apuntando a la IP del VPS y **borra** los registros A
   antiguos que apunten al hosting compartido:

   | Tipo | Nombre | Apunta a       | TTL  |
   |------|--------|----------------|------|
   | A    | `@`    | `IP_DEL_VPS`   | 3600 |
   | A    | `www`  | `IP_DEL_VPS`   | 3600 |

3. Espera la propagación (minutos; a veces más) y verifica desde tu Mac:
   ```bash
   dig +short peninsulafitness.com.mx     # debe devolver la IP del VPS
   dig +short www.peninsulafitness.com.mx
   ```

> No necesitas cancelar el plan de Web Hosting; simplemente el dominio dejará de
> resolver hacia él y resolverá al VPS. (Si el correo del dominio vive en Hostinger,
> **no toques** los registros **MX**, solo los **A** de `@` y `www`.)

---

## 4. Continúa con la guía general

Con Ubuntu + SSH + DNS listos, sigue **[`DEPLOY.md`](./DEPLOY.md)** desde la **sección 3
“Preparar el servidor”**:

```bash
ssh root@IP_DEL_VPS
sudo bash server-setup.sh          # (sube antes deploy/scripts/server-setup.sh)
# …luego .env.production, deploy.sh, Nginx + Certbot, backups y smoke test.
```

Atajos de las secciones que vienen:
- **3** — `server-setup.sh` (Node 20, Nginx, PM2, Certbot, UFW, Fail2ban, usuario `deploy`).
- **4** — `.env.production` + `SERVER=deploy@IP_DEL_VPS ./deploy/scripts/deploy.sh` desde tu Mac.
- **5** — Nginx + `certbot --nginx -d peninsulafitness.com.mx -d www.peninsulafitness.com.mx`.
- **6** — backups por cron. **7** — smoke test online.

---

## Notas Hostinger útiles

- **Snapshots/Backups del VPS**: hPanel → VPS → **Snapshots** o **Backups**. Útil hacer un
  snapshot tras dejar el deploy funcionando (rollback rápido del servidor completo). Esto es
  complementario al `backup.sh` de la app (que respalda BD + imágenes).
- **Reinstalar el VPS**: VPS → **Operating System → Reinstall** (vuelve a Ubuntu limpio si algo se rompe).
- **Recursos/monitorización**: VPS → **Overview** muestra CPU/RAM/disco.
- El **asistente de IA “Kodee”** de Hostinger puede ayudarte con comandos puntuales del VPS.
