Volver a la wiki

Hetzner OPS (crearack-ops) — runners CI + crons del ecosistema

Hetzner OPS (crearack-ops) — runners CI + crons del ecosistema

Servidor de operaciones del equipo, creado el 03-07-2026 (s193) para sacar TODO el mantenimiento automatizado de GitHub Actions (0 minutos) y descargar a STAGE de responsabilidades que no eran suyas. Desde la limpieza F3 (s201, 05-07-2026) es el ÚNICO host de crons del ecosistema.

Naturaleza: máquina RECREABLE. No guarda datos de negocio ni tiene rol DR — todo lo que corre aquí se reconstruye desde los repos + 4 secretos. Si se pierde, se re-provisiona con el playbook de §5 en <1h. El DR del workspace vive en STAGE (concept--infra--staging-server).

1. Hardware y red

2. Runners self-hosted del CI (0 minutos de Actions)

3. Crons (/etc/cron.d/ · scripts en /opt/)

El inventario detallado con frecuencias y objetivos es la tabla §4 de AUTOMATISMOS.md (fuente de verdad viva). Resumen de grupos:

GrupoQué cubre
bib-reindexgrafo de CreaRack-Pro: AST cada 10 min · extras (openapi+docs) cada hora · communities diario
bib-reindex-wsgrafo del workspace: supercontext (diario 00:45) · ts + claude-method (L+J) · chunks Pro (01:30) · wiki (01:00, dom --full)
biblioteca-cronsmantenimiento wiki: lint (04:30) · lint-consolidation (dom) · curator (L+J) · utility (L+M+V) · drift-check (06:00) · escriba (04:15) · enrich (02:50)
cf-pages-deploybuild+deploy del sitio workspace a CF Pages cada 10 min con debounce por SHA (palanca 1 anti-Actions, s188)
gh-actions-watchdogcada 5 min re-dispara ci.yml (Pro) / post-merge-ingest.yml (workspace) si un commit de main se queda sin runs (footgun “push triggers pausados”). Par del workspace corregido en s201 (antes apuntaba al deshabilitado cf-pages-deploy.yml → 422)
cron-heartbeatdead-man’s-switch cada 30 min: email si un cron no reporta [OK] dentro de su ventana
docker-prunehigiene semanal de los runners

4. Credenciales y clones

5. Réplica desde cero (playbook corto)

  1. Provisionar CX33 Ubuntu + alta en NetBird + swapfile 2G.
  2. Instalar Node 22, pnpm 9, wrangler 4, Python 3.12, jq, Docker.
  3. Generar 3 deploy keys nuevas → añadirlas read-only a los 3 repos → clonar en /opt/.
  4. Restaurar los 4 secretos de la bóveda (BIB_MCP_TOKEN, CF Access ST, token CF Pages, PAT watchdog).
  5. Copiar los /etc/cron.d/ y scripts desde los repos (los scripts viven en scripts/ de workspace y Pro; los de biblioteca-crons y heartbeat en /opt — ver AUTOMATISMOS.md §4).
  6. Runners CI: registrar 2 runners en la org con usuarios separados + ACL del toolcache (§2).
  7. Verificar: ejecución manual de cada grupo + heartbeat en [OK].

6. Impacto si OPS cae

Se paraEfectoDolor
Runners CIPRs de Pro/workspace sin checks (CI en cola infinita)Inmediato
cf-pages-deployel sitio workspace deja de reflejar pushes≤1 h
Reindex del grafobib_ask responde con datos rancios12-24 h
Crons wiki (lint/curator/…)drift documental sin vigilanciadías
Heartbeatnadie avisa de los crons — pero el host caído SÍ lo avisa UptimeRobot (crearack-ops)—

No afecta: DR del workspace, Dokploy, PROD, STAGE (viven en otros hosts).

Véase también

Subir