Commit Graph
297 Commits
Author SHA1 Message Date
Lizandro Guarnizo 06d85dc0bf up 2026-05-27 10:16:28 -05:00
Lizandro Guarnizo 5d07fac02d Update main.go 2026-05-27 09:47:59 -05:00
Lizandro Guarnizo 498e1d5743 up 2026-05-27 09:34:21 -05:00
Lizandro Guarnizo 36c9e0a6d5 up 2026-05-26 21:55:48 -05:00
Lizandro Guarnizo d8f38a6669 up 2026-05-26 21:28:35 -05:00
Lizandro Guarnizo 7a374340c1 up 2026-05-26 20:54:10 -05:00
Lizandro GuarnizoandCopilot 39f4641540 fix: agrega coma faltante en método openAppDeployments del componente Alpine
El objeto Alpine.js tenía un } sin coma al final de openAppDeployments,
causando un error de sintaxis JS que impedía la inicialización del componente
y hacía que la página /app/coolify apareciera completamente en blanco.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-26 14:20:55 -05:00
Lizandro Guarnizo 553252508f up 2026-05-26 14:06:38 -05:00
Lizandro Guarnizo e9548e13ae up 2026-05-26 11:42:41 -05:00
Lizandro Guarnizo d1a668e229 Update coolify.html 2026-05-26 11:36:38 -05:00
Lizandro Guarnizo 304aa33a99 Update coolify.html 2026-05-26 10:12:07 -05:00
Lizandro Guarnizo a489844c73 up 2026-05-26 10:05:01 -05:00
Lizandro Guarnizo 6bcbe58a9a Merge branch 'copilot/vcard-api-integraciones-anlisis' 2026-05-25 22:04:25 -05:00
Lizandro GuarnizoandCopilot 0f386ad456 fix: botones start/stop/restart usan POST; agrega webhook Coolify
- CoolifyApplicationStart/Stop/Restart cambian GET → POST (Coolify API requiere POST)
- Nuevo endpoint público POST /webhooks/coolify para recibir notificaciones
  de deployment/restart desde Coolify Settings → Notifications → Webhook
