Volver a la wiki

Catálogo del stack de servicios · los 30 servicios uno a uno (costes, criticidad, credenciales, mapa)

Para qué sirve esta página

Esta es la página larga, la de consulta. Si es tu primera vez, empieza por la corta: [[workspace—infra—stack-de-servicios]].

Inventario único y vivo de todos los servicios, externos y propios, de los que dependen las tres plataformas del equipo: CreaRack Pro (el SaaS), Workspace (la plataforma interna) y claude-method (el método de trabajo con Claude Code). Es la fuente de verdad del “stack de servicios”: si algo no está aquí, o no existe o hay que añadirlo.

Nació como fase A del plan de mayo ([[decision—20260516—auditoria-simplificacion-servicios-auxiliares]]) y se refrescó de arriba abajo el 10-09-2026 (s320) como tiempo 1 del plan public/supercontext/stack-servicios/PLAN_STACK_SERVICIOS.md (task #298): el mapa con datos vivos, el aviso automático cuando el mapa y la realidad se separan, y la columna de “alternativa open source” que alimenta el tiempo 2 (la estrategia de hospedaje propio).

Cómo usarlo

Cómo se mantiene vivo (desde el 10-09-2026)

Lo “vivo” ya no depende de que alguien se acuerde. Un inventario automático, scripts/ops/stack-inventario/ del repo del workspace, corre cada lunes a las 06:30 UTC en el servidor OPS (/opt/stack-inventario/, vigilado por cron-heartbeat, ventana de 200 h). Lee lo que las APIs y los servidores ya saben: peers, grupos y políticas de NetBird; zonas, registros DNS y productos de Cloudflare; repos, workflows, runners y nombres de secretos de GitHub; servidores de Hetzner; y, por SSH con una llave restringida que solo puede ejecutar el fragmento de inventario, los crons, contenedores, unidades y puertos de los cuatro servidores; más los servicios de los ficheros compose y la caducidad de los certificados. Compara con la pasada anterior y, si aparece o desaparece cualquier cosa con nombre, o algo caduca en menos de 30 días, manda un correo a infra@ con la lista y el recordatorio de actualizar esta página. La última foto está en public/supercontext/stack-servicios/inventario.json (y su resumen .md); la publica quien conduce la sesión en que se refresca el catálogo.

Verificado el 10-09-2026: primera pasada real en OPS con las siete fuentes en verde y el primer correo de cambios recibido en el buzón. Límites conocidos: el token de Cloudflare de OPS no lee Workers, Pages, Access ni el registrar (lo dice el propio inventario como skipped); el token de GitHub de OPS lista repos y fechas pero no workflows ni secretos (403); la foto de Hetzner viene del widget del workspace (get_servers_status), sin cortafuegos ni volúmenes. Con un token de solo lectura de Hetzner y ampliar los de Cloudflare y GitHub, esas tres fuentes quedan completas.

Convención para quien vea el correo: el cambio esperado se refleja aquí el mismo día; el inesperado se investiga antes de tocar nada.


Si esto cae, cae el negocio

Los servicios cuyo fallo derriba producción o bloquea el cumplimiento legal, con lo que se nota y en cuánto tiempo:

#ServicioQué deja de funcionar si caeSe nota enRecuperaciónDueño
1Hetzner Cloud (PROD)Todo el SaaS: Django, Postgres, Valkey, VictoriaMetrics, Dokploy.Minutos (UptimeRobot + servicios-check)Restore desde Object Storage en otro servidor (runbook DR, simulacro #1 hecho; #2 en octubre)Edu
2Hetzner Object StorageNo falla en caliente: sin copias offsite, el siguiente incidente es pérdida total.Nadie, hasta necesitarlo (cron-stale-check vigila la frescura)Ninguna: es el último recursoEdu
3CloudflareDNS de los tres dominios, CDN y WAF del SaaS, el workspace entero (Pages, Workers, D1, R2, Workers AI), CF Access.SegundosEspejo DR estático del workspace en STAGE (:8090); el SaaS sin DNS no tiene plan BEdu
4GitHubSin PRs ni CI ni despliegue automático (Dokploy despliega por webhook de GitHub). El código sigue en 3 PCs + Forgejo (espejo cada 8 h).Al siguiente pushForgejo como origen (F2 de la migración, no hecha)Edu
5Google AI Studio (Gemma 4)Auto-Plan, el asistente de Ayuda y los análisis de red con IA. El fallback a Claude Haiku cubre CNS/Tutor/Explain.Al siguiente usoCambiar el modelo primario es una variable de entorno (Regla 8)Edu
6HoldedFacturar y contabilidad de la SL.Al facturarNinguna a corto plazo (cumplimiento)Txell
7Dokploy (propio, en PROD y STAGE)Los despliegues. La app sigue corriendo.Al siguiente mergeDespliegue manual por SSH mientras se recuperaEdu
8NetBird (VPN)El acceso administrativo a los cuatro servidores y a la estación. Las apps públicas siguen vivas.Al conectarSalvavidas: consola de Hetzner + SSH público desde las 3 ubicaciones del staffEdu

El resto (Resend, Zoho, Anthropic, UptimeRobot, Stripe en pruebas…) son degradaciones, no caídas.


Mapa de dependencias

Quién entra por dónde, y qué máquina despliega a cuál. Las cajas rectas son nuestras (corren en servidores propios); las redondeadas, terceros.

flowchart TB
  subgraph P[Quién entra]
    direction LR
    U[Usuarios del SaaS]
    E[Equipo: Edu · Dani · Txell]
  end
  subgraph A[Por dónde]
    direction LR
    CF([Cloudflare<br/>DNS · CDN · WAF · Access])
    NB([NetBird<br/>VPN de administración])
  end
  subgraph H[Nuestras máquinas en Hetzner]
    PROD[PROD<br/>el SaaS: Django · Postgres · métricas · Dokploy]
    STAGE[STAGE<br/>pruebas · Dokploy que despliega PROD · espejo DR]
    OPS[OPS<br/>runners CI · Forgejo · crons · vigilancia]
    DCA[DCA<br/>channelassistance]
  end
  WS[Workspace<br/>Pages · Workers · D1 · R2 · Workers AI<br/>vive en Cloudflare]
  GH([GitHub<br/>código · PRs · CI])
  U --> CF --> PROD
  CF --> DCA
  E --> NB --> PROD & STAGE & OPS & DCA
  E --> CF --> WS
  GH -->|webhook| STAGE -->|despliega| PROD
  GH --> OPS -->|cron de despliegue| WS

Y qué tercero usa cada plataforma (la vigilancia no está en el dibujo: UptimeRobot mira PROD desde fuera; servicios-check en OPS mira PROD, STAGE, DCA y la estación desde dentro):

TerceroPROD (el SaaS)Workspaceclaude-method
Hetzner Object Storage (copias offsite)✓(DR desde STAGE)
Resend (correo)✓✓ avisos
Google AI Studio (Gemma 4)✓✓
Anthropic API (Haiku)✓ fallback✓ Bibliotecario
Anthropic Max × 3✓
GitHub✓ despliegue por webhook✓ ingest, repos✓
GHCR (imagen base)✓
Stripe (pruebas)✓
Zoho Mail✓ integración
Holded✓ MCP
API de Hetzner✓ widget Servidores
UptimeRobotvigila

Lo que el mapa enseña de un vistazo: Cloudflare y GitHub están en el camino de todo; Hetzner es la base y no un servicio a sustituir; y lo que ya es nuestro (Dokploy, VictoriaMetrics, Alertmanager, Forgejo, los crons, la vigilancia interna) vive en tres máquinas con papeles distintos.


Tabla resumen (vista global · 30 entradas)

Criticidad: 🔴 alta (producción o cumplimiento) · 🟡 media (degradación) · 🟢 baja · Alternativa open source: candidato (entra en la deliberación del tiempo 2) · en pruebas · no compensa (motivo en el detalle) · imposible · ya es nuestro.

#ServicioFunciónCuenta / planCoste/mesCrit.DueñoAlternativa open sourcePanel
1Hetzner CloudHosting de los 4 servidores: PROD CCX23 (4c/16 GB, precio antiguo), STAGE CX23, DCA CX23, OPS CX33Edu · factura a DOMO06/2026: 48,45 € sin OPS · a confirmar con la factura de 08/2026🔴Edues la base (no se sustituye)console
2Hetzner Object StorageCopias offsite (crearack-backups, nbg1)misma cuenta6,49 €🔴Eduno compensa (es justo lo que no debe estar en nuestras máquinas)console
3CloudflareDNS + CDN + WAF + Access + Pages + Workers + D1 + R2 + Workers AI (embeddings) + RegistrarEdu · 5 zonas (3 de CreaRack) · Workers Paid5 $/mes (~4,6 €)🔴Eduno compensa (edge, WAF, DDoS); el workspace podría rehacerse fuera pero es obra nuevadash
4GitHubRepos (6, privados), PRs, CI con runners propios, webhooks de despliegue, OAuthOrg CreaRackSL · Team, 3 seats~11 € ($12) + Actions hasta $20🔴Eduen pruebas: Forgejo en OPS como espejo (F1); como origen = tiempo 2billing
5NetBird CloudVPN de administración: 8 peers, 4 grupos, 6 políticas activas; API con usuario de servicio claude-methodFree · tenant de Edu0 €🔴Educandidato: se hospeda en propio (open source, bien documentado); es la puerta: salvavidas antesapp
6DokployDespliegue y gestión Docker en PROD y STAGE; el de STAGE despliega PRODpropio · v0.29.120 €🔴Eduya es nuestro:3000 por NetBird
7ForgejoServidor Git propio en OPS (15.0.6 LTS): espejo de los 6 repos cada 8 h + Actions en observaciónpropio0 €🟡Eduya es nuestro (F1); F2 = origencrearack-ops.netbird.cloud:3000
8ResendCorreo transaccional del SaaS y avisos del workspace (noreply@crearack.com)Edu · free0 €🟡Eduno compensa (reputación de IP, rebotes, DKIM)billing
9Zoho MailCorreo humano esfericlabs.com (3 buzones + 8 grupos) + integración con el workspace (fase A)Esferic Labs SLa confirmar🟡Eduno compensa (correo humano)zoho
10Anthropic APIBibliotecario (Haiku), Curator, drift, fallback CNS/Tutor/ExplainCreaRackSL pay-as-you-go~12 € (agosto; era ~24 € en mayo, bajó con Haiku)🟡Eduimposibleconsole
11-13Anthropic Max × 3Claude Code de Edu, Dani y Txell (sesiones, subagentes, el harness entero)3 cuentas personalesa confirmar × 3🟡cada unoimposibleclaude.ai
14Google AI StudioGemma 4 (gemma-4-26b-a4b-it): Auto-Plan, Ayuda, CNS, traducción de la wikiEdu · GCP gen-lang-client-0138660917 · Paida confirmar🔴Eduno compensa hoy (self-host del 12B ajustado = decisión aparcada, task #83)billing
15Hetzner Inference APIBanco de pruebas de modelos, gratis (EU); nunca producciónEdu0 €🟢Edu—console
16StripeCobro automático (task #136): webhook en PROD en modo fail-closed, MCP con clave restringida de pruebasEsferic Labs (activación pendiente) · modo test0 € hasta el go-live🟡Edu, Txellno aplica (pagos)dashboard
17HoldedContabilidad, facturación, leads (MCP holded_*)Esferic Labs SLa confirmar🔴Txellno compensa (cumplimiento)app
18UptimeRobotVigilancia externa de crearack.com cada 5 min → infra@edudomo@gmail.com · free0 €🟡Educandidato: Uptime Kuma en OPS (tiempo 3, pieza 1)account
19GHCR (GitHub Container Registry)Imagen base privada crearack-base (despliegues de 15 min a 1)dentro de GitHub0 €🟡EduForgejo tiene registro propio (va con F2)—
20Let’s EncryptCertificados: Traefik (Dokploy) en PROD/STAGE, certbot en DCA, Cloudflare en el resto—0 €🟡Eduya es open source; sin acción—
21VictoriaMetrics + vmalert + AlertmanagerMétricas (180 d) y alertas de producción; proxies socat a NetBirdpropio en PROD (y STAGE)0 €🟡Eduya es nuestro:8428 / :9093 por NetBird
22PostgreSQL 18 + pgbouncer + ValkeyBase de datos y caché del SaaSpropio (Dokploy)0 €🔴Eduya es nuestro—
23servicios-check + cron-heartbeat + stack-inventarioVigilancia interna solo-NetBird (12 servicios), latido de los crons e inventario semanal, con aviso a infra@propio en OPS0 €🟡Eduya es nuestrologs en /opt/* de OPS
24Bibliotecario-Ingest en la estaciónEl ingest post-merge corre en pc-ia-claude con la cuota Max (los workflows de Actions quedan disabled de reserva)propio0 €🟡Eduya es nuestro—
25Google OAuth + GitHub OAuth (allauth)Login social de los usuarios del SaaSGCP compartido / OAuth App0 €🟡Eduno aplica—
26Claude GitHub AppPermisos de repos para sesiones cloud y routines de ClaudeCreaRackSL0 €🟢Eduno aplicaintegrations
27Claude Code (Anthropic)El harness del método: plugins, hooks, MCP, function hooks (early access)dentro de Max0 €🟡Eduimposible—
28Zoho ↔ Workspace (integración)Lectura del correo desde el workspace (/correo), Service Account + OAuth refresh token en D1Zoho0 €🟢Edu——
29RunPodGPU por horas para pruebas; ~28 € de crédito; se apaga al acabarEdu personal0 € salvo uso🟢Edu—runpod
30SpinetiX HMPReproductores del cliente (CCIB): integración HTTP por dispositivo, no SaaS contratadodel clienten/a🟢Eduno aplica—

Zonas de Cloudflare que no son de CreaRack pero viven en la misma cuenta: playmoode.org (proyecto personal de Edu, Play.Moode) y stack-gear.com (idea Stack Gear, sin DNS). El inventario las lista; no cuentan como servicio del proyecto.


Coste mensual (lo confirmado y lo que falta)

Concepto€/mesEstado
Hetzner Cloud (4 servidores + copias 20 % + IPs + snapshots)48,45 € en 06/2026 sin OPSpendiente: factura 08/2026 (OPS entró en 07/2026)
Hetzner Object Storage6,49 €confirmado (06/2026)
Cloudflare Workers Paid5 $ (~4,6 €)confirmado (desde 07-07-2026)
GitHub Team (3 seats) + Actions~11 € + hasta $20confirmado por API (24-07-2026); Actions ≈ 0 con runners propios
Anthropic API~12 €memoria reference_gasto_api_anthropic_bibliotecario (agosto) · confirmar con la factura
Anthropic Max × 3a confirmar × 3pendiente (Edu, Dani, Txell)
Google AI Studioa confirmarpendiente (Edu, panel de billing)
Zoho Mail · Holdeda confirmarpendiente (Txell)
NetBird, Dokploy, Forgejo, Resend, UptimeRobot, Stripe (test), Let’s Encrypt, todo lo propio0 €—
Total conocido~83 € + las suscripciones Max + IA de Googlerango probable 150-200 €/mes

Lo que falta son cinco paneles sin API (los tres Max, Google, Zoho/Holded): media hora de Edu y Txell. Es la única parte del catálogo que no puede refrescar el inventario automático.

Aviso de precio que sigue vigente: el CCX23 de PROD conserva el precio anterior a la subida de Hetzner del 15-06-2026 (31,49 € frente a 85,99 € nuevo). Reescalarlo pierde ese precio para siempre.


Para Txell · qué facturamos

📌 Entidad fiscal: DOMO INFORMATICA APLICADA SL (VAT ESB64341217, Terrassa, att. Txell) es la empresa fiscal que contiene a Esferic Labs; las facturas de proveedores a nombre de DOMO son correctas.

Pagado por Esferic Labs SL: Holded · Zoho Mail · Stripe (cuando se active la empresa).

Pagado por Edu (cuenta personal; reembolso pendiente de sistematizar): Hetzner Cloud + Object Storage · Cloudflare Workers Paid · GitHub Team · Anthropic API · Anthropic Max (Edu) · Google AI Studio · Resend (0 €) · UptimeRobot (0 €) · RunPod (crédito, personal).

Pagado por Dani y Txell: su Anthropic Max.

Sin coste: NetBird Cloud Free · Dokploy · Forgejo · VictoriaMetrics/Alertmanager · Hetzner Inference API · Let’s Encrypt · OAuth · Claude GitHub App.


Caducidades y credenciales

Lo que caduca, dónde vive cada credencial y quién la rota. El inventario avisa de lo que tiene fecha (certificados, dominios, llaves y tokens de NetBird); el resto hay que mirarlo.

QuéCaducaLo vigilaDónde vive
Certificados TLS de los 4 dominiosrotan solos (Let’s Encrypt / Cloudflare); hoy entre 52 y 64 días de margeninventario (tls)Traefik, certbot, Cloudflare
Dominios (CF Registrar): crearack.com, esfericlabs.com, channelassistance.com (+ playmoode.org, stack-gear.com)renovación automática; stack-gear.com el 15-07-2027inventario cuando el token de CF lea el registrarCloudflare
Token de API de NetBird claude-method/pc-edu10-09-2027inventario (netbird.tokens)var de usuario NETBIRD_API_TOKEN (PC de Edu) + /opt/stack-inventario/.env (OPS)
Setup keys de NetBirdlas de un uso ya gastadas no importan; Grupo Crearack y crearack-ops (reutilizables) caducadas en junio y julio: crear una nueva al dar de alta un servidorinventarioconsola NetBird
CF Access service token (CF_ACCESS_CLIENT_ID/SECRET)rotado el 14-07-2026 (P1b); los tokens de servicio de Access caducan por defecto al año → revisar antes del 14-07-2027nadie (anotar)GH secrets ×2, OPS /opt/*/.cf-access-*, Dokploy, env de los 3
METHOD_DOCTOR_TOKEN, BIB_MCP_TOKEN (token único por persona)sin fecha; rotación por workflow Rotate-MCP-Tokens—env de usuario de los 3 + OPS
PATs de GitHub (ATLAS_CHECK_PAT, WORKSPACE_REPO_TOKEN, routine-maintenance-weekly, el de Forgejo en OPS)sin fecha registrada (deuda: registro de caducidades de tokens, NEXT § Infra)nadieGH secrets, OPS /opt/forgejo-*/.gh_token
RESEND_API_KEY, ANTHROPIC_API_KEY, GEMINI_API_KEY/GOOGLE_AI_API_KEY, HOLDED_API_KEY, HETZNER_API_TOKENsin fecha—Dokploy (PROD/STAGE), GH secrets, CF Pages env
Clave de Stripe (rk_test)cambiar a rk_live al activar la empresa—MCP de los 3 perfiles
Llave SSH restringida stack-inventario@crearack-opssin fecha; solo ejecuta /usr/local/bin/stack-inventario-snippet.sh—/root/.ssh/ de OPS; authorized_keys de PROD/STAGE/DCA
Gestor de credenciales compartidodecisión pendiente (task #33, Bitwarden Teams)—hoy: memorias + env + Dokploy

Detalle por servicio

Hetzner Cloud

Hetzner Object Storage

Cloudflare

GitHub (Org CreaRackSL)

NetBird Cloud (VPN)

Dokploy

Forgejo

Resend

Zoho Mail

Anthropic API

Anthropic Max × 3 y Claude Code

Google AI Studio (Gemma 4)

Stripe

Holded

UptimeRobot

Lo propio que corre en nuestras máquinas

Registries y commodities (sin cuenta que gestionar)

Retirados (para que nadie los resucite)


Lo que no se cubre

Registries públicos sin contrato (PyPI, npm, Docker Hub), consultas puntuales sin cuenta persistente, y el hardware del cliente (SpinetiX) más allá de su fila en la tabla.


Historial de esta página

Véase también

Subir