# Design2Clothes — Config & Infrastructure

## URLs

| Servicio | URL |
|---|---|
| **App (local)** | `http://localhost/clothes` |
| **App (público)** | `https://xamp.airebros.com/clothes` |
| **n8n** | `https://raspin8n.airebros.com` |

---

## Cloudflare Tunnel

**Config file:** `\\rocketnas\Container\cloudflared\config.yml`  
**Tunnel:** `pringagit`

Entrada relevante:
```yaml
- hostname: xamp.airebros.com
  service: http://192.168.0.5:80
```


```sh
/share/CACHEDEV1_DATA/homes/rocketvan/bin/cloudflared tunnel route dns pringagit xamp.airebros.com
docker restart pringaos_cloudflare
```




> Un solo tunnel para todos los proyectos XAMPP.  
> Otros proyectos futuros: `xamp.airebros.com/otroapp`

---

## Servidor local — XAMPP

- **Apache:** puerto `80`
- **htdocs:** `G:\xampp\htdocs\`
- **IP local:** `192.168.0.5`

### Symlink del proyecto

Ejecutar una sola vez en PowerShell (como Administrador):
```powershell
New-Item -ItemType SymbolicLink -Path "G:\xampp\htdocs\clothes" -Target "G:\GITHUB\clothes"
```

Verificar que Apache tiene `FollowSymLinks` activo (viene por defecto en XAMPP):
```apache
# En httpd.conf o VirtualHost:
Options Indexes FollowSymLinks
```

---

## n8n

- **Host:** `192.168.0.149:5678`
- **URL pública:** `https://raspin8n.airebros.com`
- **Webhook base:** `https://raspin8n.airebros.com/webhook/`

Los webhooks específicos de Design2Clothes se definirán al construir el flujo n8n.

---

## config.php — Constantes a rellenar

```php
define('GEMINI_API_KEY',    'AIza...');
define('N8N_WEBHOOK_URL',   'https://raspin8n.airebros.com/webhook/clothes');
define('APP_BASE_URL',      'https://xamp.airebros.com/clothes');
define('UPLOAD_DIR',        __DIR__ . '/media/uploads/');
define('OUTPUT_DIR',        __DIR__ . '/media/output/');
```
