[{"data":1,"prerenderedAt":194},["ShallowReactive",2],{"seo-verification":3,"blog-senales-durabilidad-app-self-hosted-es":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-senales-durabilidad-app-self-hosted-es",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":30,"intro":33,"sections":34,"ctaTitle":129,"ctaBody":130,"ctaButton":131,"ctaUrl":132,"relatedPosts":133},390,"senales-durabilidad-app-self-hosted",{"fr":12,"en":13,"ar":14,"es":10},"perennite-stack-self-hosted-signaux-resilience-projet","self-hosted-app-longevity-signals","إشارات-استدامة-تطبيق-مستضاف-ذاتيا","5 señales para evaluar la durabilidad de una app self-hosted","Antes de desplegar una app de código abierto para un cliente, cinco indicadores medibles para saber si resistirá a largo plazo — gobernanza, financiación, licencia y más.",10,0,false,"2026-09-27T00:00:00+00:00","2026-09-29T14:40:42+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},8,"Seguridad y monitorización","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fperennite-stack-self-hosted-signaux-resilience-projet-poster.svg","Planka v2.2 retiró el SSO de su edición comunitaria sin previo aviso. Grist v1.7.18 movió la autenticación federada al nivel Enterprise. Portainer congeló la Community Edition en la rama 2.x mientras todo el desarrollo se traslada a una bifurcación propietaria. En cada caso, agencias habían entregado estas apps a clientes creyendo tener una solución libre, independiente y sin costes de salida. El contrato implícito del código abierto — «tienes el código, eres libre» — no protege contra estos desplazamientos. Este artículo propone cinco señales medibles y verificables antes del despliegue, para distinguir los proyectos que aguantarán de los que cambiarán su modelo bajo sus pies.",[35,39,79,82,85,88,91,94,122,126],{"type":36,"title":37,"body":38},"h2","El contrato implícito del código abierto y por qué se rompe","El código abierto descansa sobre una promesa funcional: el código es legible, modificable, redistribuible. Esta promesa es contractual — está inscrita en la licencia. Lo que no está inscrito es la continuidad de las funcionalidades gratuitas, la estabilidad del alcance, ni la perennidad de los mantenedores.\n\nLas rupturas observadas en 2025-2026 no son todas de la misma naturaleza. Algunas son decisiones comerciales deliberadas (Planka, Grist, Portainer): una funcionalidad existente migra a un tier de pago. Otras son derivas de arquitectura (Netdata): las funcionalidades avanzadas requieren progresivamente la nube del proveedor. Otras son riesgos de gobernanza (Jellyfin): los mantenedores principales se van, y nadie sabe si el proyecto sobrevivirá.\n\nPara una agencia, estos tres escenarios tienen consecuencias muy diferentes — pero todos son detectables con antelación, con los indicadores adecuados.",{"type":40,"title":41,"headers":42,"rows":48},"comparison","Cinco casos recientes documentados",[43,44,45,46,47],"App","Versión","Evento","Impacto para la agencia","Fecha",[49,55,61,67,73],[50,51,52,53,54],"Planka","v2.2.0","SSO\u002FOIDC retirado de la edición comunitaria, trasladado al Pro de pago","Cuentas SSO desactivadas sin migración automática al actualizar","Agosto 2026",[56,57,58,59,60],"Grist","v1.7.18","OIDC\u002FSAML retirados de grist-core, reservados para la edición Enterprise","Cualquier integración IdP existente deja de funcionar tras la actualización","2026",[62,63,64,65,66],"Netdata","Agent ≥ 2.x","Gestor de configuración de alertas y alertas IA restringidos al plan Business en la nube","La monitorización local sigue funcional, pero la gestión centralizada exige Netdata Cloud","2025-2026",[68,69,70,71,72],"Portainer","3.0","CE congelada en 2.45 LTS, todo el desarrollo pasa a Portainer Business 3.x","Sin Portainer CE 3.x; acceso a 3.x solo a través de un tier propietario limitado a 3 nodos","Septiembre 2026",[74,75,76,77,78],"Jellyfin","12.0","Los 3 fundadores abandonan el proyecto en julio de 2026 (burnout + desacuerdos)","Riesgo de gobernanza absorbido: la versión 12.0 se publicó el 7 de septiembre de 2026 pese a las salidas","Julio-Septiembre 2026",{"type":36,"title":80,"body":81},"Señal 1 — Gobernanza legal: ¿quién controla el proyecto?","La primera pregunta no es técnica, es jurídica: ¿quién controla el repositorio, la marca y las decisiones estratégicas?\n\nUna LLC con un único accionista significa que una decisión individual puede cambiar el modelo de la noche a la mañana. Planka está explotada por una entidad comercial que puede, en cualquier momento, redefinir qué pertenece a «Community» y qué a «Pro».\n\nUna fundación sin ánimo de lucro (Software Freedom Conservancy, Apache Software Foundation, Linux Foundation) o una cooperativa de contribuidores (modelo Codeberg) crea una fricción institucional antes de cualquier cambio de rumbo. Los estatutos imponen una votación, transparencia, un plazo. No es una garantía absoluta, pero es un freno verificable.\n\nCómo verificarlo. El archivo `GOVERNANCE.md` o `MAINTAINERS.md` en la raíz del repositorio. La página «About» de la organización en GitHub. El registro de marcas (USPTO, EUIPO). Si el proyecto tiene un Fiscal Sponsor (Open Collective Foundation, NumFocus), la página de la entidad tutela. Jellyfin, por ejemplo, está alojado bajo la Software Freedom Conservancy — lo que contribuyó a que el proyecto sobreviviera a la marcha de sus fundadores.",{"type":36,"title":83,"body":84},"Señal 2 — Velocidad de contribuciones: ¿está vivo el proyecto?","Un proyecto de código abierto que no recibe commits desde hace 18 meses no es «estable» — está en fin de vida no declarado. La velocidad de contribución mide la capacidad del proyecto para absorber bugs de seguridad, seguir las dependencias e integrar correcciones.\n\nIndicadores a medir. El GitHub Pulse en 30 días: número de commits, pull requests abiertas y cerradas, contribuidores activos. Cadencia de releases: un proyecto sano publica versiones regulares, aunque sean menores. Tiempo medio de respuesta en issues críticas (etiquetas `bug`, `security`). La ratio `closed\u002Fopen` en issues de más de 90 días.\n\nA través de la GitHub API, el siguiente comando da el pulse bruto: `curl \"https:\u002F\u002Fapi.github.com\u002Frepos\u002F\u003Cowner>\u002F\u003Crepo>\u002Fstats\u002Fcommit_activity\"` devuelve 52 semanas de commits. Un proyecto cuya media de las últimas 12 semanas es inferior a 2 commits por semana merece atención.\n\nLo que esto no dice. Un proyecto muy activo puede serlo porque acumula deuda técnica o breaking changes frecuentes. La velocidad es una señal necesaria, no suficiente.",{"type":36,"title":86,"body":87},"Señal 3 — Estructura de financiación: ¿de dónde viene el dinero?","El modelo de financiación de un proyecto de código abierto prefigura su trayectoria comercial. No es un juicio moral — un proyecto necesita recursos para durar — sino un indicador de riesgo.\n\nFinanciado por venture capital: un inversor espera un retorno. La presión sobre la monetización aumenta con el tiempo. Las funcionalidades que eran gratuitas se convierten en palancas de conversión. Grist Labs recibió financiación antes de restringir el SSO a su edición Enterprise.\n\nBootstrapped con ingresos comerciales: el modelo económico es conocido desde el principio (soporte, hosting gestionado, funcionalidades pro). El riesgo es más predecible. Planka siempre tuvo una versión Pro, pero el límite se desplazó sin previo aviso.\n\nDonaciones o subvenciones únicamente: el proyecto es vulnerable a las variaciones de ingresos. Pero las decisiones comerciales son raras. Jellyfin funciona principalmente con este modelo.\n\nCómo verificarlo. La página Open Collective del proyecto. Crunchbase para rondas de financiación. Issues o discusiones en GitHub tituladas `sustainability`, `funding`, `business model`. La pregunta no es «¿está financiado por VC?» sino «¿cómo está previsto el retorno de la inversión, y en qué horizonte?»",{"type":36,"title":89,"body":90},"Señal 4 — Dualidad de licencia: qué permite realmente la licencia","La licencia de código abierto dice qué puede hacer con el código. No dice qué hará el proveedor con el código en el futuro. Dos situaciones a distinguir.\n\nLa licencia es permisiva o copyleft clásica (MIT, Apache 2.0, GPL, AGPL): tiene derecho a hacer un fork, modificar y redistribuir. Si el proveedor cambia de rumbo, puede continuar con la última versión libre. Este es el caso de Jellyfin (GPL-2.0) — todas las versiones publicadas siguen siendo libremente bifurcables.\n\nLa licencia es una Business Source License (BSL) o SSPL: estas licencias contienen una cláusula de «change date» o restricción de uso comercial. HashiCorp, Elasticsearch y otros han demostrado que una migración de licencia se aplica a versiones futuras, no a las pasadas. Un despliegue existente está protegido; uno futuro puede no estarlo.\n\nCómo verificarlo. El archivo `LICENSE` en la raíz. `grep -r 'Business Source License\\|SSPL\\|Commons Clause' \u003Crepo>\u002F` para detectar cláusulas restrictivas. El historial git de `LICENSE`: una modificación reciente es una señal de alerta importante. La página SPDX del proyecto si existe.",{"type":36,"title":92,"body":93},"Señal 5 — Fork-ability: ¿puede recuperar el control?","La fork-ability es la capacidad real — no teórica — de continuar el proyecto de forma autónoma si el proveedor cambia de rumbo. Depende de varios factores técnicos.\n\nCI pública. Si el pipeline de build está en `.github\u002Fworkflows\u002F` o un equivalente público, puede reproducir los artefactos. Si la CI depende de runners privados, secrets no documentados o un sistema propietario, el fork no compilará.\n\nDependencias propietarias. Algunos proyectos integran llamadas a servicios del proveedor (analytics, licensing, telemetry) que no funcionan sin una cuenta o API key propietaria. `grep -r 'api.vendor' \u003Crepo>\u002Fsrc\u002F` para detectar estas dependencias.\n\nCódigo ofuscado o binarios precompilados. Un repositorio que contiene `.jar`, `.dll`, o archivos minificados sin fuente correspondiente crea zonas opacas en el fork.\n\nCómo evaluar. Clonar el repositorio e intentar una compilación local desde cero siguiendo únicamente la documentación pública. Analizar el resultado de `docker build` — si la imagen descarga capas desde un registry privado del proveedor, la fork-ability está comprometida.",{"type":95,"title":96,"steps":97},"steps","Protocolo de verificación antes del despliegue para un cliente",[98,101,104,107,110,113,116,119],{"label":99,"body":100},"Gobernanza legal","Buscar `GOVERNANCE.md` o `MAINTAINERS.md` en la raíz. Identificar la entidad jurídica detrás del proyecto (GitHub Org → About, WHOIS de marca). Verificar si hay un Fiscal Sponsor declarado en `FUNDING.yml`.",{"label":102,"body":103},"Velocidad en 90 días","Ejecutar `curl \"https:\u002F\u002Fapi.github.com\u002Frepos\u002F\u003Cowner>\u002F\u003Crepo>\u002Fstats\u002Fcommit_activity\" | jq '[.[-13:][].total] | add'` para obtener el total de commits en las últimas 13 semanas. Un resultado inferior a 20 merece investigación. Verificar también la fecha del último tag de release.",{"label":105,"body":106},"Modelo económico","Buscar la página Open Collective del proyecto. Consultar Crunchbase para rondas de financiación. Leer issues o discusiones en GitHub etiquetadas `sustainability` o `business`. Identificar si el proyecto tiene una edición Pro y leer con precisión qué contiene.",{"label":108,"body":109},"Auditoría de licencia","Leer el archivo `LICENSE` completo. Ejecutar `grep -ri 'business source\\|commons clause\\|SSPL\\|change date' .\u002F` en la raíz del repositorio clonado. Consultar el historial git del archivo: `git log --follow -p LICENSE` para detectar un cambio reciente.",{"label":111,"body":112},"Test de fork-ability","Clonar el repositorio y ejecutar la compilación documentada desde cero. Inspeccionar el Dockerfile con `grep -E 'FROM|COPY|RUN' Dockerfile` para detectar fuentes propietarias. Ejecutar `grep -r 'http' \u003Crepo>\u002Fsrc\u002F | grep -v github | grep -v localhost` para identificar llamadas salientes a servicios del proveedor.",{"label":114,"body":115},"Búsqueda de antecedentes de ruptura","Buscar en GitHub Issues las etiquetas `breaking-change`, `migration`, `deprecation`. Leer el CHANGELOG de las últimas 6 versiones. Consultar foros comunitarios (Reddit r\u002Fselfhosted, Hacker News) para discusiones recientes sobre el proyecto.",{"label":117,"body":118},"Evaluación de la red de mantenedores","Consultar la lista de contribuidores activos (`\u002Fgraphs\u002Fcontributors` en GitHub). Verificar si más del 60% de los commits provienen de una sola persona — alto riesgo de bus factor. Buscar si organizaciones externas al proveedor contribuyen regularmente.",{"label":120,"body":121},"Documentación del veredicto para el cliente","Redactar un resumen por app desplegada con: licencia exacta, entidad jurídica, puntuación de velocidad, modelo económico identificado, fork-ability evaluada. Conservar este documento en la carpeta del proyecto. Programar una revisión anual para detectar derivas antes de que se conviertan en incidentes.",{"type":123,"title":124,"body":125},"tip","Lo que estas señales no prueban","Un proyecto que supera las cinco señales puede igualmente decepcionar. La financiación asociativa no protege contra la inactividad progresiva. Una licencia GPL no protege contra un proyecto que deje de mantenerse. La gobernanza distribuida no protege contra los desacuerdos técnicos que fragmentan la comunidad.\n\nEstas señales reducen el riesgo — no lo eliminan. La postura más robusta para una agencia es tratar cada app self-hosted como una dependencia de producción: se monitoriza, se revisa anualmente y tiene una estrategia de salida documentada desde el primer día del despliegue. La pregunta no es «¿es fiable esta app?» sino «si cambia su modelo en 18 meses, ¿cuánto tiempo necesitamos para migrar a los clientes?»",{"type":36,"title":127,"body":128},"Conclusión: auditar antes de desplegar, no después","Los cinco casos de 2025-2026 comparten algo: en cada uno, las señales eran legibles antes de la ruptura. La estructura LLC de Planka, la presencia de inversores en Grist, el roadmap público de Portainer, la concentración de commits en Jellyfin — todo estaba en el repositorio de GitHub, en los issues, en los changelogs.\n\nLa diferencia entre una agencia expuesta y una tranquila tiene menos que ver con sus elecciones de apps que con su rigor de cualificación. Desplegar una stack self-hosted para un cliente sin haber revisado estas cinco señales es aceptar implícitamente que una decisión tomada en una oficina al otro lado del mundo pueda crear una urgencia en su agenda.\n\nLa auditoría lleva de 30 a 60 minutos por app. Se documenta en una sola página. Y se revisa una vez al año — lo que generalmente es suficiente para ver los cambios llegar antes de que se conviertan en incidentes.","Una stack self-hosted auditada para sus clientes","Ofrezca a sus clientes una infraestructura controlada, con apps evaluadas según su durabilidad y un SLA que pueda defender.","Ver las ofertas para agencias","\u002Fsolutions\u002Fagences",[134,154,178],{"id":135,"slug":136,"slugs":137,"title":141,"excerpt":142,"readTime":143,"views":18,"isPinned":19,"publishedAt":144,"updatedAt":145,"category":146,"categories":151,"featuredImage":30,"bgImage":31,"posterImage":153,"relatedSolution":30},374,"saas-vs-self-hosted-comparativa-de-costes-2026",{"fr":138,"en":139,"ar":140,"es":136},"saas-vs-self-hosted-comparatif-cout-2026","saas-vs-self-hosted-real-cost-comparison-2026","saas-مقابل-الاستضافة-الذاتية-مقارنة-التكاليف-2026","SaaS vs self-hosted: comparativa de costes 2026","Calcula el TCO real de 7 herramientas SaaS para agencias frente a su equivalente self-hosted en VPS. ¿Vale la pena el cambio con ~14.000$\u002Faño de ahorro?",11,"2026-09-24T00:00:00+00:00","2026-09-24T12:27:51+00:00",{"id":147,"name":148,"slug":149,"color":150,"icon":149},5,"Comparativas","comparatif","bg-info\u002F10 text-info",[152],{"id":147,"name":148,"slug":149,"color":150,"icon":149},"\u002Fblog\u002Fcovers\u002Fsaas-vs-self-hosted-comparatif-cout-2026-poster.svg",{"id":155,"slug":156,"slugs":157,"title":161,"excerpt":162,"readTime":163,"views":164,"isPinned":19,"publishedAt":165,"updatedAt":166,"category":167,"categories":172,"featuredImage":30,"bgImage":31,"posterImage":174,"relatedSolution":175},367,"portainer-3-elimina-ce-tres-alternativas-open-source",{"fr":158,"en":159,"ar":160,"es":156},"portainer-3-alternative-self-hosted-vps","portainer-3-drops-ce-three-open-source-alternatives","بورتينر-30-يلغي-النسخة-المجانية-ثلاثة-بدايل-مفتوحة-المصدر","Portainer 3.0 elimina la CE: tres alternativas open source","Portainer 3.0 elimina la Community Edition. Tres alternativas open source — Dockge, Coolify y Komodo — desplegables hoy en tu VPS, con comparativa honesta.",7,15,"2026-09-20T00:00:00+00:00","2026-09-20T21:13:51+00:00",{"id":168,"name":169,"slug":170,"color":171,"icon":170},3,"Despliegue","deploiement","bg-success\u002F10 text-success",[173],{"id":168,"name":169,"slug":170,"color":171,"icon":170},"\u002Fblog\u002Fcovers\u002Fportainer-3-alternative-self-hosted-vps-poster.svg",{"categorySlug":176,"appSlug":177},"despliegue-de-aplicaciones-devops","komodo",{"id":179,"slug":180,"slugs":181,"title":185,"excerpt":186,"readTime":187,"views":18,"isPinned":19,"publishedAt":188,"updatedAt":189,"category":190,"categories":191,"featuredImage":30,"bgImage":31,"posterImage":193,"relatedSolution":30},370,"microsoft-project-online-fin-servicio-alternativas-self-hosted",{"fr":182,"en":183,"ar":184,"es":180},"microsoft-project-online-eol-alternatives-self-hosted","microsoft-project-online-eol-self-hosted-alternatives","microsoft-project-online-نهاية-الخدمة-بدائل-مستضافة","Microsoft Project Online se cierra: migra a self-hosted","Microsoft Project Online termina el 30 de septiembre de 2026. Migra a Plane u OpenProject self-hosted en un VPS antes del cierre — guía paso a paso.",9,"2026-09-23T00:00:00+00:00","2026-09-23T15:23:17+00:00",{"id":147,"name":148,"slug":149,"color":150,"icon":149},[192],{"id":147,"name":148,"slug":149,"color":150,"icon":149},"\u002Fblog\u002Fcovers\u002Fmicrosoft-project-online-eol-alternatives-self-hosted-poster.svg",1790693333768]