Logotipo de Bitdoze

Cómo instalar Plausible Analytics con un clic (2026)

Instala Plausible Analytics en tu VPS con Coolify en un clic. Analítica autoalojada, centrada en la privacidad y sin cookies. Guía paso a paso con Docker (v3.2.1).

Dragos

30 min de lectura

Cómo instalar Plausible Analytics con un clic (2026)

Plausible Analytics es una alternativa a Google Analytics de código abierto y centrada en la privacidad. No instala cookies, no recopila datos personales y el script de seguimiento pesa menos de 1 KB. Según Plausible, es 54 veces más ligero que Google Analytics y ahorra a cada visitante unos 135 KB de JavaScript.

En esta guía vas a instalar Plausible Analytics en tu propio VPS usando Coolify, un PaaS autoalojado. Una única app predefinida de Docker Compose levanta todo el stack: la aplicación de analítica, PostgreSQL para las cuentas, ClickHouse para los eventos, además de SSL y un proxy inverso.

Plausible CE v3.2.1 (mayo de 2026) es la versión actual. Además es un parche de seguridad que conviene aplicar (detalles en la sección de actualización), así que fija esa etiqueta y no una anterior.

Qué obtienes con Plausible Analytics autoalojado

  • Sin límites de páginas vistas. Plausible Cloud ahora va por niveles: Starter a $9/mes por 10k páginas vistas mensuales en un sitio, Growth a $14/mes para 3 sitios y Business a $19/mes para 10 sitios. El CE autoalojado no tiene límites.
  • Propiedad total de los datos. Los eventos viven en tu servidor, en ClickHouse. Ningún tercero en el camino.
  • Sin banner de consentimiento. Sin cookies, sin registro de IP, sin recopilación de datos personales. Según el RGPD no necesitas un banner de cookies para esto.
  • Script diminuto. Menos de 1 KB frente a los ~135 KB de Google Analytics.
  • Tres contenedores. Plausible (Elixir/Phoenix), PostgreSQL 16 para las cuentas y la configuración de sitios, y ClickHouse 24.12 para los eventos.

Cálculo de costes

Un VPS de 4 GB compartido con Coolify y algunos otros servicios cuesta en torno a €5-8/mes en hardware del nivel de Hetzner. Plausible Cloud cuesta $9/mes por un solo sitio con 10k páginas vistas y sube a partir de ahí. El autoalojamiento paga el servidor por sí solo en cuanto gestionas más de un sitio o algo más que tráfico trivial.

Lo que v3.x añade respecto a versiones anteriores: equipos y permisos, profundidad de scroll y tiempo de engagement (v3.0.0), el nuevo script de seguimiento configurable (v3.1.0) y «Limit to segment» en los enlaces compartidos (v3.2.0). La segmentación de sitios llegó antes, en la línea v2.1.

Stack de Plausible Analytics autoalojado en Coolify: los visitantes llegan a tu dominio, donde Traefik termina TLS; Plausible CE v3.2.1 guarda las cuentas en PostgreSQL 16 y los eventos en ClickHouse 24.12, ambos en volúmenes persistentes

Requisitos previos

  • Un VPS con 2 núcleos de CPU y al menos 2 GB de RAM. El propio README de Plausible recomienda «>= 2 GB RAM recommended for running ClickHouse and Plausible without fear of OOMs». Yo iría a 4 GB si el servidor también ejecuta Coolify y otros servicios.
  • Una CPU compatible con SSE4.2 (x86-64) o NEON (ARM). ClickHouse no funcionará sin eso.
  • Un dominio o subdominio para el panel, como analytics.yourdomain.com.
  • Los puertos 80 y 443 accesibles en el servidor. El puerto 8000 solo importa mientras configuras Coolify.
  • Un registro DNS A para ese hostname apuntando a la IP del servidor.
  • Coolify instalado en el servidor (el paso 2 lo cubre).

ClickHouse necesita SSE4.2 o NEON

Algunos planes de VPS baratos o antiguos usan CPUs sin SSE4.2 y la base de datos de eventos entra en un bucle de reinicios. Si grep -o 'sse4_2' /proc/cpuinfo | head -1 no imprime nada en tu máquina, cambia de plan o de proveedor antes de desplegar.

