El día 3 (ventana operativa del 26 al 27 de mayo de 2026, ~12 h en el VPS Debian) consolida dos frentes que conviven en el mismo host: OpenCloud pasa a tener un repositorio Git propio con despliegue versionado y plan de corte a cloud.km0digital.com, y la web corporativa migra de km0.amvara.de a km0digital.com con mejoras de producto (FAQ, versión en pie, modal «próximamente», menú móvil y selector de idioma sin perder contexto). En ambos repos se introduce el mismo bucle autoagents (GitHub Issues → tareas → cursor-agent) y, en OpenCloud, notas de cierre automáticas en Redmine al archivar tareas.
Resumen ejecutivo
| Área | Hitos del día |
|---|---|
| OpenCloud | Primer commit Git de activos KM0 (km0-opencloud); alineación de plantillas a cloud.km0digital.com; bucle autoagents; redmine_sync.py al archivar CLOSED-*. |
| Web corporativa | Migración a km0digital.com; slugs de blog day-*; FAQ multidioma; pie con semver; modal email «coming soon»; hamburguesa móvil; switchLocaleHref; versión 1.1.4. |
| Compartido | Reglas Cursor (direct-user-prompts, security-untrusted-input, autoagents-workflow), autoagents/SKILL.md, scripts/git-sync-main.sh, docs/agent-loop.md. |
Coexistencia en un solo host (estado tras el día)
Internet :443
├── km0digital.com → nginx km0 → 127.0.0.1:9180 (km0-web Docker)
└── cloud.km0digital.com → nginx opencloud → 127.0.0.1:9200 (OpenCloud external-proxy)
└── /dex/* → 127.0.0.1:5556 (Dex OIDC)
| Servicio | URL | Ruta en servidor |
|---|---|---|
| Marketing | https://km0digital.com | /opt/km0-web |
| OpenCloud | https://cloud.km0digital.com | /opt/opencloud |
| Redirección legado | km0.amvara.de → apex | vhost nginx km0 |
Durante la ventana, el README de OpenCloud aún podía citar la web en el dominio anterior mientras km0-web ya apuntaba a km0digital.com — conviene alinear runbooks en el siguiente pase operativo.
OpenCloud — repositorio Git (km0-opencloud)
Commit inicial (f454889, 26-may 21:13 CEST): Initial KM0 OpenCloud deployment repository en git@github.com:AMVARA-CONSULTING/km0-opencloud.git, rama main.
Quedó versionado (63 ficheros), entre otros:
overrides/opencloud-compose/— CSP, overlay external-proxy, parche OIDC, ejemplo.env.debian-core-external-proxy.exampledex/— compose Dex, tema KM0 (web/themes/km0/), plantillas de login,setup-apple.shnginx/— plantilla vhost paracloud.km0digital.com,conf.d/opencloud-map.confhost-www/opencloud-auth/— login híbrido (config-dex.json/config-local.json,login.html)scripts/— backups,apply-opencloud-compose-overrides.shdocs/— runbook,REPOSITORY.md, resumen Redmine
Fuera de Git (solo en servidor): clon upstream opencloud-compose/, .env vivos, secretos OAuth, volúmenes Docker y /etc/letsencrypt/. Higiene previa al push: secretos e IPs operativas retirados de docs; borrador README.red con histórico sensible → .gitignore.
OpenCloud — migración de dominio y autoagents
Commit 0b27952 (27-may 00:06 CEST): alineación de OC_DOMAIN, emisor Dex, server_name nginx y plantillas a cloud.km0digital.com (sustituye cloud.km0.amvara.de en ficheros versionados). Nuevo script scripts/issue-cloud-km0digital-cert.sh (comprobación DNS + Certbot webroot).
Se añade el bucle autoagents (versión 1.0.2 en autoagents/VERSION):
| Ruta | Rol |
|---|---|
autoagents/001-gh-reviewer.md | Poll GitHub; crea tareas NEW-* |
autoagents/002-coder/CODER.md | Implementa NEW-* / WIP-* |
autoagents/010-feature-coder.md | Implementa FEAT-* |
autoagents/020-test.md | Agente tester |
autoagents/030-closing-reviewer.md | Resumen de cierre + archivo |
autoagents/040-committer.md | Bump de versión + commit |
autoagents/autoagents-loop.sh | Orquestador |
autoagents/gh_issue_sync.py | Comentarios / cierre / labels en GitHub |
scripts/move-agent-task-to-done.sh | Archiva CLOSED-* → done/YYYY/MM/DD/ |
Commit 7203b6f (00:37 CEST): autoagents/redmine_sync.py — al archivar tareas cerradas, publica en Redmine un resumen Textile (variables en autoagents/.env); copia opcional bajo /root/redminenotes/.
Historial Git OpenCloud en la ventana:
| Commit | Hora (CEST) | Resumen |
|---|---|---|
f454889 | 26-may 21:13 | Repositorio de despliegue inicial |
0b27952 | 27-may 00:06 | cloud.km0digital.com + autoagents |
7203b6f | 27-may 00:37 | Notas Redmine al archivar CLOSED |
Web corporativa (km0-web)
Contenido y rutas (26-may, tarde)
4686465— slugs de blogdia-*→day-*en todos los locales (src/content/doc/{ca,de,en,es}/).0a395de— identificadores de desarrollo en inglés para navegación y anclas (#values,#services, enlaces del blog).
Migración de hostname (23:42 CEST)
Commit bdc9e2c: URLs principales https://km0digital.com (ES en /), /ca/, /en/, /de/, blog en /doc/. Nginx: server_name km0digital.com www.km0digital.com; redirección 301 desde km0.amvara.de. TLS objetivo: /etc/letsencrypt/live/km0digital.com/. Enlaces i18n y markdown actualizados; servicio OpenCloud enlazado a https://cloud.km0digital.com. Mismo patrón autoagents y reglas Cursor que en OpenCloud.
Funcionalidades de landing (00:06 CEST)
Commit 23ec0bf (camino hacia 1.1.3):
Faq.astro— FAQ multidioma (hosting / Hetzner seed); ancla#faq.site-version.ts— pie con semver desdepackage.json.ServiceComingSoonModal.astro+ script — UX «próximamente» para el servicio de email.- Ajustes en
Footer,Header,Services,Landing; helpers GitHub enautoagents/lib/. - Tarea cerrada: FAQ (GitHub #1).
Navegación móvil e idioma (00:39 CEST)
Commit e5cfa57 (1.1.3): menú hamburguesa en Header.astro (toggle, panel móvil, aria-*, bloqueo de scroll, Escape); switchLocaleHref / stripLocalePrefix en src/i18n/paths.ts para cambiar idioma sin perder entrada de blog ni hash en landing (issues #2 y #3). Helpers Redmine en el repo web.
Documentación y versión 1.1.4
67b62cc (01:03 CEST): README simplificado (autoagents fuera del README público); versión de sitio 1.1.4. Tarea de humo CLOSED-4-... validó el pipeline (loopback + producción HTTP 200).
Tareas autoagents cerradas (km0-web)
| Tarea | GitHub | Entregable |
|---|---|---|
CLOSED-1-...-new-faq-section | #1 | Sección FAQ, 4 locales |
CLOSED-2-...-changing-the-language | #2 | switchLocaleHref |
CLOSED-3-...-burger-menu | #3 | Navegación hamburguesa móvil |
CLOSED-4-...-test-issue | (test) | Humo del bucle — PASS en :9180 y producción |
Progresión de versión del sitio en la ventana: baseline Astro 5 en :9180 → 1.1.3 (FAQ, pie semver, modal, nav móvil, locale) → 1.1.4 (README/docs).
Historial Git web (extracto): 4686465, 0a395de, bdc9e2c, 23ec0bf, e5cfa57, 382cef3, 67b62cc.
Verificación (referencia operativa)
Web:
cd /opt/km0-web docker compose build && docker compose up -d curl -sI https://km0digital.com/ curl -sI http://127.0.0.1:9180/en/doc/day-0/
OpenCloud:
cd /opt/opencloud docker compose -f opencloud-compose/docker-compose.yml ps curl -sI https://cloud.km0digital.com/login.html # Tras registro DNS A: /opt/opencloud/scripts/issue-cloud-km0digital-cert.sh
Autoagents (cualquier repo):
./scripts/git-sync-main.sh ./scripts/setup-autoagents-gh.sh # una vez por máquina ./autoagents/autoagents-loop.sh 001 ./autoagents/autoagents-loop.sh
Documentación relacionada
/opt/opencloud/docs/km0-opencloud-resumen.red— resumen del stack OpenCloud/opt/opencloud/docs/km0-opencloud-repo-bootstrap.red— bootstrap del repositorio Git/opt/km0-web/docs/km0-web-resumen-proyecto.red— resumen del proyecto webdocs/agent-loop.md— runbook del bucle de agentes (ambos repos)
Los secretos (.env, claves Redmine/GitHub, OAuth) no forman parte de esta entrada; viven solo en el servidor y en la documentación operativa privada del equipo.