feat(episode): BACKFILL_q-17d3bbdf-8c46-4dc5-b166-acf6382f720c_S20260510.BACKFILL-RECOVERED_XX.bkf.0.warm_qdr.orphan.in.cc.es.000.BKF_J.2048D_E.4A2-0

Skill: NONE | Type: chronicle
Summary: **Crónica de la Migración de MEMORIA: CX43 Helsinki → CX53 Falkenstein** **Conte
This commit is contained in:
Ember 2026-05-11 04:32:40 +00:00
parent 04e0c076da
commit f3f02d211e

View file

@ -0,0 +1,19 @@
---
episode_id: "2048d4a2-0181-55fc-81fc-6b6563a32f8a"
puente_flat: "BACKFILL_q-17d3bbdf-8c46-4dc5-b166-acf6382f720c_S20260510.BACKFILL-RECOVERED_XX.bkf.0.warm_qdr.orphan.in.cc.es.000.BKF_J.2048D_E.4A2-0"
session_code: "S20260510.BACKFILL_RECOVERED"
acto_dialogico: "informar"
actor_flujo: "ember_internal"
criticidad_aegis: "moderate"
skill_dominante: "NONE"
fase_proyecto: "maintenance"
tipo_semantico: "chronicle"
summary_one_line: "**Crónica de la Migración de MEMORIA: CX43 Helsinki → CX53 Falkenstein** **Contexto y motivación** — MEMORIA llevaba 3 meses corriendo en un CX43 en Helsinki con 8vCPU, 16GB RAM y 160GB disco. El ecos"
source_type: "claude_code"
trust_boundary: "default"
created_at: "2026-05-10T00:00:00+00:00"
relectura_tagged: false
forgejo_commit_sha: "pending"
---
**Crónica de la Migración de MEMORIA: CX43 Helsinki → CX53 Falkenstein** **Contexto y motivación** — MEMORIA llevaba 3 meses corriendo en un CX43 en Helsinki con 8vCPU, 16GB RAM y 160GB disco. El ecosistema había crecido de 6 containers a 16, Qdrant consumía 4GB solo, y estábamos al 78% de RAM con swap activo. Helsinki además añadía ~45ms de latencia extra para las conexiones desde Colombia comparado con Frankfurt/Falkenstein. La decisión fue clara: necesitábamos más potencia y mejor ubicación geográfica. **Preparación (día 1)** — Documentamos el inventario completo: 16 containers, 7 subdominios, 4 bases de datos Postgres, volúmenes Docker, configuración Caddy, reglas UFW, config CrowdSec, secretos SOPS/age. Creamos un checklist de 23 items para verificar post-migración. Exportamos los compose files y el Caddyfile completo. Punto crítico: los volúmenes de Qdrant y las bases Postgres no se podían perder — ahí vivía toda la memoria del ecosistema. **Snapshot Hetzner (día 1, noche)** — Usamos la función de snapshot de Hetzner Cloud para capturar el disco completo del CX43. El snapshot tardó 47 minutos para 140GB de datos. Verificamos que el snapshot apareciera en el panel de Hetzner con estado "available". Este fue el punto de no retorno planeado — si algo salía mal, podríamos restaurar desde el snapshot. **Provisión del CX53 (día 2, mañana)** — Creamos el nuevo servidor CX53 en Falkenstein desde el snapshot. Specs: 16vCPU (4× más), 32GB RAM (2× más), 320GB disco (2× más). Costo: de €15.60/mes a €36.41/mes — inversión justificada por el crecimiento del ecosistema. El servidor tardó 12 minutos en provisionar desde snapshot. La IP cambió: de 95.217.xxx.xxx (Helsinki) a 78.47.194.63 (Falkenstein). **Reconfiguración de red (día 2, mediodía)** — Actualizamos los registros DNS en Cloudflare: brasaluz.com y los 7 subdominios apuntando a la nueva IP. TTL ya estaba en 300s, así que la propagación fue rápida. Actualizamos la regla de UFW para permitir la nueva IP del tunnel WireGuard de LUMEN. Reconfiguramos SSH: verificamos que el puerto 47822 seguía activo, actualizamos el archivo .ssh/config local con la nueva IP. **Verificación de servicios (día 2, tarde)** — Levantamos todos los containers: `docker compose up -d` en cada stack. Verificación uno por uno con la checklist de 23 items: - ember-mcp: ✅ Respondiendo en lumbre.brasaluz.com/mcp - Qdrant: ✅ 54 puntos intactos en 4 colecciones (era la época pre-transcript_processor) - Caddy: ✅ Todos los subdominios con HTTPS activo - n8n-ember: ✅ Workflows intactos - Ghost: ✅ Blog accesible...