Videotutorial

El vídeo muestra el flujo antiguo del catálogo de servicios de Coolify. Plausible ahora se distribuye como app predefinida de Docker Compose, así que usa los pasos de texto de abajo como la ruta actual (coinciden con las plantillas de Coolify v4.3.x a septiembre de 2026).

Paso 1: Prepara un servidor VPS

Necesitas un VPS para alojar Plausible. Hetzner es mi opción por defecto en relación precio-rendimiento; consulta la review de Hetzner Cloud para más detalles. DigitalOcean, Vultr y Hostinger también funcionan bien. Los números, aquí: comparativa de VPS DigitalOcean vs Vultr vs Hetzner.

Los precios de los VPS subieron en general en 2026. Si estás reconsiderando un servidor alquilado, mira qué cambió y cuándo gana un mini PC.

Para Plausible junto a Coolify y algunos otros servicios, un VPS de 4 GB de RAM y 2 núcleos es el punto de partida adecuado. Esa clase de máquina cuesta unos €5-8/mes en Hetzner.

DigitalOcean $100 Gratis Vultr $100 Gratis Hetzner 20 € de crédito gratis Hostinger VPS

Paso 2: Instala Coolify

Entra por SSH a tu VPS como root y ejecuta:

bash
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | sudo bash

El script instala Docker Engine, las dependencias y el propio Coolify (actualmente la línea v4.x, v4.3.23 a septiembre de 2026). Abre http://your-server-ip:8000 y crea la cuenta de administrador de inmediato. Es un PaaS autoalojado que controlas por completo; mira nuestra review de Coolify v5 para ver cómo es en el día a día.

Verificación: curl -I http://your-server-ip:8000 devuelve 200 o 302 y el panel carga. Si la página se queda colgada, comprueba ss -tlnp | grep 8000 y docker ps para confirmar que Coolify arrancó.

Para la configuración completa, incluyendo SSL y dominio, consulta la guía de instalación de Coolify.

Paso 3: Apunta un dominio al servidor

Añade un registro A en tu DNS que apunte el hostname de Plausible a la IP del VPS. Por ejemplo, analytics.yourdomain.com → your-server-ip.

Si usas Cloudflare, deja el proxy desactivado (nube gris). El proxy inverso Traefik de Coolify gestiona el SSL mediante Let’s Encrypt automáticamente.

Verificación: dig +short analytics.yourdomain.com devuelve la IP de tu servidor antes de desplegar. Si no es así, espera a que expire el TTL e inténtalo de nuevo. La emisión del certificado falla con un hostname que no resuelve, y Coolify solo te mostrará un destino de proxy roto.

Paso 4: Despliega Plausible Analytics con Coolify

Aquí es donde cambiaron las cosas en 2026. Plausible antes estaba en el catálogo de plantillas de servicios de Coolify. Ahora se distribuye como una app predefinida de Docker Compose (actualizada a v3.2.1 en septiembre de 2026), así que la ruta de clics es distinta a la de tutoriales y vídeos antiguos. La plantilla descarga tres contenedores:

  • plausible: ghcr.io/plausible/community-edition:v3.2.1, healthcheck en /api/health
  • plausible-db: postgres:16-alpine, healthcheck en pg_isready
  • plausible-events-db: clickhouse/clickhouse-server:24.12-alpine, healthcheck en :8123/ping, con una configuración de bajos recursos integrada

4.1 Crea un nuevo recurso Docker Compose

App predefinida (recomendado)

En Coolify, ve a New Resource → Docker Compose → Load from Predefined Apps. Busca “Plausible” (categoría: Analytics) y selecciónalo. Coolify rellena el archivo compose, los healthchecks y los placeholders de entorno que la app necesita.

Panel de Coolify mostrando las opciones New Resource y Docker ComposeSelección de Plausible en las apps predefinidas de Docker Compose de Coolify

Las capturas son anteriores al cambio a las apps predefinidas de Docker Compose, así que algunas etiquetas difieren de la UI actual. Sigue los pasos de texto de arriba si hay discrepancias.

