Volver a la wiki

Auditoría y Simplificación de Servicios Auxiliares · plan multi-fase

Apodo canónico del plan

“Plan Servicios” (registrado s66 · 16-05-2026 tarde). Cualquier referencia en futuras sesiones a “Plan Servicios” debe resolverse a este ADR + catálogo asociado.

Contexto

Tras 6+ meses de desarrollo intensivo del SaaS CreaRack Pro + plataforma Workspace + método claude-method, el sistema ha crecido en alcance y dependencias externas a una velocidad superior a la capacidad de cualquier humano del equipo (de 3 personas) para mantener el mapa mental completo.

Preocupación operativa explícita del CEO (Edu · 16-05-2026):

“Hemos creado innumerables sistemas de automatización para disparar crons, o enlazar servicios (Resend, Cloudflare, GitHub, servidores en Hetzner, etc.). Soy incapaz de recordar todo este enjambre de servicios auxiliares de los que depende el SaaS CreaRack y nuestra plataforma Workspace, incluso nuestro claude-method. Me pregunto qué podemos hacer para unificar y poner en orden, es decir simplificar todo esto.”

Síntomas observables:

Decisión

Ejecutar plan en 3 fases independientes. Cada fase entrega valor por sí sola sin depender de las siguientes — punto de parada/evaluación tras cada una.

Fase A · Auditoría y Catálogo (prioridad ALTA · estimado 1-2 sesiones)

Objetivo: tener un mapa completo y vivo de TODOS los servicios externos del proyecto.

Entregables:

  1. Wiki page tech entity--ops--catalogo-servicios-externos (workspace-tech) con tabla completa:
    • Nombre del servicio · función · proveedor
    • Cuenta (Edu / CreaRackSL / Esferic Labs / personal) · email asociado
    • Coste mensual estimado · plan contratado
    • Criticidad (alta = PROD caería · media = degradación · baja = nice-to-have)
    • Dónde viven las credenciales (sitio canónico)
    • Owner funcional (Edu / Dani / Txell)
    • Qué hace si cae · ¿hay fallback?
    • Última verificación / revisión
  2. Dashboard visual en el workspace (/services o panel en /dashboard) → DESCARTADO 16-05-2026 tarde: refinamiento UX directo de la wiki page del catálogo en lugar de página nueva. Valor entregado equivalente sin código adicional (sección “Si esto cae, cae el negocio” + tabla “Para Txell · qué facturamos” agrupada por cuenta pagadora + columna Panel billing en tabla resumen).
  3. Memoria personal Claude actualizada con referencias.

Criterio de éxito:

Fase B · Limpieza (prioridad MEDIA · estimado 1 sesión)

Objetivo: eliminar redundancias y desorden detectados en Fase A.

Acciones esperadas (priorizadas tras auditoría):

Criterio de éxito: ≥3 cuentas/servicios eliminados o consolidados. Credenciales con sitio canónico documentado.

Fase C · Migración selectiva a Hetzner (prioridad BAJA · multi-sesión · OPCIONAL)

Objetivo: migrar a infraestructura propia SOLO los servicios donde el cálculo de “control + ahorro” supera al de “mantenimiento + complejidad”.

Lista probable a migrar (revisar tras Fase A):

Lista explícita de NO migrar (decisión consciente · refractaria a “second-system effect”):

ServicioPor qué se mantiene SaaS
Cloudflare (DNS+CDN+WAF+Access+Pages+Workers+D1)Replicar la edge geográfica + WAF + DDoS protection a esta escala es económica y operativamente inviable.
GitHub (code+PR+Actions UI+Issues)$4/mes Pro. Self-host Gitea/Forgejo no añade control real (es tu cuenta) y suma mantenimiento.
Resend (transactional email)IP reputation + DKIM/DMARC + bounce handling = pesadilla mainteable a volumen bajo.
Zoho Mail (humano corporativo)Mismo argumento que Resend × 10. Email humano es donde MENOS quieres tener dolores.
Anthropic API (Claude)No se puede self-host. 80% del coste IA del proyecto.
Google AI Studio (Gemma 4)pve-epyc-02 self-host dado de baja en s53 por coste eléctrico/mantenimiento (decisión ya tomada).
Holded (contabilidad/facturación)Cumplimiento Hacienda. No se self-host contabilidad de una SL.
Hetzner Cloud (PROD + STAGE)Es el proveedor base, no es servicio a “migrar”.

Criterio de éxito: solo se aborda si Fase A+B revelan dolor real persistente. Cada migración individual debe pasar test “¿da más control neto o más mantenimiento?”.

Alternativas consideradas y descartadas

Alternativa 1 · Self-host everything en un Hetzner dedicado

Rechazada — el cálculo no sale:

Alternativa 2 · No hacer nada

Rechazada — el problema crece. Cada nuevo servicio añade peso al “enjambre” sin documentar el anterior.

Alternativa 3 · Solo auditoría y documentación (sin Fase B/C)

Válida y conservadora. Plan elegido incluye Fase B (limpieza) porque tras documentar suelen aparecer obvios. Fase C queda explícitamente opcional.

Consecuencias

Esperadas positivas

Esperadas negativas / riesgos

Mitigaciones

Criterios de éxito globales (medibles a 3 meses)

Estado

Pendientes vivos (delegados a tasks MCP workspace)

Los 2 pendientes que quedan abiertos tras cierre operativo, ambos con due_date y owner:

  1. Costes mensuales reales (task MCP #31 · Edu · due 23-05-2026) — Anthropic Plan Max × 3 + Google AI Studio Paid + Holded + Zoho Mail + Tailscale. Requiere acceso de Edu a paneles externos. Estimado 30min total. Actualizar tabla “Coste mensual aproximado” del catálogo wiki al recopilar.
  2. Decisión credenciales centralizadas (task MCP #33 · Equipo · due 30-05-2026) — Bitwarden Free/Premium Families vs 1Password Teams vs KeePass self-host vs status quo. Requiere reunión Edu+Dani+Txell. ADR resultante decision--202605XX--credenciales-centralizadas. Estimado 30min reunión + escritura ADR.

Los pendientes originales #32 (dashboard /services) y “crons huérfanos” están resueltos (refinamiento wiki + audit 0 huérfanos respectivamente).

Reapertura futura

Reabierta el 10-09-2026 (s320) como decisión nueva: plan public/supercontext/stack-servicios/PLAN_STACK_SERVICIOS.md (task #298), en tres tiempos: mapa vivo (hecho ese día: catálogo refrescado + inventario automático semanal en OPS con aviso a infra@), estrategia de hospedaje propio (storm → roast → ADR nuevo), migraciones una a una. De la lista “probable a migrar” de la fase C ya están hechas de facto: runners self-hosted y crons del Bibliotecario en OPS (julio 2026); Uptime Kuma sigue como candidato. La lista de “NO migrar” se mantiene como principio, salvo GitHub, que con Forgejo en espejo (F1) pasa a deliberación.

Fase C (migración Hetzner) puede iniciarse en cualquier momento futuro como sub-iniciativa independiente. Crear nueva ADR decision--202607XX--fase-c-migracion-hetzner si se decide proceder (no reabrir este ADR — cada fase con su trazabilidad).

Catálogo de servicios (entity--ops--catalogo-servicios-externos): mantenimiento continuo vía lifecycle: refresh-30d. El Bibliotecario marca verification_pending cada 30 días. Owner del refresh: Edu.

Véase también

Subir