1. Presupuesto de Complejidad¶
Añadir servicios sin control es la vía más rápida hacia un sistema que nadie entiende ni puede mantener. El Presupuesto de Complejidad es el mecanismo que frena esa deriva antes de que ocurra.
El problema que resuelve¶
En todo sistema autoalojado, la tendencia natural es acumular. Sin un mecanismo de freno, el sistema crece hasta que el administrador no recuerda qué hace cada pieza, las dependencias se vuelven inmanejables, y la documentación se desfasa. El Presupuesto de Complejidad convierte el crecimiento en una decisión consciente.
Límites por tier¶
Dentro de cada tier, los servicios se agrupan por el impacto que su fallo tiene en el usuario:
| Grupo | Significado | Tiempo de reacción |
|---|---|---|
| 🔴 | Impacto directo — el usuario lo nota | Recuperar ya |
| 🟡 | Degradación — pierde capacidades | Recuperar pronto |
| 🟢 | Invisible — solo el administrador | Cuando se pueda |
Tier A — Críticos (máx 16)¶
| LXC (contenedor ligero de Proxmox) | Servicio | Justificación | |
|---|---|---|---|
| 🔴 | 100 | NetBird | Sin VPN (red privada virtual), nadie accede desde fuera |
| 🔴 | 101 | Pi-hole | Sin DNS (servidor de nombres de dominio), ningún .sc resuelve |
| 🔴 | 102 | Caddy | Sin proxy, ningún servicio responde |
| 🔴 | 110 | Authentik | Sin login, todo bloqueado |
| 🔴 | 154 | ntfy | Sin notificaciones, no te enteras de los fallos |
| 🔴 | 120 | Prometheus + Alertmanager | Sin alertas automáticas |
| 🟡 | 121 | Victoria Metrics | Sin histórico de métricas |
| 🟡 | 122 | Victoria Logs | Sin logs centralizados |
| 🟡 | 123 | Grafana | Sin dashboards |
| 🟡 | 124 | Uptime Kuma | Sin verificación de disponibilidad |
| 🟡 | — | Grafana Alloy | Sin recolección de métricas |
| 🟡 | 140 | Forgejo + Actions + Registry OCI | Sin deploys ni fuente de verdad |
| 🟡 | 130 | Node-RED | Automatizaciones paradas; bomba sigue por Shelly (actuador eléctrico WiFi) |
| 🟡 | 131 | Mosquitto | Sensores mudos; finca autónoma |
| 🟢 | 104 | WireGuard emergencia | Solo admin |
| 🟢 | host | apcupsd | SAI protege igual sin monitorización |
Tier B — Importantes (máx 30)¶
| LXC (contenedor ligero de Proxmox) | Servicio | Justificación | |
|---|---|---|---|
| 🔴 | 111 | Vaultwarden | Sin contraseñas (hay caché local) |
| 🔴 | 150 | Nextcloud | Sin archivos ni calendario |
| 🔴 | 151 | Immich | Sin fotos familiares |
| 🔴 | 153 | Matrix / Continuwuity | Sin chat familiar |
| 🔴 | 170 | Jellyfin + Stremio | Sin videoteca |
| 🔴 | 171 | Navidrome + Beets | Sin música |
| 🔴 | 179 | Kavita | Sin ebooks ni cómics |
| 🔴 | 180 | Audiobookshelf | Sin audiolibros |
| 🔴 | 157 | Grocy + Tandoor | Sin despensa ni recetas |
| 🟡 | 132 | n8n | Sin workflows automáticos |
| 🟡 | 158 | Searxng | Sin buscador privado |
| 🟡 | 152 | Homepage ×4 | Sin panel unificado |
| 🟡 | 146 | Open WebUI | Sin asistente IA |
| 🟡 | 143 | MkDocs + Joplin Server | Sin docs ni notas |
| 🟡 | 155 | Bot Matrix | Sin comandos |
| 🟡 | 133 | PBS | Sin backups nuevos |
| 🟡 | 190 | farmOS | Sin cuaderno de campo |
| 🟡 | 191 | Drupal Commerce | Tienda offline |
| 🟡 | 192 | Mautic | Sin CRM |
| 🟡 | 193 | FacturaScripts | Sin facturación |
| 🟡 | 200 | PostGIS | Sin backend geoespacial |
| 🟡 | 141 | Ansible + Semaphore + Vault | Sin deploys automáticos |
| 🟢 | 112 | CA interna (autoridad certificadora propia) | Certificados ya emitidos válidos |
| 🟢 | 144 | Portainer | Solo admin |
| 🟢 | host | rsync (Nivel 3) | PBS y restic cubren |
| 🟢 | host | cv4pve-autosnap | PBS cubre |
| 🟢 | — | restic (Nivel 4) | PBS cubre |
Tier C — Medio (máx 25) · Tier D — Degradables (máx 8) · Tier D — Efímeros (máx 8)¶
Las tablas completas de Tier C, 4 y 5 están documentadas en el inventario de servicios en docs.sc. Cada entrada incluye LXC ID, impacto y justificación.
Notas sobre servicios sin LXC¶
| Tipo | Servicios | No cuentan porque... |
|---|---|---|
| Host Ra (servidor principal de SmallCountry) | apcupsd, cv4pve-autosnap, ZFS (sistema de archivos con integridad de datos), Lynis |
Systemd timers sin RAM significativa |
| Forgejo Actions | Trivy, Syft, Cosign, Renovate | Pipelines efímeros |
| Horus (servidor secundario con GPU para IA) unitario | Ollama GPU (procesador gráfico para IA) + Qdrant + Portainer Agent | Un solo compose, bajo demanda |
La regla de sustitución¶
Si se alcanza el límite y se quiere añadir algo nuevo, antes hay que retirar o fusionar otro servicio del mismo tier. Fusión solo si comparten dominio funcional y ciclo de vida idéntico.
La regla visual¶
Si el mapa de dependencias del sistema no cabe en una sola pantalla, toca simplificar antes de seguir creciendo.
Revisión trimestral¶
El administrador revisa el inventario y responde: ¿servicios sin usar? ¿fusiones posibles? ¿tiers al límite? Resultado documentado en Forgejo.
Relaciones con otros mecanismos¶
- Regla de Oro para Añadir Componentes: checklist cualitativa complementaria
- Separación de Principios, Inventario y Roadmap: el presupuesto se aplica sobre el inventario
- Presupuesto de Observabilidad: mismo principio aplicado a métricas
El Presupuesto de Complejidad no es una restricción arbitraria: es la garantía de que el sistema seguirá siendo mantenible dentro de cinco años.