Pegar el compose oficial

Esto funciona en cualquier versión de Coolify y te mantiene independiente de su lista de plantillas.

  1. New Resource → Docker Compose (vacío).
  2. Pega el compose.yml oficial del repositorio community-edition de Plausible.
  3. Define al menos BASE_URL y SECRET_KEY_BASE en la configuración de entorno:
bash
BASE_URL=https://analytics.yourdomain.com
SECRET_KEY_BASE=<output of the command below>
bash
openssl rand -base64 48

Si vas por esta ruta, actualiza tú mismo los archivos de community-edition cuando Plausible publique correcciones, no solo la imagen de la app.

No busques Plausible en el antiguo catálogo de servicios. Ya no aparece ahí en las versiones actuales de Coolify.

4.2 Configura el servicio

Define esto en la configuración del servicio:

  • Name: cualquier nombre reconocible, como plausible-analytics
  • Image tag: v3.2.1 (el valor por defecto de la plantilla a septiembre de 2026)
  • URL (FQDN): https://analytics.yourdomain.com. Esto rellena BASE_URL automáticamente a través de SERVICE_URL_PLAUSIBLE.

Coolify también genera los secretos por ti: SECRET_KEY_BASE a partir de SERVICE_BASE64_64_PLAUSIBLE y TOTP_VAULT_KEY a partir de SERVICE_REALBASE64_32_TOTP. No necesitas inventarlos.

Configuración del servicio Plausible en Coolify con dominio y versión

Guarda la configuración.

4.3 Variables de entorno

Obligatorias:

  • BASE_URL: tu URL de Plausible, p. ej. https://analytics.yourdomain.com. Se define automáticamente si rellenaste el FQDN de arriba.
  • SECRET_KEY_BASE: una cadena aleatoria de 64+ caracteres para cifrar sesiones. Coolify la genera; si pegaste el compose tú mismo, usa openssl rand -base64 48. Plausible CE también lee secretos de Docker desde /run/secrets/SECRET_KEY_BASE, que tiene prioridad sobre la variable de entorno; consulta secretos en Docker Compose para ver cómo configurarlos.

Opcionales:

  • TOTP_VAULT_KEY: cifra los secretos de autenticación de dos factores. Plausible lo deriva de SECRET_KEY_BASE (PBKDF2) cuando no está definido, así que solo lo configuras si quieres que sea independiente. La plantilla de Coolify lo define de todos modos.

Registro:

  • DISABLE_REGISTRATION: por defecto es invite_only, de modo que solo los usuarios que invites pueden crear cuentas. Cuando ya exista tu cuenta de administrador, déjalo así. Pon true para bloquearlo por completo.

SMTP (opcional, para informes por email y restablecer contraseñas):

Los emails no se envían por defecto

La plantilla de Coolify define MAILER_ADAPTER=Bamboo.LocalAdapter, que escribe los emails en un archivo local en lugar de entregarlos. Los restablecimientos de contraseña y los informes programados nunca llegarán hasta que configures SMTP abajo. El correo saliente directo necesita el puerto 25 abierto además de SPF y DKIM en tu dominio, y la mayoría de proveedores de VPS bloquean el 25. Un relay o un proveedor de SMTP transaccional es el camino realista.

bash
MAILER_EMAIL=analytics@yourdomain.com
SMTP_HOST_ADDR=smtp.yourdomain.com
SMTP_HOST_PORT=587
SMTP_USER_NAME=analytics@yourdomain.com
SMTP_USER_PWD=your_smtp_password
SMTP_HOST_SSL_ENABLED=true

Sin SMTP, Plausible funciona igual de bien. Simplemente no recibes informes por email ni restablecimientos de contraseña por correo.

Integración con Google Search Console (opcional):

bash
GOOGLE_CLIENT_ID=your_client_id
GOOGLE_CLIENT_SECRET=your_client_secret

Esto permite a Plausible importar datos de consultas de búsqueda desde Google Search Console. Se configura en los ajustes del sitio de Plausible después del despliegue.

Geolocalización a nivel de ciudad (opcional):

