# René Hub

Dashboard ligero para Synology DS223 con enfoque en salud, automatización personal, objetivos y control visual.

## Estructura

- `index.html`: motor principal.
- `config.json`: contenido editable.
- `admin.html`: panel inicial de edición desde navegador.
- `assets/css/style.css`: estilos.
- `assets/js/app.js`: lógica del dashboard.
- `dashboards/`: vistas secundarias futuras.

## Campos de config.json

| Clave | Tipo | Descripción | Ejemplo |
|---|---|---|---|
| `siteName` | string | Nombre del sitio | `René Hub` |
| `heroTitle` | string | Título principal | `Salud, automatización y rumbo` |
| `heroLede` | string | Texto de presentación | `Un centro de mando ligero...` |
| `theme` | string | Tema base | `system` |
| `storage.usedGb` | number | Uso actual | `640` |
| `storage.totalGb` | number | Capacidad total | `1024` |
| `system.cpu` | number | Carga CPU | `32` |
| `system.ram` | number | Carga RAM | `58` |
| `system.disk` | number | Uso de disco | `63` |
| `system.containersOnline` | number | Contenedores activos | `4` |
| `health.score` | number | Índice de salud | `78` |
| `automation.score` | number | Índice de automatización | `64` |
| `focusAreas` | array | Áreas de enfoque | `[{\"title\":\"Salud\"}]` |
| `routineItems` | array | Rutinas clave | `[{\"title\":\"Revisión rápida\"}]` |
| `goals` | array | Metas por horizonte | `[{\"horizon\":\"Semana\"}]` |

## Implementación

1. Copia la carpeta `output/` a `/volume1/web/`.
2. Verifica que `index.html` quede en la raíz de `/web/`.
3. Ab[118;1:3ure `index.html` y `admin.html` desde el navegador.
4. Ajusta `config.json` cuando quieras cambiar el contenido manualmente.
5. Más adelante conectamos `admin.html` con escritura real en el NAS.

## Diagnóstico admin.html

Si al guardar sigue apareciendo el mensaje antiguo de guardado local, entonces el archivo `admin.html` que está sirviendo el NAS no es la versión nueva o el navegador está usando caché. La versión correcta muestra el botón `Guardar en el NAS` y usa `fetch('save-config.php', { method: 'POST' })`.

## Seguridad mínima recomendada

- `admin.html` ahora pide un token de administrador.
- `save-config.php` rechaza peticiones sin el encabezado `X-Rene-Token`.
- Cambia el valor `RENE-HUB-2026-ADMIN-LOCK` por una cadena larga y privada antes de publicar.
- Si quieres mayor seguridad después, el siguiente paso es proteger `admin.html` y `save-config.php` con autenticación HTTP básica o acceso solo por LAN/VPN.
