Commit Graph

128 Commits

Author SHA1 Message Date
fernando cb9c58dda2 actualizacion general del proyecto con .env 2026-06-06 23:45:28 -06:00
fernando 13ddc396b5 actualizacion general del proyecto 2026-06-06 23:43:09 -06:00
fernando 3f48c0bc7c fix: acceso público a imágenes de storage para WhatsApp y navegador
- Mueve la ruta /storage/{path} fuera del middleware de auth para que
  sea pública; necesario para que los servidores de WhatsApp y el navegador
  puedan cargar imágenes de promociones sin autenticación
- Dockerfile: agrega 'rm -rf public/storage' antes de storage:link para
  evitar que COPY copie la junction de Windows y deje el symlink roto en el contenedor
- Crea .dockerignore: excluye public/storage, .git, .env y artefactos de
  build del contexto de Docker para builds más limpios y seguros

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 21:06:08 -06:00
fernando a0c3194e88 feat: WhatsApp — parámetros nombrados en template, API v25.0 e imagenUrl con soporte de URL externas
- Actualiza graph.facebook.com de v19.0 a v25.0
- Cambia parámetros posicionales a nombrados (parameter_name) en enviarTemplate para compatibilidad con plantillas avanzadas
- enviarPromocion ahora pasa nombre fallback 'estudiante' y claves explícitas
- imagenUrl() soporta imágenes con URL absoluta (http/https) además de rutas relativas de storage
- Agrega Log::info del payload completo antes del envío para facilitar debugging

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 20:44:13 -06:00
fernando f246a709c4 feat: WhatsApp webhook — reescritura del controller y rutas en web.php
Simplifica WhatsAppWebhookController: messages crea WhatsappLog con tipo
'recibido', statuses actualiza el log existente por whatsapp_mensaje_id,
opt-out detecta solo STOP/cancelar con regex. Agrega rutas GET/POST
/webhook/whatsapp fuera del grupo auth en web.php (POST sin CSRF).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-24 22:01:37 -06:00
fernando 61b18df8e8 feat: WhatsApp promociones — fechas en español, status webhook y analytics inspector
- Corrige formato de fechas a español con Carbon isoFormat('D [de] MMMM')
- Webhook procesa statuses de Meta (delivered/read/failed) y actualiza pivot alumno_promocion
- Analytics: nuevas métricas de entregados/leídos, embudo de entrega, filtro por tipo
- Inspector de payload raw por log con modal y botón copiar

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-24 15:42:26 -06:00
fernando 19a236818e Carga y configuración de platilla de api de whats app 2026-05-22 22:22:36 -06:00
fernando f99580c176 Fix: fastcgi remote addr 2026-05-21 23:43:22 -06:00
fernando 750321571c Fix: Dockerfile extencion php ext install 2026-05-21 23:26:22 -06:00
fernando 28faa727b1 Fix: socket permissions para nginx 2026-05-21 23:21:41 -06:00
fernando b574ae1ed3 Fix Bad Gateway: PHP-FPM via Unix socket + logs en supervisord 2026-05-11 18:23:16 -06:00
fernando e39d666d8b Fix nginx fastcgi_pass IPv6 a IPv4 para PHP-FPM 2026-05-11 18:07:12 -06:00
fernando 89d7959f25 Modificación de fast cgi 2026-05-11 10:58:51 -06:00
fernando edb1c859a0 Modificación de header 2026-05-11 02:48:22 -06:00
fernando 6ecb23746c Modificación de supervisor para evitar conflicto de puertos 2026-05-11 02:40:44 -06:00
fernando 3fe47d5b1d Modificación directa a php comandos para incremento de memoria de subida de archivos 2026-05-11 02:33:52 -06:00
fernando b76bff834b Modificacion docker file sobre run build y modificación de variables completas para websocket 2026-05-11 02:12:44 -06:00
fernando 0df6c38784 Fix chat message and photo sending
- Remove broken transformRequest that crashed with Axios 1.x (headers.post undefined)
- Guard window.Echo.socketId() to avoid TypeError before socket connects
- Wrap broadcast() in try/catch so Reverb downtime does not cause 500 errors

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-11 02:02:31 -06:00
Fernando f54acb8675 Refactor directory creation in Dockerfile
Consolidate directory creation commands and clean up Dockerfile.
2026-05-11 01:07:51 -06:00
Fernando c2a7efeb6a Update trustProxies middleware to include headers 2026-05-11 00:58:19 -06:00
Fernando ca2813ade3 Change Laravel server port from 8080 to 8081 2026-05-11 00:16:18 -06:00
fernando b41f94f436 Cambio de multipart Axios 2026-05-09 15:20:23 -06:00
fernando 2d51c8f558 Cambio del nixpacks 2026-05-09 10:30:24 -06:00
fernando 7049e8e1d3 Cambio del supervisor 2026-05-09 10:22:51 -06:00
fernando 4b17ea76b1 Add public/.user.ini to fix 2MB PHP upload limit on Nixpacks/Coolify
Nixpacks builds its own PHP-FPM + Nginx image and ignores Dockerfile.
PHP-FPM automatically reads .user.ini from the document root (public/),
so this is the correct way to override php.ini settings in Nixpacks.