bash
IP_GEOLOCATION_DB=MaxMindCity
MAXMIND_LICENSE_KEY=your_maxmind_license
MAXMIND_EDITION=GeoLite2-City

Sin una clave de licencia de MaxMind obtienes ubicación a nivel de país como mucho. La licencia de GeoLite2 es gratuita; regístrate en MaxMind y pega la clave.

Variables de entorno de Plausible BASE_URL y SECRET_KEY_BASE en Coolify

Para la lista completa de opciones de configuración, consulta la wiki de configuración de Plausible CE. Si no usas Coolify y quieres que Plausible gestione sus propios certificados, define HTTP_PORT=80 y HTTPS_PORT=443 y emitirá y renovará los certificados de Let’s Encrypt por sí mismo.

Pulsa Deploy. El primer arranque tarda unos minutos mientras se descargan las imágenes y se ejecuta db createdb && db migrate && run al inicio.

4.4 Verifica el despliegue

Ejecuta esto desde el servidor o cualquier máquina que pueda alcanzar el dominio:

bash
# 1. health endpoint should return healthy
curl -fsSL https://analytics.yourdomain.com/api/health

# 2. confirm you are running v3.2.1
docker ps --format '{{.Image}}' | grep plausible
# expect: ghcr.io/plausible/community-edition:v3.2.1

# 3. CVE check: /storybook must NOT return 200 on v3.2.1
curl -sSI https://analytics.yourdomain.com/storybook

Después abre https://analytics.yourdomain.com en un navegador. Debería aparecer la página de registro. Crea tu cuenta de administrador de inmediato: con DISABLE_REGISTRATION=invite_only, cada usuario posterior necesita una invitación tuya.

Ya estás en línea

Si el health check devuelve 200, la etiqueta de imagen es v3.2.1, /storybook ya no existe y la página de registro carga, el despliegue está bien. Añade tu primer sitio a continuación.

Paso 5: Añade tu primer sitio

En el panel de Plausible, haz clic en Add a website e introduce el dominio de tu sitio. Abre Site Installation en la configuración del sitio. Plausible genera un snippet único para ese sitio:

html
<script defer data-domain="yourdomain.com"
  src="https://analytics.yourdomain.com/js/script.js">
</script>

Añádelo al <head> de todas las páginas de tu sitio web. Los eventos personalizados y el seguimiento de ingresos están activados por defecto en el nuevo script. Como el script se carga desde tu propio dominio en lugar de un servidor de terceros, los bloqueadores de anuncios tienen muchas menos probabilidades de bloquearlo que con un servicio de analítica en la nube.

Bloqueadores de anuncios y proxies

El alojamiento first-party reduce mucho el bloqueo, pero no es inmune a las listas de filtros agresivas. Si necesitas que los recuentos sobrevivan a esas listas, sirve el script a través de una ruta de proxy en tu propio dominio. Plausible lo documenta en su guía de proxy, y hay un tutorial completo aquí: Plausible Analytics con proxy de Cloudflare Workers.

Verificación: carga tu sitio en un navegador y actualiza el panel de Plausible. Una página vista debería aparecer en menos de un minuto. Para pruebas locales antes de que el DNS esté activo, añade captureOnLocalhost: true a las opciones de init de abajo.

Opciones del script de seguimiento

Desde la actualización del script de octubre de 2025 (publicada en Plausible CE v3.1.0), las funciones opcionales son toggles y opciones de plausible.init(), no extensiones de nombre de archivo. El snippet por sitio de Site Installation ya incluye tus elecciones. Si necesitas configurarlas manualmente:

html
<script defer data-domain="yourdomain.com"
  src="https://analytics.yourdomain.com/js/script.js"></script>
<script>
  plausible.init({
    hashBasedRouting: true,
    fileDownloads: {
      fileExtensions: ["pdf", "xlsx", "docx", "zip"]
    },
    captureOnLocalhost: true,
    autoCapturePageviews: true
  })
</script>