- UI: muestra URL del webhook en modal de config para fácil copia

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-25 22:04:25 -05:00
Lizandro Guarnizo cf4064b072 Merge branch 'copilot/vcard-api-integraciones-anlisis' 2026-05-25 21:40:09 -05:00
Lizandro GuarnizoandCopilot 7bfe7cba5c fix: coolify proxy no retorna 502 para evitar intercepción de Cloudflare
Cambia StatusBadGateway (502) → StatusBadRequest (400) en todos los
errores del proxy Coolify. Cloudflare intercepta respuestas 502 del
origen y muestra su propia pantalla, ocultando el error al frontend.
Con 400, el JSON de error llega al cliente y Alpine.js puede mostrarlo.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-25 21:40:09 -05:00
Lizandro Guarnizo 10be0443c9 Merge branch 'copilot/vcard-api-integraciones-anlisis' 2026-05-25 21:28:49 -05:00
Lizandro GuarnizoandCopilot e1aba741a7 fix: revert health endpoint to /api/health (not /v1, per Coolify docs)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-25 21:28:49 -05:00
Lizandro Guarnizo 1048792b34 Merge branch 'copilot/vcard-api-integraciones-anlisis' 2026-05-25 21:22:03 -05:00
Lizandro GuarnizoandCopilot 86d56d0447 fix: use correct Coolify health endpoint /api/v1/healthcheck
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-25 21:22:03 -05:00
Lizandro Guarnizo 49d1c9d86d Merge branch 'copilot/vcard-api-integraciones-anlisis'
# Conflicts:
#	rest/controllers/coolify_controller.go
2026-05-25 21:02:31 -05:00
Lizandro GuarnizoandCopilot ce2ffff3e8 feat: add missing Coolify controller, view and routes
- rest/controllers/coolify_controller.go: proxy completo hacia API Coolify
- resources/views/coolify.html: interfaz Alpine.js con tabs apps/servers/services/dbs/projects/deployments/team
- rest/routes/user.go: registra todas las rutas /app/coolify/*

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-25 21:01:58 -05:00
Lizandro Guarnizo 467c3f5e3a Merge branch 'copilot/vcard-api-integraciones-anlisis' 2026-05-25 20:21:19 -05:00
Lizandro GuarnizoandCopilot 5373cebf9c fix: coolify_configs table missing + miniwebs real status
- Add coolify_config.go model (missing from worktree branch)
- Add CoolifyConfig to normal-startup AutoMigrate → creates table on next start
- Fix miniwebs tab: m.activo is not in API response; fallback to
  vcard.estado (true/false) to show real status instead of always Inactiva
- Improve miniwebs row: show url, user name, vcard status badge

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-25 20:20:50 -05:00
Lizandro Guarnizo c30abb58a6 Update vcard_api.html 2026-05-25 15:47:18 -05:00
Lizandro Guarnizo c82831702e up 2026-05-25 15:14:04 -05:00
Lizandro Guarnizo c46b1317af Update vcard_api.html 2026-05-25 14:58:45 -05:00
Lizandro Guarnizo 497cda97d5 Update vcard_api.html 2026-05-25 14:49:24 -05:00
Lizandro Guarnizo 03c6e74bd6 up 2026-05-25 14:37:59 -05:00
Lizandro Guarnizo 471b2f50c6 up 2026-05-25 14:27:27 -05:00
Lizandro Guarnizo 58d98f23aa Revert "telegram"
This reverts commit 46daf3d4aa.
2026-05-25 12:50:53 -05:00
Lizandro Guarnizo 7b1c260af5 Update notif_dispatch.go 2026-05-25 12:49:19 -05:00
Lizandro Guarnizo 46daf3d4aa telegram 2026-05-25 10:08:40 -05:00
Lizandro Guarnizo b714fa71ac Merge branch 'copilot/vcard-api-integraciones-anlisis' 2026-05-23 08:59:17 -05:00
Lizandro GuarnizoandCopilot 661e02ef9c feat: desactivar usuario + VCards desde tab usuarios
- Botón '🚫 + VCards' abre modal de confirmación
- Modal carga y lista las VCards activas del usuario
- Al confirmar: inactiva cada VCard (PUT estado:false) y desactiva el usuario
- Muestra resumen del resultado antes de cerrar
- Botón 'Ordenar por vencimiento' con colores en filas (rojo/amarillo/verde)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-23 08:57:18 -05:00
Lizandro Guarnizo fb67a308dc Update telegram.html 2026-05-22 00:17:00 -05:00
Lizandro Guarnizo c21fab079d Update telegram.html 2026-05-22 00:03:06 -05:00
Lizandro Guarnizo d8cbf70593 Update main.go 2026-05-21 23:55:34 -05:00
Lizandro Guarnizo 1a96caeb83 ip 2026-05-21 23:49:37 -05:00
Lizandro Guarnizo d80c7a86d3 Update hostinger_controller.go 2026-05-21 23:28:13 -05:00
Lizandro Guarnizo ade52025a7 Update hostinger_controller.go 2026-05-21 23:18:09 -05:00
Lizandro Guarnizo d7bcddc0b3 up 2026-05-21 23:11:01 -05:00
Lizandro Guarnizo 5a8b9320f5 Update servidor_controller.go 2026-05-21 23:02:53 -05:00
Lizandro Guarnizo d121f399ed up 2026-05-21 22:52:24 -05:00
Lizandro Guarnizo 0cf7c6d279 up 2026-05-21 22:37:31 -05:00
Lizandro Guarnizo 154a2fa245 chore: postinstall validation 2026-05-21 21:41:40 -05:00
Lizandro GuarnizoandCopilot 2d6b4d8271 fix: add Users, Roles, Submodules to normal-startup AutoMigrate
Ensures tipo_usuario, EsPortalCliente, and other new columns on core
models are created in Docker deployments that never run --migrate.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-21 13:19:37 -05:00
Lizandro GuarnizoandCopilot 4fec04e5fe fix: inicializar users/roles en Alpine y null-safety en loadRegister
- Declara users:[] y roles:[] en el estado inicial de Alpine para que
  x-for funcione reactivamente desde el primer render
- Agrega totalPages:0 al estado inicial
- Añade comprobación response.ok antes de parsear JSON
- Usa || [] y || 0 para evitar TypeError si el backend retorna error
- Reemplaza data.Users.length con this.users.length (siempre array)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-21 12:30:08 -05:00
Lizandro GuarnizoandCopilot 10639d233b fix: AutoMigrate Servidor, ConxDb y ProvServidor en arranque normal
La tabla prov_servidor_submodules (many2many) solo se creaba con --migrate.
Al agregar ProvServidor al AutoMigrate del arranque normal, GORM crea la
tabla join automáticamente en cada deploy sin necesidad de flags manuales.

También incluye Servidor (agent_token, agent_last_seen, metricas_json)
y ConxDb (host) que tampoco se migraban en el arranque normal.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-21 12:08:32 -05:00
Lizandro GuarnizoandCopilot 6cca8e6fcd fix: reactividad Alpine ping — estado en cx directamente
Alpine v3 NO puede rastrear accesos dinámicos pingCargando[cx.ID]
dentro de x-for porque no sabe qué key observar por item.

Solución: estado de ping embebido en cada objeto cx:
- abrirModal inyecta _pingCargando:false y _pingResultado:null en cada cx
- hacerPing muta cx._pingCargando / cx._pingResultado directamente
- template usa cx._pingCargando y cx._pingResultado (proxy reactivo del x-for)

Esto garantiza que el spinner, el botón deshabilitado y el resultado
del ping se actualicen correctamente para cada card.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-21 12:06:00 -05:00