He publicado DruScan, un nuevo producto para la comunidad Drupal

Hace un mes anuncié DruScan en el blog del proyecto. Han sido varias semanas más puliendo bugs raros, pero este fin de semana ya he podido dejar de mirar los logs de errores cada vez que entraba un usuario nuevo. Lo cuento también aquí, en mi blog personal, por si alguien que trabaja con Drupal aún no se había enterado.

Para quien no lo conozca, son dos cosas que funcionan juntas o por separado: un módulo audit gratuito y contribuido en Drupal.org, y un dashboard SaaS donde tienes a la vista las puntuaciones de salud de todos los proyectos donde lo instales.

Para mí, además, es la apuesta para que mis ingresos como freelance dejen de depender al 100% de las horas que vendo a clientes. Si funciona, puedo empezar a escalar sin tener que sumar más horas al día.

De dónde sale esto

La historia larga la conté en su momento aquí. El resumen es que llevaba años con scripts en bash sueltos para auditar proyectos Drupal, una conversación en la DrupalCamp Spain de Santiago en septiembre del año pasado me dio la idea de meterles más músculo, y empecé a montarlo en serio en octubre.

La primera versión leía la configuración exportada a código del proyecto y se ejecutaba directamente contra el repositorio, sin necesidad de tocar el sitio. Acabé descartando ese camino. Por un lado, no todo el mundo te da acceso al repo si quieres montar esto como SaaS. Por otro, lo que hay en el repo no siempre coincide con lo que está corriendo en producción, porque entre deploys y overrides la cosa se va separando.

Al final tiré por lo contrario: un módulo que se instala en el propio sitio, con acceso completo a configuración y base de datos, y que solo hace consultas de lectura, según lo que haya que mirar en cada caso. Lo probé en dos proyectos reales de cliente a finales de año y, entre lo que detectó bien y lo que detectaba mal, fui afinando la clasificación de severidad. Cosas que al principio marcaba como errores resultaron ser decisiones intencionadas para ese proyecto concreto, así que las pasé a notices. Esa parte no se ve en la documentación, pero es lo que cambia que la herramienta te sea útil o te sature de falsos positivos.

El dashboard salió como consecuencia natural. Una vez tenía el módulo funcionando bien en proyectos reales, la siguiente pregunta era cómo ver el estado de varios sitios sin entrar a cada uno. De ahí DruScan.

Qué es exactamente

El módulo audit está publicado en drupal.org/project/audit. Es gratuito y se queda gratuito. Hace más de 200 chequeos sobre cualquier proyecto Drupal 10 u 11: rendimiento, seguridad, configuración, malas prácticas, actualizaciones pendientes y más. Te da una puntuación de 0 a 100 por cada categoría y clasifica lo que detecta por gravedad: errores (cosas que hay que arreglar ya), warnings (cosas que conviene mirar) y notices (avisos informativos). Si solo quieres usar el módulo y no mandar datos a ningún sitio externo, puedes hacerlo sin más. La auditoría se queda en tu servidor.

DruScan es el dashboard al que el módulo manda las puntuaciones, si tú decides activarlo con una API key. Solo viajan números entre 0 y 100 por categoría, más la lista de módulos con sus versiones para los avisos de actualización. Ni código, ni contenido, ni datos de usuarios.

Lo que me resuelve a mí

Mi caso es un poco particular. Por la forma en la que trabajo, me muevo entre varios clientes al mismo tiempo y, según el mes, puedo estar haciendo cosas muy distintas en cada uno.

A grandes rasgos, suelo moverme entre tres roles. En unos proyectos voy como auditor externo: me llega una web con una queja vaga del estilo "esto va lento" o "esto no acaba de funcionar bien", muchas veces el cliente no sabe ni cuál es el problema real, así que tengo que entrar yo a investigar y dar un diagnóstico. En otros voy como programador freelance, haciendo backend o frontend para agencias que necesitan refuerzo, y en algunos de esos casos también acabo haciendo de segunda opinión técnica o de project manager supervisando lo que hace la agencia. Y luego están los proyectos donde mi rol es solo mantenimiento y actualizaciones, vigilando que no se rompa nada.

No soy un empleado al que le dicen "haz esto" y lo hace. Casi siempre tengo que dar mi opinión técnica y justificar por qué algo debe hacerse de una manera o de otra. Y, en muchos casos, hacer seguimiento durante semanas o meses para ver cómo evoluciona el proyecto: si la calidad del código mejora, si se han arreglado las cosas que yo había documentado, si lo que hay en desarrollo tiene mejor puntuación que lo que está en producción.

Para todo eso, DruScan me cambia el día a día.

Antes, para saber cómo estaba realmente cualquier proyecto, tenía que entrar manualmente al admin de cada uno, mirar en varios sitios y atar cabos. Ahora abro el dashboard y veo de un vistazo qué proyectos necesitan atención esta semana, sea por rendimiento, seguridad, malas prácticas o actualizaciones de core o contrib pendientes.

Y como puedes conectar varios entornos al mismo proyecto (desarrollo, preproducción, producción), si hay una regresión en preproducción respecto a producción, salta la alerta antes de que el deploy llegue al cliente. En los proyectos donde estoy haciendo seguimiento durante meses, eso me permite demostrar al cliente con números que lo que se sube a producción está mejor que lo que había antes, no solo decírselo.

Si gestionas un solo sitio, el módulo gratuito te basta. Si llevas varios proyectos a la vez, sobre todo con roles distintos según el proyecto, el dashboard te cambia bastante el día a día.

Y por qué ahora y no hace un mes

En abril, cuando publiqué la versión estable en Drupal.org y abrí el registro en DruScan, lo conté en el blog del proyecto pero no le di mucha caña fuera. La razón es la de siempre: estaba funcionando en mi propio entorno, en mis proyectos, y aunque iba bien, siempre acababa apareciendo algún bug raro en algún escenario que no había contemplado. Las últimas semanas han sido casi todo soporte e infraestructura, arreglando casos que solo se ven en hostings y configuraciones que no tengo a mano.

Hoy ya está en un punto donde puedo enseñarlo sin esperar el "oye, esto me ha petado en X". Que lo siga habiendo, lo habrá. Pero no con la frecuencia de antes. Por eso ahora sí me animo a contarlo también por aquí.

Cómo probarlo y qué te pido a cambio

Si trabajas con Drupal y te encaja probarlo, instala el módulo desde drupal.org/project/audit y, si quieres el dashboard, regístrate gratis en druscan.com. El plan gratuito no pide tarjeta y vale para proyectos ilimitados.

Lo que te pido es feedback honesto. Si lo ves útil, dímelo. Si no, también. Si echas de menos algo concreto (una métrica que no sale, una integración que no está, una alerta que se queda corta), escríbeme. Estoy en un momento en el que lo que me digas ahora pesa mucho en lo que venga después.

Y si conoces a alguien que lleve varios proyectos Drupal y le pueda venir bien, recomendárselo se agradece.

¿Necesitas un experto en Drupal?

Desarrollador Drupal senior, freelance, especializado en lo más complejo: migraciones, sitios multilingüe, plataformas SaaS e integración con Stripe. Uso IA para reducir tiempos y costes de entrega, con revisión experta en cada línea de código.

Sin agencias, sin intermediarios. Contacto directo con quien hace el trabajo.