Las opciones que más usarás:

  • hashBasedRouting: true: para apps de una sola página con rutas basadas en hash. Sustituye al antiguo script.hash.js.
  • fileDownloads: { fileExtensions: [...] }: seguimiento de descargas. De serie vigila los tipos habituales (pdf, xlsx, docx, txt, csv, zip, 7z, rar, mp4, mp3 y similares); pasa tu propia lista para reducirla o ampliarla.
  • customProperties: {...}: adjunta propiedades estáticas a cada página vista.
  • endpoint: "https://...": envía los eventos a un endpoint personalizado, por ejemplo cuando haces proxy del script. Sustituye al antiguo atributo data-api.
  • autoCapturePageviews: false: dispara las páginas vistas manualmente en una SPA.
  • captureOnLocalhost: true: necesario para cualquier prueba desde localhost.

El seguimiento de envíos de formularios es un toggle en Site Installation. Dos cosas que el nuevo script eliminó: data-exclude/data-include y el soporte multidominio en un único snippet. Todos los detalles en la guía de actualización del script.

Variantes del script antiguo

Los scripts de extensión antiguos siguen funcionando si ya los usas: script.hash.js, script.outbound-links.js, script.file-downloads.js, script.tagged-events.js y formas combinadas como script.tagged-events.outbound-links.file-downloads.js. Los sitios existentes pueden seguir con ellos. Para sitios nuevos, usa el snippet por sitio de arriba. Es el camino que Plausible desarrolla activamente.

Persistencia de datos y copias de seguridad

Plausible guarda los datos en dos lugares:

  • PostgreSQL: cuentas de usuario, configuración de sitios, objetivos. Un conjunto de datos pequeño.
  • ClickHouse: los eventos de analítica. Este es el grueso de tus datos.

Ambos se ejecutan en contenedores con volúmenes persistentes gestionados por Coolify. Un redespliegue conserva tus datos.

Las copias de seguridad S3 de Coolify no cubren ClickHouse

Las copias de seguridad programadas a S3 de Coolify apuntan a Postgres. ClickHouse, que contiene todos los eventos, no está incluido. Para una instalación de un solo nodo, las opciones prácticas son un snapshot semanal del VPS, un stop-and-rsync del volumen plausible-events-data, o clickhouse-backup para copias nativas. No confíes en copias de archivos simples de un directorio de datos de ClickHouse en ejecución.

Una programación sencilla que funciona: copias S3 de Coolify para Postgres más snapshots semanales del VPS para el volumen de eventos. Si alguna vez restauras desde un snapshot, restaura ambos volúmenes desde el mismo punto en el tiempo.

Una nota de actualización: pasar de Plausible v2.x a v3.x requirió una subida de versión de la imagen de ClickHouse (la plantilla ahora usa la 24.12). Si actualizas un despliegue muy antiguo, haz snapshot de los volúmenes primero.

Actualizar Plausible

Seguridad: CVE-2026-8467 (CVSS 9.5)

Todas las versiones de Plausible CE desde v3.0.0 hasta v3.2.0 incluyen una dependencia vulnerable de phoenix_storybook. El endpoint expuesto /storybook permite ejecución remota de código no autenticada como el usuario de la app (CVE-2026-8467, GHSA-55hg-8qxv-qj4p, CVSS 9.5, publicado en mayo de 2026). La v3.2.1 elimina el endpoint por completo. Si no puedes actualizar ahora mismo, bloquea /storybook en el proxy inverso. Después de cualquier despliegue, ejecuta la comprobación de /storybook del paso 4.4. Para reforzar tu host Docker de forma más amplia, consulta cómo protegimos un servidor Docker frente a ataques reales.

El flujo de actualización en sí es corto: cambia la etiqueta de imagen en la configuración del servicio de Coolify (por ejemplo de v3.2.0 a v3.2.1) y vuelve a desplegar. Las migraciones se ejecutan al arrancar mediante db createdb && db migrate && run.

Verificación tras actualizar: repite las tres comprobaciones del paso 4.4. Quieres que /api/health devuelva 200, la nueva etiqueta de imagen en docker ps y que /storybook no devuelva 200.

