Plausible analytics self-hosted, en un solo comando
Por un tiempo, railyard.run corrió sin ninguna analítica. No por principios —simplemente no habíamos llegado a eso, lo que significaba que cada pregunta de “¿alguien está leyendo esto en realidad?” era una adivinanza. Resolverlo se volvió la primera prueba real de si “self-hosted, un clic” realmente se sostiene para algo que usaríamos nosotros mismos, no solo algo que construimos para las apps de otros.
Qué lanzamos
Plausible Community Edition, como plantilla de stack de Railyard: tres servicios —Plausible en sí, Postgres para los datos propios de la app, y ClickHouse para los eventos de analítica en sí— provisionados juntos en uno de nuestros propios servidores.
railyard launch plausible --server <id>
Eso es todo el paso de aprovisionamiento. Sin configuración separada de ClickHouse, sin conectar cadenas de conexión a mano —la plantilla declara los tres servicios y cómo se hablan entre sí, y Railyard despliega el conjunto como una sola unidad.
Qué vino después del comando de lanzamiento
El resto fue el primer arranque normal de cualquier app self-hosted, nada específico de Railyard:
- Abre la URL de la app, regístrate como propietario de la instancia —el propio flujo de primer arranque de Plausible, nada que precargar.
- + Add a website, ingresa el dominio que se va a rastrear.
- Copia el snippet de rastreo que genera y pégalo en el
<head>del sitio.
Ni siquiera hizo falta un dominio personalizado —la URL por defecto *.apps.railyard.run de la app bastó para correr el panel y servir el script de rastreo. Solo usamos ese camino porque es genuinamente más simple, no porque faltara algo.
Dónde se rompió, en concreto
No se rompió —y eso vale la pena decirlo con todas sus letras, porque el sentido de publicar esto es ser honestos sobre lo que realmente cuesta self-hostear algo en la práctica. La plantilla se lanzó limpia, los tres servicios se encontraron entre sí a través de la red privada de Railyard sin ninguna conexión manual de variables de entorno, y el script de rastreo empezó a mostrar pageviews en la vista Realtime de Plausible a los pocos segundos de agregarlo al sitio.
Lo único que vale la pena saber de antemano: un lanzamiento nuevo crea una app nueva cada vez que lo corres, así que lanzarlo dos veces significa dos stacks completos corriendo en paralelo, no una actualización del primero. Error fácil, arreglo fácil —apps:rm <name> --confirm <name> en el CLI elimina el sobrante sin dejar rastro.
Por qué self-hosted en vez de Plausible Cloud
Plausible Cloud es un buen producto y la opción más simple para la mayoría de los equipos. Elegimos self-hosted específicamente porque es la misma categoría de afirmación que hacemos sobre todo lo demás en Railyard: deberías poder correr las herramientas de las que dependes, en infraestructura que controlas, sin una segunda relación con un proveedor por cada pieza de tu stack. Sin cookies, sin banner de consentimiento, y los datos nunca salen de un servidor que aprovisionamos nosotros mismos.
Si estás evaluando la misma disyuntiva para tu propio sitio, la plantilla de Plausible está a un clic de distancia, y Logs, métricas y alertas cubre el resto de lo que Railyard te muestra sobre tráfico sin necesitar un stack de analítica separado.