Raises: upload_max_filesize 2M -> 50M, post_max_size 8M -> 55M

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-09 08:25:58 -06:00
fernando 27af72b26e Force PHP upload limits via -d flags and fix Dockerfile layer order
Pass upload_max_filesize=50M and post_max_size=55M directly with -d
flags on every php process in supervisord. This is guaranteed to apply
regardless of ini scanning order or Docker layer caching.

Also move COPY docker/php.ini before COPY . . so the conf.d file is
always placed before the app code is copied, ensuring Docker does not
use a stale cached layer that skips the ini file.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-09 08:20:46 -06:00
fernando 9851c887ec Raise all file upload limits to 50MB across the stack
PHP (docker/php.ini via conf.d — loaded automatically, no -c flag needed):
  upload_max_filesize 2M -> 50M
  post_max_size       8M -> 55M

Nginx: client_max_body_size 25M -> 55M

Livewire (config/livewire.php published):
  temporary_file_upload rules max 12MB -> 50MB (max:51200)

Laravel validation rules (all in KB):
  profile photo:        5120 (5MB)  -> 51200 (50MB)
  posts image:          5120 (5MB)  -> 51200 (50MB)
  anuncios image:       5120 (5MB)  -> 51200 (50MB)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-09 08:12:33 -06:00
fernando 56f4e3b226 Increase file upload validation limits
- EntregaController: max:2048 -> max:20480 (2MB -> 20MB)
- UpdateUserProfileInformation: max:1024 -> max:5120 (1MB -> 5MB)

The server-level limits (nginx client_max_body_size and php.ini) were
already raised in the previous commit; these Laravel validation rules
were the remaining bottleneck blocking uploads over 2MB.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-09 08:01:13 -06:00
fernando ff5b6f5eec Fix file upload limit over 2MB in production with HTTPS
- Use printf instead of echo to correctly write php.ini with newlines
  (Alpine ash echo does not interpret \n, leaving the file malformed
  and PHP falling back to its 2MB default)
- Add nginx.conf with client_max_body_size 25M as front-end proxy
- Start nginx on port 8080 via supervisord; move artisan serve to
  internal port 8081 so nginx can proxy requests with proper limits

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-09 07:41:52 -06:00
fernando e7ca2c29f0 Modificacion del supervisor y docker file postmaxSize 2026-05-09 07:26:47 -06:00
Fernando 9697a6b20a Configure PHP upload size limits in Dockerfile
Add PHP upload size configuration to Dockerfile
2026-05-09 02:12:06 -06:00
Fernando 8040e8e8fe Add Livewire temporary storage directory creation 2026-05-09 02:11:23 -06:00
Fernando 71b4e423bc Add command to link storage in Dockerfile 2026-05-09 02:01:12 -06:00
Fernando 7c6e42ef89 Update Reverb config to use environment variables 2026-05-09 01:42:36 -06:00
Fernando 2f7f797b86 Update build commands and environment variables 2026-05-09 01:36:25 -06:00
Fernando d2394e20e8 Add environment variables for VITE_REVERB configuration 2026-05-09 01:21:57 -06:00
Fernando 823f0e01da Trust all proxies in middleware configuration 2026-05-09 00:39:34 -06:00
Fernando 9fd484fc7b Modify start command for storage and config setup
Updated start command to include storage setup and config clear.
2026-05-09 00:16:33 -06:00
Fernando 6068390305 Remove --no-dev option from composer install 2026-05-07 23:41:02 -06:00
Fernando b22358e19d Add build and start commands to nixpacks.toml 2026-05-07 23:36:16 -06:00
fernando 964ed4bbd2 Modificación del de vista de dopcumentos del alumno 2026-05-06 18:33:18 -06:00
fernando 91d0813a9c Modificación del userController para el cambnio de rol si es alumno o docente 2026-05-05 18:33:36 -06:00
Fernando 59b7ff87f3 Add pcntl extension to Dockerfile
Added pcntl extension installation to Dockerfile.
2026-05-02 21:43:46 -06:00
Fernando 0d6e0d7a9f Add supervisord configuration for Laravel and Reverb 2026-05-02 21:35:28 -06:00
Fernando 8c9329cd10 Update Dockerfile to use supervisord for process management 2026-05-02 21:34:55 -06:00
Fernando 0abf1a5fb0 Install bcmath extension in Dockerfile
Added bcmath extension installation to Dockerfile.
2026-05-02 19:44:24 -06:00
Fernando 1d91bbc2e7 Dockerfile added 2026-05-02 19:21:56 -06:00
Fernando dc7799474a Delete nginx.conf 2026-05-02 19:06:09 -06:00
Fernando 543675adfb segundo commit para deploy nginx 2026-05-02 18:35:59 -06:00
Fernando 5d16da08f8 Refactor nginx.conf for cleaner configuration 2026-05-02 18:01:34 -06:00