Un detalle de v3.2.0 si pegaste el compose oficial: los ajustes de poca memoria de ClickHouse solo empezaron a aplicarse en v3.2.0 (antes se ignoraban silenciosamente). Actualiza los archivos del repositorio community-edition, no solo la imagen de la app.

Sigue los lanzamientos de Plausible CE para los parches de seguridad. v3.2.1 es una versión solo de seguridad; no hay motivo para quedarse atrás.

Solución de problemas comunes

El contenedor de ClickHouse se reinicia constantemente

La causa más común es una CPU sin SSE4.2 (x86-64) o NEON (ARM). ClickHouse no funciona en esas. Compruébalo con grep -o 'sse4_2' /proc/cpuinfo | head -1 en el host. Si no imprime nada, cambia a un plan o proveedor más nuevo. Segunda causa: RAM insuficiente. Revisa docker stats y dmesg -T | grep -i oom para ver eventos de kill.

Los contenedores son eliminados o el panel va lento

2 GB de RAM es el mínimo, y eso solo para Plausible. Con Coolify y cualquier otra cosa en la máquina, ve a 4 GB. Si docker stats muestra la memoria acercándose al límite o dmesg muestra el OOM killer, amplía el VPS o mueve los otros servicios a otro sitio.

Los emails nunca llegan

La plantilla de Coolify deja MAILER_ADAPTER en Bamboo.LocalAdapter por defecto, que escribe los emails en un archivo en lugar de enviarlos. Define las variables MAILER_EMAIL, SMTP_HOST_ADDR, SMTP_HOST_PORT, SMTP_USER_NAME, SMTP_USER_PWD y SMTP_HOST_SSL_ENABLED del paso 4.3 y vuelve a desplegar. Prueba lanzando un restablecimiento de contraseña después del cambio.

curl /api/health falla o el dominio devuelve 502

Casi siempre es DNS o TLS. Ejecuta dig +short analytics.yourdomain.com y confirma que devuelve la IP del servidor. Después dale a Traefik un par de minutos para emitir el certificado de Let’s Encrypt. Revisa también los logs de despliegue de Coolify por errores de proxy. Si el hostname está detrás del proxy de Cloudflare (nube naranja), desactívalo para este registro.

Actualizar desde Plausible v2.x

v3.x requirió una actualización de ClickHouse, y la plantilla ahora fija clickhouse/clickhouse-server:24.12-alpine. Haz snapshot de ambos volúmenes antes de cambiar las imágenes. El comportamiento exacto de la migración de volúmenes en despliegues antiguos de Coolify no es algo en lo que yo confiaría sin una copia de seguridad primero. Si algo va mal, restaura el snapshot y fija las imágenes antiguas.

/storybook devuelve 200 en mi instancia

Estás ejecutando v3.2.0 o anterior con un RCE crítico no autenticado expuesto (CVE-2026-8467). Actualiza a v3.2.1 ahora. Si no puedes actualizar de inmediato, bloquea la ruta /storybook en tu proxy inverso y programa la actualización. Después repite los comandos de verificación del paso 4.4.

Más tutoriales de Coolify

Si Plausible no encaja en tu stack, también puedes instalar Umami Analytics en Docker.

Conclusión

Plausible autoalojado en Coolify te da analítica centrada en la privacidad, sin cookies, sin límites de páginas vistas y sin factura recurrente. La plantilla de Docker Compose de un clic se encarga de las partes difíciles (ClickHouse, PostgreSQL, red, SSL). Tú defines el dominio, despliegas, ejecutas el health check y empiezas a medir.

Un VPS de 4 GB cuesta unos €5-8/mes y aloja Coolify más varios servicios. Plausible Cloud empieza en $9/mes por un sitio con 10k páginas vistas. El script se carga desde tu propio dominio, así que los bloqueadores de anuncios tienen muchas menos probabilidades de bloquearlo que con un servicio en la nube, y los visitantes nunca ven un banner de consentimiento de cookies. Para las listas de filtros más tercas, existe la opción del proxy.

Instala Plausible Analytics una vez, verifícalo y funciona.

DigitalOcean $100 Gratis Vultr $100 Gratis Hetzner 20 € de crédito gratis Hostinger VPS