chore(versioning): profesionalizar VERSIONADO_IA y limpiar protocolo
This commit is contained in:
@@ -1,373 +1,108 @@
|
||||
# Versionado IA - UB24/Elementor
|
||||
# Versionado IA - UB24 / Elementor
|
||||
|
||||
## Rama de trabajo
|
||||
- `ai/ub24-builder-v1`
|
||||
## 1) Objetivo
|
||||
Definir un proceso de versionado auditable, reproducible y estable para el desarrollo del builder UB24.
|
||||
|
||||
## Estado de sincronizacion (14 Febrero 2026)
|
||||
- Local: `ai/ub24-builder-v1`
|
||||
- Remoto: `origin/ai/ub24-builder-v1`
|
||||
- Divergencia verificada: `0/0` (sin commits pendientes entre local y remoto)
|
||||
## 2) Estado actual verificado
|
||||
- Fecha de verificacion: `2026-02-19`
|
||||
- Rama activa: `ai/ub24-builder-v1`
|
||||
- Upstream: `origin/ai/ub24-builder-v1`
|
||||
- Divergencia local/remoto: `0 0`
|
||||
- Comando usado:
|
||||
- `git rev-list --left-right --count ai/ub24-builder-v1...origin/ai/ub24-builder-v1`
|
||||
|
||||
## Regla de trabajo
|
||||
1. Cada cambio funcional se guarda en un commit separado.
|
||||
2. Cada commit se registra con su hash.
|
||||
3. Cada commit debe incluir comando de reversion rapida.
|
||||
4. La rama debe quedar sincronizada con remoto al cerrar bloque de trabajo.
|
||||
## 3) Politica de versionado
|
||||
1. Commits atomicos por cambio funcional.
|
||||
2. Mensajes bajo convencion semantica.
|
||||
3. Reversion siempre definida por commit.
|
||||
4. Cada bloque validado se empuja a remoto.
|
||||
5. No mezclar cambios de infraestructura con cambios de UX en el mismo commit.
|
||||
|
||||
## Convencion de mensaje
|
||||
## 4) Convencion de commits
|
||||
- `feat(builder): ...`
|
||||
- `fix(builder): ...`
|
||||
- `refactor(builder): ...`
|
||||
- `chore(versioning): ...`
|
||||
- `docs(builder): ...`
|
||||
|
||||
## Flujo con Gitea
|
||||
1. Trabajo local en `ai/ub24-builder-v1`.
|
||||
2. Push continuo a `origin/ai/ub24-builder-v1`.
|
||||
3. Merge cuando validemos en local y Raspberry.
|
||||
|
||||
## Protocolo fijo de sincronizacion (siempre)
|
||||
1. Verificar rama activa: `git branch --show-current`
|
||||
2. Actualizar referencias remotas: `git fetch origin --prune`
|
||||
3. Medir divergencia: `git rev-list --left-right --count ai/ub24-builder-v1...origin/ai/ub24-builder-v1`
|
||||
4. Si el resultado no es `0 0`, sincronizar antes de continuar.
|
||||
5. Despues de cada lote validado:
|
||||
## 5) Flujo obligatorio por sesion
|
||||
1. Verificar rama activa:
|
||||
- `git branch --show-current`
|
||||
2. Actualizar referencias remotas:
|
||||
- `git fetch origin --prune`
|
||||
3. Verificar divergencia:
|
||||
- `git rev-list --left-right --count ai/ub24-builder-v1...origin/ai/ub24-builder-v1`
|
||||
4. Si no es `0 0`, sincronizar antes de editar.
|
||||
5. Al cerrar lote validado:
|
||||
- `git add <archivos>`
|
||||
- `git commit -m "tipo(scope): mensaje"`
|
||||
- `git push origin ai/ub24-builder-v1`
|
||||
6. Registrar hash y objetivo en este archivo y en `codex/HISTORIAL_CAMBIOS.md`.
|
||||
|
||||
## Protocolo de inicio de sesion (obligatorio)
|
||||
1. Levantar entorno al iniciar cada sesion, sin esperar pedido del usuario.
|
||||
2. Verificar que servicios locales de trabajo esten activos (app/builder segun tarea).
|
||||
3. Si la tarea requiere validacion remota, conectarse a Raspberry y comprobar estado antes de editar.
|
||||
|
||||
## Regla operativa de contexto/token
|
||||
1. Trabajar por iteraciones cortas y versionar rapido para no perder avance cuando el presupuesto de tokens sea bajo.
|
||||
2. Priorizar cambios de alto impacto visual/funcional antes de detalles menores.
|
||||
3. Si el usuario avisa limite de tokens, cerrar cada bloque con commit y registro en este archivo.
|
||||
|
||||
## Registro de hashes
|
||||
### Baseline
|
||||
- Commit: `cb99f26`
|
||||
- Objetivo: crear rama y politica de versionado para trabajo IA.
|
||||
- Revert:
|
||||
- `git revert <hash>`
|
||||
- `git reset --hard <hash_anterior>` (solo con aprobacion explicita)
|
||||
|
||||
### Correccion historial
|
||||
- Commit: `fe8657e`
|
||||
- Objetivo: revertir commit no deseado y mantener separacion de cambios.
|
||||
- Revert:
|
||||
- `git revert fe8657e`
|
||||
|
||||
### Fix local Elementor
|
||||
- Commit: `22e564e`
|
||||
- Objetivo: robustecer arranque local y carga de themes en Windows (BOM + logs seguros).
|
||||
- Revert:
|
||||
- `git revert 22e564e`
|
||||
|
||||
### Fase 1 Builder (visual pro)
|
||||
- Commit: `1c04f04`
|
||||
- Objetivo: consolidar estilos reutilizables y subir calidad visual en hero, features, cards y contact del preview.
|
||||
- Revert:
|
||||
- `git revert 1c04f04`
|
||||
|
||||
### Ajustes Builder (limpieza + preview + ancho)
|
||||
- Commit: `7c5f671`
|
||||
- Objetivo: quitar texto en barra Apple, limpiar menu vacio, preview local funcional sin salir de builder, ancho desktop al 100%, control de ancho por bloque y descripcion en bloque video.
|
||||
- Revert:
|
||||
- `git revert 7c5f671`
|
||||
|
||||
### Ajustes Builder (preview limpio + menu modos)
|
||||
- Commit: `dd98e9d`
|
||||
- Objetivo: mejorar vista previa (forzar modo limpio y restaurar estado), eliminar precarga automatica de bloques, y agregar modo de menu (horizontal/acordeon/ambos).
|
||||
- Revert:
|
||||
- `git revert dd98e9d`
|
||||
|
||||
### Runtime unificado (app + elementor)
|
||||
- Commit: `1a5778b`
|
||||
- Objetivo: unificar arranque con `python -m demo.app` y registrar blueprint de Elementor en runtime principal.
|
||||
- Revert:
|
||||
|
||||
### Educacion V2 + regla token
|
||||
- Commit: `8ac360b`
|
||||
- Objetivo: mejorar template de Educacion (V2), corregir navegacion por anclas en menu/CTA y fijar regla operativa para sesiones con pocos tokens.
|
||||
- Revert:
|
||||
- `git revert 8ac360b`
|
||||
- `git revert 1a5778b`
|
||||
|
||||
### Fix SQLite wrapper (arranque sin error SQL)
|
||||
- Commit: `f6d8ab1`
|
||||
- Objetivo: evitar conversiones SQL invalidas en SQLite que rompian inicializacion y generaban reintentos.
|
||||
- Revert:
|
||||
- `git revert f6d8ab1`
|
||||
|
||||
### API Elementor save/publish
|
||||
- Commit: `b6fb4da`
|
||||
- Objetivo: agregar endpoint dedicado `/api/elementor/save` para guardar builder con opcion de publicar.
|
||||
- Revert:
|
||||
- `git revert b6fb4da`
|
||||
|
||||
### Builder persistencia y feedback de publicacion
|
||||
- Commit: `c2ee81d`
|
||||
- Objetivo: mantener bloques cargados al entrar, normalizar bloques sin id y mostrar estado de guardado/publicacion en topbar.
|
||||
- Revert:
|
||||
- `git revert c2ee81d`
|
||||
|
||||
### Preview full-page + layout estable
|
||||
- Commit: `e20f086`
|
||||
- Objetivo: hacer que vista previa ocupe pagina completa y forzar layout por secciones (sin modo libre por defecto) para alinear bloques.
|
||||
- Revert:
|
||||
- `git revert e20f086`
|
||||
|
||||
### Full width + dos columnas por bloque
|
||||
- Commit: `e5df6de`
|
||||
- Objetivo: expandir ancho util del canvas y habilitar 2 columnas reales con toggle "Ancho completo" por bloque.
|
||||
- Revert:
|
||||
- `git revert e5df6de`
|
||||
|
||||
### Drag inteligente columnas + preview completo
|
||||
- Commit: `a6089ee`
|
||||
- Objetivo: permitir decidir 1 o 2 columnas moviendo bloques al soltar (centro=ancho completo, lados=media columna) y agregar opcion de preview completo en nueva pestana.
|
||||
- Revert:
|
||||
- `git revert a6089ee`
|
||||
|
||||
### Quitar layout global + preview completo real
|
||||
- Commit: `f9f7d23`
|
||||
- Objetivo: eliminar toggle global de 2 columnas; mantener decision 1/2 columnas solo por movimiento de bloques; y forzar preview completo sin margenes.
|
||||
- Revert:
|
||||
- `git revert f9f7d23`
|
||||
|
||||
### Fix final dia: texto, modo libre y full preview
|
||||
- Commit: `f363eef`
|
||||
- Objetivo: reparar caracteres mojibake en UI, habilitar modo libre real para mover bloques completos y forzar modo completo con `?full=1`.
|
||||
- Revert:
|
||||
- `git revert f363eef`
|
||||
|
||||
## URL local canonica (unificada)
|
||||
- Base local: `http://127.0.0.1:5001`
|
||||
- Builder local: `http://127.0.0.1:5001/elementor/1`
|
||||
- Regla: usar siempre `127.0.0.1` (no `localhost`) en scripts, pruebas y documentacion local.
|
||||
|
||||
## Arranque rapido local (Windows)
|
||||
1. Desde `c:\word`, ejecutar:
|
||||
- `python -m demo.app`
|
||||
2. Abrir:
|
||||
- `http://127.0.0.1:5001/elementor/1`
|
||||
3. Verificacion rapida:
|
||||
- `Invoke-WebRequest http://127.0.0.1:5001/elementor/1 -UseBasicParsing`
|
||||
|
||||
Notas:
|
||||
- En el primer arranque puede tardar unos segundos adicionales por inicializacion de DB.
|
||||
- Logs:
|
||||
- `c:\word\logs_demo_app.txt`
|
||||
- `c:\word\logs_demo_app.err`
|
||||
|
||||
## Control de rama (local/remoto)
|
||||
- Rama local activa: `ai/ub24-builder-v1`
|
||||
- Upstream remoto: `origin/ai/ub24-builder-v1`
|
||||
- Estado al registrar: `en sync (0/0)` al 14 Febrero 2026
|
||||
- Politica: commits atomicos + push por lote validado + verificacion de divergencia al inicio y al cierre.
|
||||
|
||||
## Fases memorizadas (builder)
|
||||
1. Fase 1 (UI Pro base): navbar premium, hero premium, sistema de espaciado/grid, pulido visual consistente.
|
||||
2. Fase 2 (estructura): separar renderers por bloque y reducir inline styles para automatizacion.
|
||||
3. Fase 3 (presets): presets por rubro + reglas responsive + variantes exportables.
|
||||
|
||||
## Verificacion tecnica (15 Febrero 2026)
|
||||
- Rama activa verificada: `ai/ub24-builder-v1`
|
||||
- Divergencia local/remoto: `0 0` (sin diferencias con `origin/ai/ub24-builder-v1`)
|
||||
- DB local: tabla `sites` operativa con registros de prueba (`id=1`, `id=2`)
|
||||
- Smoke test builder:
|
||||
- `GET /elementor/1` -> `200 OK`
|
||||
- `POST /api/elementor/save` con `site_id=1` -> `200 OK`, `{"success": true, "published": false}`
|
||||
|
||||
## Requisitos minimos para operar Elementor (base SaaS)
|
||||
1. Arrancar con `python -m demo.app` desde `c:\word`.
|
||||
2. Mantener URL canonica local en `http://127.0.0.1:5001` (no `localhost`).
|
||||
3. Confirmar que exista un `site_id` valido en DB (ejemplo activo: `1`).
|
||||
4. Mantener una sola ruta de guardado activa: `/api/elementor/save`.
|
||||
5. Validar guardado/publicacion con prueba rapida antes de cada lote.
|
||||
|
||||
## Regla memorizada de preview (15 Febrero 2026)
|
||||
- La preview del builder debe usar un solo flujo en `Bloques` con acomodo estable.
|
||||
- No mantener ni mezclar modos paralelos de preview.
|
||||
|
||||
## Ajuste operativo UX (15 Febrero 2026)
|
||||
- Se elimina `Completo` del builder.
|
||||
- Se elimina `Modo libre` como toggle separado.
|
||||
- El layout operativo queda unico en bloques:
|
||||
- cada bloque puede ir en `50%` (dos columnas) o `100%` (ancho completo),
|
||||
- controlado por `Ancho completo` en inspector o por drop lateral/centro.
|
||||
|
||||
## Regla de estabilidad (15 Febrero 2026)
|
||||
- Lo que ya funciona no se toca sin requerimiento explicito.
|
||||
- Los bloques del panel izquierdo no deben ocultarse al usarse.
|
||||
- Cada tipo de bloque debe poder agregarse cantidad ilimitada de veces.
|
||||
- Debe existir boton de `Vista previa` funcional en el builder.
|
||||
- El ancho completo/parcial se controla solo con `Ancho bloque (%)` del mismo bloque (sin checkbox separado).
|
||||
- La vista previa se abre en modo push/pop (`preview=1`) y muestra boton `Atras`.
|
||||
|
||||
## Estado real de cierre (15 Febrero 2026)
|
||||
- Tema bloqueante: drag & drop de bloques sigue inestable en el flujo actual.
|
||||
- Sintoma reportado por usuario: mover con mouse no queda consistente para alinear y ubicar bloques como espera.
|
||||
- Decision acordada: pausar cambios hoy para no seguir consumiendo tiempo/tokens.
|
||||
- Proximo reinicio: rehacer DnD con enfoque estable desde base limpia (una sola estrategia de movimiento), validar con pruebas manuales guiadas y recien despues tocar extras.
|
||||
- Regla reforzada: no tocar lo que ya funciona mientras se corrige solo el DnD.
|
||||
|
||||
## Regla operativa de sesion (15 Febrero 2026)
|
||||
- Al iniciar cada sesion de trabajo, levantar primero el entorno local del builder:
|
||||
## 6) Protocolo de arranque local
|
||||
- Comando canonico:
|
||||
- `python -m demo.app`
|
||||
- Verificar puerto antes de editar:
|
||||
- URL canonica:
|
||||
- `http://127.0.0.1:5001`
|
||||
- Builder:
|
||||
- `http://127.0.0.1:5001/elementor/1`
|
||||
- Verificacion rapida:
|
||||
- `Invoke-WebRequest http://127.0.0.1:5001/elementor/1 -UseBasicParsing`
|
||||
|
||||
## Acuerdo definitivo DnD (15 Febrero 2026)
|
||||
- Decision: implementar una solucion definitiva de drag & drop con una sola estrategia, sin mezclar motores.
|
||||
- Motor elegido: `SortableJS` para reordenamiento estable (desktop + touch).
|
||||
- Alcance de la correccion:
|
||||
- reemplazar reordenamiento actual por `SortableJS` en el canvas de bloques,
|
||||
- usar `handle` de arrastre para no interferir con edicion inline,
|
||||
- configurar fallback estable (`forceFallback` + umbrales de toque/movimiento),
|
||||
- eliminar handlers duplicados de drag que hoy se pisan entre si.
|
||||
- Regla de seguridad: no tocar guardado, preview ni bloques que ya funcionan.
|
||||
- Proxima sesion: implementar, hacer smoke test completo en `/elementor/1`, y recien despues validar cierre para lanzamiento SaaS.
|
||||
## 7) Criterios de estabilidad (no negociables)
|
||||
1. No tocar funcionalidades estables sin requerimiento explicito.
|
||||
2. Mantener una sola estrategia de layout y DnD por flujo.
|
||||
3. Mantener una sola ruta de guardado activa:
|
||||
- `/api/elementor/save`
|
||||
4. Validar guardado/publicacion antes de cerrar lote.
|
||||
5. Evitar cambios amplios si un fix local resuelve el problema.
|
||||
|
||||
## Cierre de sesion (16 Febrero 2026)
|
||||
- Rama de trabajo usada: `ai/ub24-builder-v1`
|
||||
- Entorno validado en sesion: `GET /elementor/1 -> 200 OK`
|
||||
- Commit de cierre funcional del dia:
|
||||
- Hash: `6f14308`
|
||||
- Mensaje: `fix(builder): unificar layout y estabilizar redimension en canvas`
|
||||
- Alcance: `elementor/templates/elementor_builder.html`
|
||||
## 8) Registro de commits relevantes
|
||||
| Fecha | Commit | Tipo | Objetivo | Revert recomendado |
|
||||
|---|---|---|---|---|
|
||||
| 2026-02-14 | `cb99f26` | chore | Crear rama y politica inicial de versionado IA | `git revert cb99f26` |
|
||||
| 2026-02-14 | `fe8657e` | fix | Revertir commit no deseado y limpiar historial | `git revert fe8657e` |
|
||||
| 2026-02-14 | `22e564e` | fix | Robustecer arranque local/theme load en Windows | `git revert 22e564e` |
|
||||
| 2026-02-14 | `1c04f04` | feat | Mejora visual base (hero/features/cards/contact) | `git revert 1c04f04` |
|
||||
| 2026-02-14 | `7c5f671` | fix | Limpieza preview/menu y ajustes de ancho | `git revert 7c5f671` |
|
||||
| 2026-02-14 | `dd98e9d` | fix | Preview limpio y menu por modos | `git revert dd98e9d` |
|
||||
| 2026-02-15 | `1a5778b` | refactor | Runtime unificado `python -m demo.app` + blueprint Elementor | `git revert 1a5778b` |
|
||||
| 2026-02-15 | `8ac360b` | feat | Educacion V2 + correccion de anclas | `git revert 8ac360b` |
|
||||
| 2026-02-15 | `f6d8ab1` | fix | Corregir wrapper SQLite para evitar fallo de arranque | `git revert f6d8ab1` |
|
||||
| 2026-02-15 | `b6fb4da` | feat | API dedicada `/api/elementor/save` con opcion publicar | `git revert b6fb4da` |
|
||||
| 2026-02-15 | `c2ee81d` | fix | Persistencia de bloques + feedback de publish | `git revert c2ee81d` |
|
||||
| 2026-02-15 | `e20f086` | fix | Preview full-page y layout estable por secciones | `git revert e20f086` |
|
||||
| 2026-02-15 | `e5df6de` | feat | Full width + soporte real de 2 columnas | `git revert e5df6de` |
|
||||
| 2026-02-15 | `a6089ee` | feat | Drag inteligente por drop + preview en nueva pestana | `git revert a6089ee` |
|
||||
| 2026-02-15 | `f9f7d23` | fix | Quitar layout global y forzar preview completo | `git revert f9f7d23` |
|
||||
| 2026-02-15 | `f363eef` | fix | Correccion de texto/UI + modo libre + `?full=1` | `git revert f363eef` |
|
||||
| 2026-02-16 | `6f14308` | fix | Unificar layout y estabilizar redimension en canvas | `git revert 6f14308` |
|
||||
|
||||
### Resultado operativo del dia
|
||||
- Se recupero el flujo de insercion de bloques desde panel izquierdo al canvas.
|
||||
- Se estabilizo el modelo de layout del canvas para evitar mezcla de estrategias.
|
||||
- Se dejo redimension por ancho de bloque en flujo normal y control desde inspector.
|
||||
- Se corrigio comportamiento por defecto para que bloques nuevos entren apilados (ancho completo) y no en paralelo automatico.
|
||||
- Se mantuvo `SortableJS` para reordenamiento de bloques en canvas.
|
||||
|
||||
### Decisiones memorizadas para siguiente sesion
|
||||
- Mantener una sola estrategia de layout y reordenamiento (sin volver a mezclar motores/flows).
|
||||
- No reabrir cambios globales cuando un fix local sea suficiente.
|
||||
- Si algo ya funciona, no rehacerlo completo: tocar solo el bloque minimo necesario.
|
||||
|
||||
### Pendientes acordados (proxima sesion)
|
||||
1. Footer obligatorio global en todas las paginas:
|
||||
- marca registrada del usuario + empresa desarrolladora.
|
||||
2. Watermark de autoria en codigo (convencion consistente del proyecto).
|
||||
3. Preview dual:
|
||||
- modo bloques (editor),
|
||||
- modo pagina completa real (resultado final).
|
||||
4. Mejorar landing base para nivel visual profesional.
|
||||
5. Redes sociales con posicion libre (ubicacion configurable).
|
||||
6. Menu superior: corregir modo acordeon (hoy no queda operativo como se espera).
|
||||
7. Mejorar interaccion touch/capacitiva del builder.
|
||||
|
||||
## Registro operativo (17 Febrero 2026)
|
||||
- TAG: `RUBROS_OFICIALES_BLOQUEADOS`
|
||||
- Regla fija: no usar rubros inventados; solo los oficiales definidos por usuario.
|
||||
- Rubros oficiales memorizados:
|
||||
## 9) Decisiones funcionales vigentes
|
||||
- Rubros oficiales permitidos:
|
||||
- `restaurante`
|
||||
- `danza`
|
||||
- `cosmeticos`
|
||||
- `despachos`
|
||||
- `gimnasios`
|
||||
- `educacion`
|
||||
- `base_otro` (`Base (Otro)`)
|
||||
|
||||
- TAG: `PREVIEW_FINAL_SEPARADA`
|
||||
- Se agrega flujo dedicado de preview final real separado del hash del editor:
|
||||
- `base_otro`
|
||||
- Preview final separada habilitada:
|
||||
- `GET /elementor/<site_id>/preview-final`
|
||||
- `GET /ub24/<site_id>/preview-final`
|
||||
- En preview final:
|
||||
- se fuerza `preview-mode` desde servidor (`preview_only=true`),
|
||||
- boton `Atras` vuelve al builder base.
|
||||
- Motor de reordenamiento seleccionado para DnD:
|
||||
- `SortableJS` (estrategia unica)
|
||||
|
||||
- TAG: `UNIFICACION_TOPBAR_Y_DRAWER_FIX`
|
||||
- Ajustes aplicados:
|
||||
- se elimina duplicidad operativa de preview en topbar y se deja `Pagina real` como flujo principal,
|
||||
- selector de plantillas migra a `Plantillas por rubro` (catalogo oficial),
|
||||
- `Drawer Pro` se mueve a capa global para evitar render roto dentro del bloque/canvas,
|
||||
- etiqueta de pagina `Servicios` se neutraliza a `Seccion 2` para no mezclar paginas con rubros.
|
||||
## 10) Pendientes priorizados
|
||||
1. Footer global obligatorio con autoria del proyecto.
|
||||
2. Watermark de autoria en codigo bajo convencion unica.
|
||||
3. Flujo dual estable de preview (editor/pagina real).
|
||||
4. Correccion de menu superior en modo acordeon.
|
||||
5. Mejora de interaccion touch/capacitiva del builder.
|
||||
|
||||
## Registro infraestructura Raspberry (17 Febrero 2026)
|
||||
- TAG: `KOMKIDA_WEB_ACCESS_RECOVERY`
|
||||
- Objetivo: recuperar `komkida.duckdns.org` como acceso web remoto a Raspberry con login (estilo Motion), sin romper:
|
||||
- `gk-saas.komkida.duckdns.org`
|
||||
- `git.gk-saas.komkida.duckdns.org`
|
||||
- `motion.komkida.duckdns.org`
|
||||
## 11) Referencias cruzadas
|
||||
- Historial funcional detallado: `codex/HISTORIAL_CAMBIOS.md`
|
||||
- Arranque rapido local: `codex/ARRANQUE_RAPIDO_UB24.md`
|
||||
- Flujo general del proyecto: `codex/FLUJO_PROYECTO.md`
|
||||
|
||||
### Diagnostico real
|
||||
1. El `502 Bad Gateway` en subdominios (`gk-saas`, `git`, `motion`) venia por `proxy_pass http://localhost:PUERTO`:
|
||||
- Nginx resolvia `localhost` a IPv6 (`[::1]`) en varios casos.
|
||||
- servicios escuchando en IPv4 (`127.0.0.1` / `0.0.0.0`) devolvian `connection refused`.
|
||||
2. `komkida.duckdns.org` quedo mezclado con proxy a metricas (`192.168.1.133:5000`) y luego con rutas no validas (`Not Found`).
|
||||
3. Hubo drift de configuracion:
|
||||
- archivo suelto viejo en `/etc/nginx/sites-enabled/komkida.duckdns.org` (no symlink) con reglas desactualizadas.
|
||||
4. El navegador intentaba `https://komkida.duckdns.org` y no habia listener en `443`:
|
||||
- error visible: `ERR_CONNECTION_REFUSED`.
|
||||
|
||||
### Cambios aplicados en Raspberry
|
||||
1. Normalizacion de upstreams Nginx a IPv4:
|
||||
- `proxy_pass http://127.0.0.1:<puerto>;` en vhosts activos.
|
||||
2. Limpieza de duplicados/conflictos:
|
||||
- quitar backups cargados en `sites-enabled`.
|
||||
- asegurar `sites-enabled/komkida.duckdns.org` como symlink al archivo de `sites-available`.
|
||||
3. Definicion final de `komkida.duckdns.org`:
|
||||
- auth_basic con `.htpasswd`.
|
||||
- `/` proxyeado a `https://127.0.0.1:4200` (ShellInABox).
|
||||
- `/api/` mantiene proxy a `127.0.0.1:9999` (no bloquea resto del sistema).
|
||||
4. Habilitacion HTTPS para `komkida`:
|
||||
- servidor Nginx en `443 ssl`.
|
||||
- certificado local en:
|
||||
- `/etc/nginx/ssl/komkida.crt`
|
||||
- `/etc/nginx/ssl/komkida.key`
|
||||
5. Verificacion final:
|
||||
- Nginx escuchando en `80` y `443`.
|
||||
- `http://komkida.duckdns.org` -> `401` (esperado: login).
|
||||
- `https://komkida.duckdns.org` -> `401` (esperado: login).
|
||||
- `gk-saas` y `git` siguen en `200`.
|
||||
|
||||
### Bots (estado para no cargar la Pi)
|
||||
- `clawdbot`: deshabilitado por OOM recurrente (`JavaScript heap out of memory`).
|
||||
- `moltobot`: deshabilitado temporalmente.
|
||||
- Decision: priorizar estabilidad de infraestructura y SaaS.
|
||||
|
||||
### Archivos clave tocados en la Pi
|
||||
- `/etc/nginx/sites-available/komkida.duckdns.org`
|
||||
- `/etc/nginx/sites-enabled/komkida.duckdns.org`
|
||||
- `/etc/nginx/ssl/komkida.crt`
|
||||
- `/etc/nginx/ssl/komkida.key`
|
||||
|
||||
### Checklist rapido de recuperacion futura
|
||||
1. `sudo nginx -t`
|
||||
2. `sudo systemctl restart nginx`
|
||||
3. `ss -tulpen | egrep ':80 |:443 '`
|
||||
4. `curl -I http://komkida.duckdns.org/` (debe pedir auth)
|
||||
5. `curl -k -I https://komkida.duckdns.org/` (debe pedir auth)
|
||||
6. `curl -I http://gk-saas.komkida.duckdns.org/` (debe responder `200`)
|
||||
|
||||
A ESTO SE TIENEN QUE PARECER:
|
||||
Correcto. Busqué referencias reales y modernas; vamos a dejar de “inventar” estilos internos.
|
||||
|
||||
Referencias que sí sirven para copiar estructura profesional:
|
||||
1. Webflow Education Templates (catálogo): https://webflow.com/templates/category/education-websites
|
||||
2. Hopedu (estructura académica limpia + CMS): https://webflow.com/templates/html/hopedu-school-website-template
|
||||
3. Eduvolv (hero + admissions + secciones institucionales): https://webflow.com/templates/html/eduvolv-website-template
|
||||
4. Thema (variantes de layout + menú fullscreen): https://webflow.com/made-in-webflow/website/thema-education-template-showcase
|
||||
5. Campus (layout simple usable): https://webflow.com/templates/html/campus-education-website-template
|
||||
6. ThemeForest Elementor kit (referencia de páginas mínimas): https://themeforest.net/item/educita-education-elementor-template-kit/37245135
|
||||
|
||||
Plan profesional (sin clones):
|
||||
1. Rehacer templates por rubro con 3 arquitecturas distintas, no solo cambiar color.
|
||||
2. Cada rubro tendrá:
|
||||
- header propio
|
||||
- hero propio
|
||||
- grid propio
|
||||
- CTA propio
|
||||
- footer propio
|
||||
3. El builder cargará esas arquitecturas base y luego se edita contenido.
|
||||
4. Eliminaré el estilo único actual que hace que todo se vea igual.
|
||||
|
||||
Si quieres, empiezo ya con `Educación` copiando patrón `Eduvolv/Hopedu` y luego replico la metodología al resto de rubros.
|
||||
## 12) Nota operativa
|
||||
Este archivo define el estandar de trabajo. Cualquier cambio de proceso debe registrarse en un commit `chore(versioning)` y quedar reflejado aqui.
|
||||
|
||||
Reference in New Issue
Block a user