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
- ¿Qué pasa si X cae? → “Si esto cae, cae el negocio”.
- ¿Quién depende de quién? → “Mapa de dependencias”.
- Vista global → “Tabla resumen”: función, cuenta, coste, criticidad, dueño y alternativa open source de cada servicio, con enlace al panel de facturación.
- ¿Qué pagamos y de quién es la factura? → “Coste mensual” y “Para Txell”.
- ¿Qué caduca y dónde viven las credenciales? → “Caducidades y credenciales”.
- Detalle de un servicio → su sección en “Detalle por servicio”.
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:
| # | Servicio | Qué deja de funcionar si cae | Se nota en | Recuperación | Dueño |
|---|---|---|---|---|---|
| 1 | Hetzner 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 |
| 2 | Hetzner Object Storage | No 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 recurso | Edu |
| 3 | Cloudflare | DNS de los tres dominios, CDN y WAF del SaaS, el workspace entero (Pages, Workers, D1, R2, Workers AI), CF Access. | Segundos | Espejo DR estático del workspace en STAGE (:8090); el SaaS sin DNS no tiene plan B | Edu |
| 4 | GitHub | Sin 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 push | Forgejo como origen (F2 de la migración, no hecha) | Edu |
| 5 | Google 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 uso | Cambiar el modelo primario es una variable de entorno (Regla 8) | Edu |
| 6 | Holded | Facturar y contabilidad de la SL. | Al facturar | Ninguna a corto plazo (cumplimiento) | Txell |
| 7 | Dokploy (propio, en PROD y STAGE) | Los despliegues. La app sigue corriendo. | Al siguiente merge | Despliegue manual por SSH mientras se recupera | Edu |
| 8 | NetBird (VPN) | El acceso administrativo a los cuatro servidores y a la estación. Las apps públicas siguen vivas. | Al conectar | Salvavidas: consola de Hetzner + SSH público desde las 3 ubicaciones del staff | Edu |
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):
| Tercero | PROD (el SaaS) | Workspace | claude-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 | ||
| UptimeRobot | vigila |
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.
| # | Servicio | Función | Cuenta / plan | Coste/mes | Crit. | Dueño | Alternativa open source | Panel |
|---|---|---|---|---|---|---|---|---|
| 1 | Hetzner Cloud | Hosting de los 4 servidores: PROD CCX23 (4c/16 GB, precio antiguo), STAGE CX23, DCA CX23, OPS CX33 | Edu · factura a DOMO | 06/2026: 48,45 € sin OPS · a confirmar con la factura de 08/2026 | 🔴 | Edu | es la base (no se sustituye) | console |
| 2 | Hetzner Object Storage | Copias offsite (crearack-backups, nbg1) | misma cuenta | 6,49 € | 🔴 | Edu | no compensa (es justo lo que no debe estar en nuestras máquinas) | console |
| 3 | Cloudflare | DNS + CDN + WAF + Access + Pages + Workers + D1 + R2 + Workers AI (embeddings) + Registrar | Edu · 5 zonas (3 de CreaRack) · Workers Paid | 5 $/mes (~4,6 €) | 🔴 | Edu | no compensa (edge, WAF, DDoS); el workspace podría rehacerse fuera pero es obra nueva | dash |
| 4 | GitHub | Repos (6, privados), PRs, CI con runners propios, webhooks de despliegue, OAuth | Org CreaRackSL · Team, 3 seats | ~11 € ($12) + Actions hasta $20 | 🔴 | Edu | en pruebas: Forgejo en OPS como espejo (F1); como origen = tiempo 2 | billing |
| 5 | NetBird Cloud | VPN de administración: 8 peers, 4 grupos, 6 políticas activas; API con usuario de servicio claude-method | Free · tenant de Edu | 0 € | 🔴 | Edu | candidato: se hospeda en propio (open source, bien documentado); es la puerta: salvavidas antes | app |
| 6 | Dokploy | Despliegue y gestión Docker en PROD y STAGE; el de STAGE despliega PROD | propio · v0.29.12 | 0 € | 🔴 | Edu | ya es nuestro | :3000 por NetBird |
| 7 | Forgejo | Servidor Git propio en OPS (15.0.6 LTS): espejo de los 6 repos cada 8 h + Actions en observación | propio | 0 € | 🟡 | Edu | ya es nuestro (F1); F2 = origen | crearack-ops.netbird.cloud:3000 |
| 8 | Resend | Correo transaccional del SaaS y avisos del workspace (noreply@crearack.com) | Edu · free | 0 € | 🟡 | Edu | no compensa (reputación de IP, rebotes, DKIM) | billing |
| 9 | Zoho Mail | Correo humano esfericlabs.com (3 buzones + 8 grupos) + integración con el workspace (fase A) | Esferic Labs SL | a confirmar | 🟡 | Edu | no compensa (correo humano) | zoho |
| 10 | Anthropic API | Bibliotecario (Haiku), Curator, drift, fallback CNS/Tutor/Explain | CreaRackSL pay-as-you-go | ~12 € (agosto; era ~24 € en mayo, bajó con Haiku) | 🟡 | Edu | imposible | console |
| 11-13 | Anthropic Max × 3 | Claude Code de Edu, Dani y Txell (sesiones, subagentes, el harness entero) | 3 cuentas personales | a confirmar × 3 | 🟡 | cada uno | imposible | claude.ai |
| 14 | Google AI Studio | Gemma 4 (gemma-4-26b-a4b-it): Auto-Plan, Ayuda, CNS, traducción de la wiki | Edu · GCP gen-lang-client-0138660917 · Paid | a confirmar | 🔴 | Edu | no compensa hoy (self-host del 12B ajustado = decisión aparcada, task #83) | billing |
| 15 | Hetzner Inference API | Banco de pruebas de modelos, gratis (EU); nunca producción | Edu | 0 € | 🟢 | Edu | — | console |
| 16 | Stripe | Cobro automático (task #136): webhook en PROD en modo fail-closed, MCP con clave restringida de pruebas | Esferic Labs (activación pendiente) · modo test | 0 € hasta el go-live | 🟡 | Edu, Txell | no aplica (pagos) | dashboard |
| 17 | Holded | Contabilidad, facturación, leads (MCP holded_*) | Esferic Labs SL | a confirmar | 🔴 | Txell | no compensa (cumplimiento) | app |
| 18 | UptimeRobot | Vigilancia externa de crearack.com cada 5 min → infra@ | edudomo@gmail.com · free | 0 € | 🟡 | Edu | candidato: Uptime Kuma en OPS (tiempo 3, pieza 1) | account |
| 19 | GHCR (GitHub Container Registry) | Imagen base privada crearack-base (despliegues de 15 min a 1) | dentro de GitHub | 0 € | 🟡 | Edu | Forgejo tiene registro propio (va con F2) | — |
| 20 | Let’s Encrypt | Certificados: Traefik (Dokploy) en PROD/STAGE, certbot en DCA, Cloudflare en el resto | — | 0 € | 🟡 | Edu | ya es open source; sin acción | — |
| 21 | VictoriaMetrics + vmalert + Alertmanager | Métricas (180 d) y alertas de producción; proxies socat a NetBird | propio en PROD (y STAGE) | 0 € | 🟡 | Edu | ya es nuestro | :8428 / :9093 por NetBird |
| 22 | PostgreSQL 18 + pgbouncer + Valkey | Base de datos y caché del SaaS | propio (Dokploy) | 0 € | 🔴 | Edu | ya es nuestro | — |
| 23 | servicios-check + cron-heartbeat + stack-inventario | Vigilancia interna solo-NetBird (12 servicios), latido de los crons e inventario semanal, con aviso a infra@ | propio en OPS | 0 € | 🟡 | Edu | ya es nuestro | logs en /opt/* de OPS |
| 24 | Bibliotecario-Ingest en la estación | El ingest post-merge corre en pc-ia-claude con la cuota Max (los workflows de Actions quedan disabled de reserva) | propio | 0 € | 🟡 | Edu | ya es nuestro | — |
| 25 | Google OAuth + GitHub OAuth (allauth) | Login social de los usuarios del SaaS | GCP compartido / OAuth App | 0 € | 🟡 | Edu | no aplica | — |
| 26 | Claude GitHub App | Permisos de repos para sesiones cloud y routines de Claude | CreaRackSL | 0 € | 🟢 | Edu | no aplica | integrations |
| 27 | Claude Code (Anthropic) | El harness del método: plugins, hooks, MCP, function hooks (early access) | dentro de Max | 0 € | 🟡 | Edu | imposible | — |
| 28 | Zoho ↔ Workspace (integración) | Lectura del correo desde el workspace (/correo), Service Account + OAuth refresh token en D1 | Zoho | 0 € | 🟢 | Edu | — | — |
| 29 | RunPod | GPU por horas para pruebas; ~28 € de crédito; se apaga al acabar | Edu personal | 0 € salvo uso | 🟢 | Edu | — | runpod |
| 30 | SpinetiX HMP | Reproductores del cliente (CCIB): integración HTTP por dispositivo, no SaaS contratado | del cliente | n/a | 🟢 | Edu | no 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 | €/mes | Estado |
|---|---|---|
| Hetzner Cloud (4 servidores + copias 20 % + IPs + snapshots) | 48,45 € en 06/2026 sin OPS | pendiente: factura 08/2026 (OPS entró en 07/2026) |
| Hetzner Object Storage | 6,49 € | confirmado (06/2026) |
| Cloudflare Workers Paid | 5 $ (~4,6 €) | confirmado (desde 07-07-2026) |
| GitHub Team (3 seats) + Actions | ~11 € + hasta $20 | confirmado 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 × 3 | a confirmar × 3 | pendiente (Edu, Dani, Txell) |
| Google AI Studio | a confirmar | pendiente (Edu, panel de billing) |
| Zoho Mail · Holded | a confirmar | pendiente (Txell) |
| NetBird, Dokploy, Forgejo, Resend, UptimeRobot, Stripe (test), Let’s Encrypt, todo lo propio | 0 € | — |
| Total conocido | ~83 € + las suscripciones Max + IA de Google | rango 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é | Caduca | Lo vigila | Dónde vive |
|---|---|---|---|
| Certificados TLS de los 4 dominios | rotan solos (Let’s Encrypt / Cloudflare); hoy entre 52 y 64 días de margen | inventario (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-2027 | inventario cuando el token de CF lea el registrar | Cloudflare |
Token de API de NetBird claude-method/pc-edu | 10-09-2027 | inventario (netbird.tokens) | var de usuario NETBIRD_API_TOKEN (PC de Edu) + /opt/stack-inventario/.env (OPS) |
| Setup keys de NetBird | las 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 servidor | inventario | consola 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-2027 | nadie (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) | nadie | GH secrets, OPS /opt/forgejo-*/.gh_token |
RESEND_API_KEY, ANTHROPIC_API_KEY, GEMINI_API_KEY/GOOGLE_AI_API_KEY, HOLDED_API_KEY, HETZNER_API_TOKEN | sin 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-ops | sin fecha; solo ejecuta /usr/local/bin/stack-inventario-snippet.sh | — | /root/.ssh/ de OPS; authorized_keys de PROD/STAGE/DCA |
| Gestor de credenciales compartido | decisión pendiente (task #33, Bitwarden Teams) | — | hoy: memorias + env + Dokploy |
Detalle por servicio
Hetzner Cloud
- Proyecto “CreaRack-Pro.01”, datacenter eu-central. Factura a DOMO. Verificado en vivo el 10-09-2026 por el inventario:
- PROD
crearack-prod·116.203.31.166· CCX23 dedicado 4c/16 GB (precio antiguo, no reescalar) · NetBird100.96.156.31· encendido desde el 03-04-2026 · Django web + worker (Huey), Postgres 18, pgbouncer, Valkey, VictoriaMetrics, vmalert, Alertmanager, Dokploy (Traefik 3.6.7). Crontab: copias de Postgres (pg_backup,pg_basebackup,wal_sync) + relanzado de proxies NetBird al arrancar. - STAGE
crearack-staging·178.104.131.173· CX23 · NetBird100.96.254.204· app de pruebas, el panel de Dokploy que también despliega PROD, espejo DR del workspace (nginx:8090), copias DR y sincronización a Google Drive, proxies socat. - OPS
crearack-ops·178.104.244.255· CX33 4c/8 GB · NetBird100.96.245.233· 2 runners del CI, Forgejo 15.0.6 LTS, y 11 crons:bib-reindex,bib-reindex-ws,biblioteca-crons,cf-pages-deploy,cron-heartbeat,docker-prune,forgejo-backup,forgejo-espejo-check,gh-actions-watchdog,servicios-check,stack-inventario. Máquina recreable, sin datos. - DCA (hostname
ubuntu-4gb-hel1-1) ·62.238.33.149· CX23 · NetBird100.96.6.166· channelassistance.com con nginx + certbot, sin Docker. Único ojo:servicios-check. - pve-epyc-02: dado de baja el 08-05-2026; su destino como DR (~30 €/mes) es decisión pendiente y entra en el tiempo 2.
- PROD
- Cortafuegos: Hetzner Firewall (
:22solo desde las 3 ubicaciones del staff +:80/:443solo Cloudflare) +DOCKER-USERde iptables para:3000(NetBird + 3 ubicaciones + casa + webhooks de GitHub, igual en PROD y STAGE desde el 10-09-2026, vivo y en/root/restore-firewall.sh). - Alternativa open source: no aplica, es la base. Lo que sí entra en el tiempo 2 es cuántas máquinas y con qué papeles.
- Credenciales: llaves SSH de los 3 perfiles (solo por NetBird) ·
HETZNER_API_TOKENen el workspace (widget Servidores) · pendiente un token de solo lectura para el inventario. - Wiki: [[concept—ops—prod-server]], [[concept—ops—staging-server]], [[concept—infra—hetzner-firewalls]], [[concept—infra—ops-server]].
Hetzner Object Storage
- Bucket
crearack-backups(nbg1). Copias diarias de Postgres (base + WAL) y media desde PROD porrclone; copias DR del workspace desde STAGE. 6,49 €/mes. Sin esto no hay recuperación. Simulacro de restore #1 hecho; #2 en octubre (con WAL/PITR y valorar offsite en Drive). Alternativa: no compensa; si acaso, un segundo destino (Storage Box, Drive), no menos.
Cloudflare
- Cuenta de Edu, 5 zonas en plan Free (3 de CreaRack:
crearack.com,esfericlabs.com,channelassistance.com; 2 ajenas). Registrar de los dominios. - Productos en uso: DNS · CDN + WAF + Bot Management · Access (zero trust: el workspace,
/api/mcpcon Service Auth) · Pages (workspace.crearack.com, desplegado por cron desde OPS, no por la integración Git) · Workers + D1 + R2 (el workspace: MCP, API, wiki, Gestor) · Workers AI (@cf/baai/bge-m3, los embeddings de la Biblioteca) · Worker de redirecciónwww→ apex. - Coste: Workers Paid 5 $/mes (límite de CPU de 30 s; el free tier daba 503/1102). Es cuenta de pago: un 1102 se investiga, no se achaca al límite free.
- Criticidad 🔴: DNS de todo, y el workspace entero.
- Alternativa open source: no compensa. DNS/CDN/WAF/DDoS a esta escala no se replica. El workspace (Astro + Workers + D1) podría vivir en un servidor propio, pero es reescribir la capa de funciones y la base de datos: obra nueva, no migración. Se anota para el tiempo 2 como “no, con motivo”.
- Credenciales:
CLOUDFLARE_API_TOKEN+CLOUDFLARE_ACCOUNT_ID(GH secrets del workspace) ·CF_ACCESS_CLIENT_ID/SECRET(service token) ·CF_CLAUDE_TOKEN(permanente, lectura; no cubre Access, Workers, Pages ni registrar) · MFA de la cuenta: pendiente (decisión). - Memoria:
reference_cf_zones_edu,reference_cf_apex_proxied,reference_workspace_workers_free_cpu_quota,reference_cf_claude_token_gaps.
GitHub (Org CreaRackSL)
- Plan Team, 3 seats (~$12/mes). 6 repos privados:
CreaRack-Pro,CreaRackSL-workspace,claude-method,claude-backups,crearack-landing,workspace-template. - CI: runners propios
crearack-ops-1/2en OPS (≈ 0 minutos de Actions). Workflows activos en Pro: CI, Build Base Image, Security Scan, Agent pip-audit, Deps Freshness, Audit Docs Drift; en el workspace: CI, atlas-check, los Bibliotecario-* (Catalog, Curator, Drift-Check, Lint ×2, Utility, Weekly-Report, Reindex ×2), D1 Cleanup, Rotate-MCP-Tokens, recordatorio mensual del Plan H2. Desactivados a propósito (de reserva): Bibliotecario-Ingest ×2 (corre en la estación), CF Pages Deploy (corre por cron en OPS), Drift on push, Escriba drift, Sync Cascade Detect. - Despliegue: merge a
mainde Pro = webhook a Dokploy = PROD (sin gate intermedio).mainprotegida con checks. - Alternativa open source: Forgejo, en pruebas (F1: espejo cada 8 h en OPS + Actions en observación). Pasar a origen (F2) toca el ciclo entero (PRs, protección de rama, estibador/vigía, webhooks de Dokploy, GHCR): es la decisión gorda del tiempo 2.
- Credenciales: PATs (
ATLAS_CHECK_PAT,WORKSPACE_REPO_TOKEN,routine-maintenance-weekly, el del espejo en OPS) ·GHCR_PULL_TOKEN(imagen base) · Claude GitHub App. Presupuesto:reference_github_actions_budget.
NetBird Cloud (VPN)
- Tenant de Edu (owner) + Dani y Txell (admin) + usuario de servicio
claude-method(admin; tokenpc-eduhasta el 10-09-2027, varNETBIRD_API_TOKEN). 8 peers: 4 servidores (servers), portátil y móvil de Edu y la estación compartida (users), y el Raspberry de Play.Moode (Moode, ajeno al producto). - Políticas (fase 1 de la política fina, 10-09-2026):
users -> serversTCP 22/80/443/3000/5432/8000/8090/8428/9093 + ping,users <-> userstodo,servers <-> serverstodo (fase 2 en medición hasta el 17-09),servers -> usersTCP 22,users -> MoodeTCP 22/80/443;Defaulty la ancha desactivadas (marcha atrás). Guía:claude-method/guides/NETBIRD_SETUP.md. - Criticidad 🔴 desde s222: el SSH y los paneles solo entran por aquí. Salvavidas: consola de Hetzner + SSH público desde las 3 ubicaciones.
- Alternativa open source: candidato claro para el tiempo 2. NetBird es open source y se hospeda en propio (management + signal + relay). Riesgo: es la puerta; si el servidor propio cae, nadie entra a arreglarlo → doble carril y salvavidas verificado antes. Footguns:
reference_vpn_netbird(GlobalProtect rompe el DNSnetbird.cloud).
Dokploy
- Propio, v0.29.12, en PROD y STAGE (Swarm; nunca
docker swarm leave). El panel de STAGE gestiona también los despliegues de PROD. Acceso:3000por NetBird o desde las 3 ubicaciones; valida elOrigin(login por la IP de NetBird puede fallar,footguns_dokploy_trusted_origins). Login local + 2FA. Ya es nuestro.
Forgejo
- 15.0.6 LTS (soporte hasta el 15-07-2027) en OPS, puerto 3000 por NetBird, puentes SSH/web. Espejo de los 6 repos cada 8 h +
forgejo-backupdiario (volcados a STAGE y a Drive). Estado F1 = observación; F2 = origen, a decidir en el tiempo 2. Memoriaproject_forgejo_migracion, apuesta #8.
Resend
- Correo transaccional del SaaS (
django-anymail) y avisos del workspace (send_maintenance_email, es el camino deservicios-check,cron-heartbeatystack-inventario). Dominiocrearack.comverificado, free (3.000/mes). Alternativa: no compensa (la reputación de una IP de correo tarda meses en ganarse y se pierde en un día; los rebotes y DKIM/DMARC son trabajo continuo).
Zoho Mail
esfericlabs.com:eesquembri@,dfuentes@,tfuentes@+ 8 grupos (admin@los tres,infra@recibe todos los avisos automáticos,logcrearack@los informes DMARC) + clasificador a/Notificationen los 3 buzones (reference_zoho_email_groups_scheme). Integración con el workspace fase A en PROD (/correo). Plan y coste: a confirmar (Txell). Alternativa: no compensa. Decisión pendiente: grupodev@(borrar si sigue sin uso).
Anthropic API
- Clave
crearack-ingest. Bibliotecario a Haiku desde s88 (~12 €/mes en agosto,reference_gasto_api_anthropic_bibliotecario), Curator, drift, y el fallback deliberadoai_fallback(Haiku 4.5) de CNS/Tutor/Explain en el SaaS. Nunca Opus por API. Alternativa: imposible.
Anthropic Max × 3 y Claude Code
- Las tres cuentas personales sostienen todo el método: sesiones, subagentes (Regla 10:
opus/sonnet/haikupor debajo del que conduce), routines cloud, y el Ingest post-merge desde la estación (apuesta #13). Coste a confirmar por cada uno.context/CLAUDE_SERVICES.mddel repo Pro.
Google AI Studio (Gemma 4)
- Modelo primario único
gemma-4-26b-a4b-it(Regla 8; el model string enconfig/settings/base.py). Auto-Plan, Ayuda, CNS,bib_askdel workspace y traducción de la wiki. Cuenta de Edu, GCPgen-lang-client-0138660917, Paid Tier, coste a confirmar. Alternativa: self-host del 12B ajustado = I+D aparcado (task #83); Hetzner Inference API como banco de pruebas gratis (reference_hetzner_inference_api).
Stripe
- Pasarela pura (decisión 14-08-2026; MoR descartado; facturas por Holded). PR-2 webhook en PROD respondiendo 503 = correcto (fail-closed sin claves);
billing_stripeeventa 0 filas hasta el go-live; MCP con clave restringida de pruebas en los 3 perfiles (reference_stripe_mcp_clave_restringida_sin_oauth). KYC pendiente de Edu. Task #136, en pausa hasta las llamadas MSP de septiembre.
Holded
- Contabilidad y facturación de la SL; MCP
holded_*desde el workspace (HOLDED_API_KEY). Dueña funcional Txell. Coste a confirmar. Alternativa: no compensa (cumplimiento).
UptimeRobot
- Un check externo cada 5 min sobre
crearack.com, avisa ainfra@. Cuentaedudomo@gmail.com(no confundir conedudomo2@). Alternativa: candidato Uptime Kuma en OPS (tiempo 3, pieza 1, doble carril un mes). Ojo: lo interno solo-NetBird ya lo vigilaservicios-check; UptimeRobot es el ojo externo, y un vigilante propio dentro de Hetzner no ve una caída de Hetzner: si se migra, que el externo siga siendo externo.
Lo propio que corre en nuestras máquinas
- VictoriaMetrics + vmalert + Alertmanager (PROD, y STAGE): métricas 180 d y alertas de producción (Hito A del hardening); expuestos a NetBird por socat (
netbird-proxiesal arrancar). - PostgreSQL 18 + pgbouncer + Valkey: la base de datos y la caché del SaaS. RLS activo en PROD y STAGE (
crearack_appNOSUPERUSER). - servicios-check (cada 5 min, 12 servicios internos, aviso en transiciones, publica al widget Servidores), cron-heartbeat (dead man’s switch de 14 crons), stack-inventario (semanal), gh-actions-watchdog, forgejo-espejo-check, cf-pages-deploy (despliegue del workspace por cron), bib-reindex ×2 (índices de la Biblioteca). Inventario completo:
public/supercontext/AUTOMATISMOS.md. - Bibliotecario-Ingest en la estación compartida
pc-ia-claude(ronda de los domingos + ingest post-merge con cuota Max).
Registries y commodities (sin cuenta que gestionar)
- GHCR: imagen base privada
crearack-base(reference_deploys_base_image);GHCR_PULL_TOKENen Dokploy. Let’s Encrypt: Traefik (PROD/STAGE) y certbot (DCA); Cloudflare para el resto. PyPI, npm, Docker Hub, Codeberg (imagen de Forgejo): públicos, sin contrato.
Retirados (para que nadie los resucite)
- Tailscale → sustituido por NetBird (julio 2026). Cualquier “tailnet”/MagicDNS en docs es rancio (queda una regla de iptables en PROD con el comentario “tailnet access dokploy panel”: es la de NetBird, mismo rango
100.64.0.0/10). - DeepSeek y groupdocs-conversion-cloud → retirados del código y claves revocadas el 16-05-2026 (PRs #36 y #37).
- OpenRouter / Gemini como primario → fuera desde la Regla 8 (Gemma 4 único primario). En el PC de Edu quedan variables de entorno
OPENROUTER_API_KEYyZAI_API_KEYsin uso conocido en el proyecto: revisar y borrar (decisión de Edu). - Bibliotecario-Ingest / CF Pages Deploy en GitHub Actions →
disabled, corren en la estación y en OPS. Se conservan como marcha atrás (gh workflow enable). - pve-epyc-02 como servidor de IA → baja el 08-05-2026.
- PythonAnywhere (channelassistance) → migrado al servidor DCA en junio 2026.
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
- 16-05-2026 (s66): nace como fase A del plan de servicios; 22 servicios; DeepSeek y groupdocs retirados.
- 24-07-2026: costes de Hetzner con factura real, entidad fiscal aclarada, pasada anti-rancio (Tailscale → NetBird, GitHub = Org Team, runners en OPS).
- 10-09-2026 (s320): refresco completo como tiempo 1 del plan del stack de servicios (task #298): inventario automático semanal en OPS con aviso a
infra@(probado con un cambio real), mapa de dependencias, 30 entradas (entran NetBird con API, Forgejo, Stripe, GHCR, Hetzner Inference API, RunPod, lo propio de OPS), columna de alternativa open source, sección de caducidades y credenciales. Pendiente de Edu y Txell: los cinco paneles de facturación sin API.
Véase también
- [[decision—20260516—auditoria-simplificacion-servicios-auxiliares]]
- [[concept—infra—hetzner-firewalls]]
- [[concept—infra—ops-server]]
- [[ia-tech—automatismos—metodo—github-actions-presupuesto]]
- [[ia-tech—automatismos—metodo—bibliotecario-procesos]]
- [[workspace—guias—team-processes]]