# Configurar subdominios locales en Windows

> **Para vos, Ricci.** Necesitás hacer esto UNA SOLA VEZ antes de validar Sprint 1.2.
> Tarda ~3 minutos.

## ¿Qué vamos a hacer?

Decirle a Windows que cuando alguien escriba `demo.innovium.test` o `infinia.innovium.test` en el navegador, **redirija a tu propia máquina (`127.0.0.1`)** en lugar de buscarlos en internet.

Esto **NO toca DNS público**, **NO afecta producción**, **NO tiene riesgos**. Solo afecta a tu Windows.

---

## Paso 1 · Abrir Notepad como Administrador

⚠️ **CRÍTICO:** Notepad debe abrirse como Admin, sino no podés guardar el archivo.

1. Click en **botón Inicio** de Windows
2. Tipea: `notepad`
3. **Click DERECHO** sobre "Notepad" en los resultados
4. Selecciona **"Ejecutar como administrador"**
5. Si te pide confirmación de UAC, click **"Sí"**

Notepad se abre vacío.

---

## Paso 2 · Abrir el archivo `hosts`

Dentro de Notepad:

1. Menú **File** (Archivo) → **Open** (Abrir)
2. En la barra de ruta, pegar exactamente:

```
C:\Windows\System32\drivers\etc\hosts
```

3. Si **no ves el archivo `hosts`**, cambiá el filtro abajo a la derecha:
   - De `Text Documents (*.txt)` 
   - A `All Files (*.*)`
4. Vas a ver el archivo `hosts` (sin extensión)
5. Selecciónalo y click **Open**

Vas a ver un archivo con varias líneas que empiezan con `#`. Esas son comentarios, no se ejecutan.

---

## Paso 3 · Agregar las 3 líneas de Innovium

Andá al **final del archivo** y agregá estas líneas exactas (incluyendo el header de comentario para identificarlas):

```
# Innovium - desarrollo local
127.0.0.1   innovium.test
127.0.0.1   demo.innovium.test
127.0.0.1   infinia.innovium.test
```

⚠️ **Importante:** entre `127.0.0.1` y los nombres de dominio debe haber **al menos un espacio** (o tab). No importa cuántos.

El archivo debería quedar más o menos así:

```
# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# ... (varias líneas más de comentarios) ...
#
# 127.0.0.1       localhost
# ::1             localhost

# Innovium - desarrollo local
127.0.0.1   innovium.test
127.0.0.1   demo.innovium.test
127.0.0.1   infinia.innovium.test
```

---

## Paso 4 · Guardar

1. Menú **File** → **Save** (Ctrl+S)
2. Cerrá Notepad

---

## Paso 5 · Limpiar caché DNS de Windows

Para que Windows lea el archivo `hosts` actualizado:

1. Abrí **Git Bash** (o cualquier terminal)
2. Ejecutá:

```bash
ipconfig /flushdns
```

Te debería responder:
```
Successfully flushed the DNS Resolver Cache.
```

---

## Paso 6 · Verificar que funciona

Sin levantar el servidor todavía, en Git Bash:

```bash
ping -n 1 demo.innovium.test
```

Esperás ver algo como:

```
Pinging demo.innovium.test [127.0.0.1] with 32 bytes of data:
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
```

✅ Si dice **`[127.0.0.1]`** → el `hosts` está bien configurado.

❌ Si dice **`could not find host`** → algo del paso 1-4 falló.

Probá lo mismo con:
```bash
ping -n 1 infinia.innovium.test
```

Mismo resultado: `127.0.0.1`.

---

## Paso 7 · Probar en navegador

Cuando tengas el server de Innovium corriendo (con `php scripts/innovium serve`), abrí en el navegador:

- **http://demo.innovium.test:8000/login** → debería mostrar el login con badge "Innovium · Demo"
- **http://infinia.innovium.test:8000/login** → debería mostrar el login con badge "Innovium · Infinia"

⚠️ **Importante:** **siempre con el `:8000`** porque el server de PHP corre en ese puerto. Si querés sin `:8000` necesitarías Apache/Nginx en puerto 80, pero en dev local con `:8000` está perfecto.

---

## Si algo falla

| Síntoma | Causa probable | Solución |
|---|---|---|
| No puedo guardar el archivo `hosts` | Notepad no se abrió como admin | Repetir paso 1 con click derecho → "Ejecutar como administrador" |
| `ping` dice "could not find host" | Archivo no se guardó / typo en línea | Revisar el archivo y guardar de nuevo |
| `ping` responde pero IP no es `127.0.0.1` | Línea mal escrita en `hosts` | Verificar formato exacto |
| Funciona en `ping` pero navegador dice "no se puede conectar" | El servidor PHP no está corriendo | `php scripts/innovium serve` en otra terminal |
| Browser intenta buscar en Google | El cache del browser ignoró hosts | Cerrá y abrí el browser, o probá en modo incógnito |

---

## Lo que NO hicimos (intencionalmente)

- ❌ No tocamos DNS público (innovium.cl real sigue funcionando normal)
- ❌ No instalamos nada (no Acrylic, no DNSMasq, no nada)
- ❌ No abrimos puertos del firewall (localhost no necesita)

**Esto es lo más simple, rápido y reversible.** Si en el futuro querés sacar Innovium del `hosts`, solo borrás esas 3 líneas y guardás.

---

¿Listo? Cuando tengas el `ping` respondiendo `127.0.0.1`, avísame y arrancamos con Claude Code.
