# Configurar Cron Job en Hostinger ## Problema habitual con Hostinger Hostinger ejecuta el cron con `wget` o `curl` pero la URL interna puede fallar por cómo resuelven el dominio internamente. ## Configuración recomendada en hPanel 1. Ve a **Hosting → Avanzado → Cron Jobs → Crear cron job** 2. Frecuencia: personalizada — minuto `0`, hora `7`, resto `*` (diaria 07:00) 3. Usa el comando que funcione en tu caso: ### Opción A — curl (preferida) ``` curl -s "https://TUDOMINIO.COM/finanzas_v7/api/cron.php" > /dev/null 2>&1 ``` ### Opción B — wget ``` wget -q -O /dev/null "https://TUDOMINIO.COM/finanzas_v7/api/cron.php" 2>/dev/null ``` ### Opción C — PHP directo (más fiable en Hostinger) ``` php /home/USUARIO/public_html/finanzas_v7/api/cron_cli.php ``` _(Ver sección CLI más abajo)_ ### Opción D — Sin cron externo (fallback JS) La app hace un snapshot automático cada vez que se abre, así que si la visitas diariamente los datos se actualizan. ## Cron CLI (más fiable) Si la URL no funciona, crea `api/cron_cli.php`: - Es el mismo cron pero sin headers HTTP - Se ejecuta con `php /ruta/cron_cli.php` directamente - Pide la ruta absoluta al archivo data.json ## Verificar que funciona Visita en el navegador: `https://TUDOMINIO.COM/finanzas_v7/api/cron.php` Debe devolver algo como: ```json {"ok": true, "total": 15744.44, "snapshot_saved": true, ...} ``` Revisa el log en: `https://TUDOMINIO.COM/finanzas_v7/api/cron.log` ## Token de seguridad (opcional) Si quieres proteger el cron de accesos externos: 1. Ve a Ajustes → Estado del cron → campo "Token" 2. Guarda el token 3. Añade `?token=TU_TOKEN` a la URL del cron ## Por qué falla a veces desde Hostinger - Hostinger shared no permite que PHP llame a URLs de su propio servidor (loopback restriction) - En ese caso la Opción C (PHP directo) o D (snapshot al abrir la app) son más fiables - El snapshot automático al abrir la app garantiza que nunca pierdes un día