CreaRack-SL

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:

#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

  • 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) · NetBird 100.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 · NetBird 100.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 · NetBird 100.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 · NetBird 100.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.
  • Cortafuegos: Hetzner Firewall (:22 solo desde las 3 ubicaciones del staff + :80/:443 solo Cloudflare) + DOCKER-USER de 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_TOKEN en 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 por rclone; 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/mcp con 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ón www → 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/2 en 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 main de Pro = webhook a Dokploy = PROD (sin gate intermedio). main protegida 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; token pc-edu hasta el 10-09-2027, var NETBIRD_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 -> servers TCP 22/80/443/3000/5432/8000/8090/8428/9093 + ping, users <-> users todo, servers <-> servers todo (fase 2 en medición hasta el 17-09), servers -> users TCP 22, users -> Moode TCP 22/80/443; Default y 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 DNS netbird.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 :3000 por NetBird o desde las 3 ubicaciones; valida el Origin (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-backup diario (volcados a STAGE y a Drive). Estado F1 = observación; F2 = origen, a decidir en el tiempo 2. Memoria project_forgejo_migracion, apuesta #8.

Resend

  • Correo transaccional del SaaS (django-anymail) y avisos del workspace (send_maintenance_email, es el camino de servicios-check, cron-heartbeat y stack-inventario). Dominio crearack.com verificado, 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 /Notification en 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: grupo dev@ (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 deliberado ai_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/haiku por 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.md del repo Pro.

Google AI Studio (Gemma 4)

  • Modelo primario único gemma-4-26b-a4b-it (Regla 8; el model string en config/settings/base.py). Auto-Plan, Ayuda, CNS, bib_ask del workspace y traducción de la wiki. Cuenta de Edu, GCP gen-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_stripeevent a 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 a infra@. Cuenta edudomo@gmail.com (no confundir con edudomo2@). Alternativa: candidato Uptime Kuma en OPS (tiempo 3, pieza 1, doble carril un mes). Ojo: lo interno solo-NetBird ya lo vigila servicios-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-proxies al arrancar).
  • PostgreSQL 18 + pgbouncer + Valkey: la base de datos y la caché del SaaS. RLS activo en PROD y STAGE (crearack_app NOSUPERUSER).
  • 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_TOKEN en 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_KEY y ZAI_API_KEY sin 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]]