--- title: "Cómo instalar Plausible Analytics autohospedado con Docker" description: "Instala Plausible Community Edition con Docker en Ubuntu 24.04, obtén HTTPS automático, añade tu web y mide visitas sin cookies con copias de seguridad." category: "Hosting de Aplicaciones Web" language: es source: https://cubepath.com/es/docs/hosting-de-aplicaciones-web/instalacion-autohospedada-de-plausible-analytics updated: 2026-09-25 --- # Cómo instalar Plausible Analytics autohospedado con Docker Plausible Analytics es una herramienta de analítica web ligera y de código abierto que no usa cookies ni recopila datos personales, lo que simplifica cumplir el RGPD. En este tutorial instalarás Plausible Community Edition (CE) en Ubuntu 24.04 con Docker Compose, usando el certificado HTTPS automático que incluye, añadirás tu primer sitio web y programarás copias de seguridad. ## Requisitos previos Para seguir esta guía necesitas: - Un servidor con Ubuntu 24.04 LTS, por ejemplo un VPS de CubePath, con al menos 2 GB de RAM (ClickHouse, la base de datos de eventos, no funciona bien con menos) y 20 GB libres en disco. En x86_64 la CPU debe soportar SSE 4.2, algo que cumplen todos los procesadores actuales. - Un usuario no root con privilegios `sudo` que pertenezca al grupo `docker`. - Docker Engine y el plugin Docker Compose instalados desde el repositorio oficial de Docker. - Un subdominio para el panel, por ejemplo `plausible.example.com`, con un registro DNS A apuntando a la IP del servidor. En esta guía se usa `your_domain`. - Los puertos 80 y 443 libres: Plausible CE los usará directamente, así que no debe haber otro servidor web escuchando en ellos. ## Paso 1: Descargar Plausible Community Edition El proyecto publica la configuración de Docker Compose en el repositorio `plausible/community-edition`, con una etiqueta por versión. Consulta la última versión estable en la página de releases de GitHub (`https://github.com/plausible/community-edition/releases`) y clónala. En este ejemplo se usa `v3.0.1`: ```bash sudo git clone -b v3.0.1 --single-branch https://github.com/plausible/community-edition /opt/plausible-ce sudo chown -R "$USER":"$USER" /opt/plausible-ce cd /opt/plausible-ce ``` El archivo `compose.yml` define tres servicios: `plausible` (la aplicación), `plausible_db` (PostgreSQL, con usuarios y sitios) y `plausible_events_db` (ClickHouse, con los eventos de visitas). No edites `compose.yml`; así las actualizaciones serán un simple cambio de etiqueta. Toda la personalización irá en `.env` y en `compose.override.yml`. ## Paso 2: Configurar la URL y la clave secreta Crea el archivo `.env` con la URL pública del panel y una clave secreta aleatoria de 64 bytes. Cambia `your_domain` antes de ejecutarlo: ```bash cat > .env < Nota: los puertos que Docker publica se abren mediante sus propias reglas de iptables, sin pasar por UFW. En esta configuración solo se publican el 80 y el 443; PostgreSQL y ClickHouse quedan en la red interna de Docker. Arranca los servicios en segundo plano: ```bash docker compose up -d ``` Comprueba que los tres contenedores están en marcha y que las bases de datos aparecen como `healthy`: ```bash docker compose ps ``` ```output NAME SERVICE STATUS plausible-ce-plausible-1 plausible Up About a minute plausible-ce-plausible_db-1 plausible_db Up About a minute (healthy) plausible-ce-plausible_events_db-1 plausible_events_db Up About a minute (healthy) ``` En el primer arranque Plausible crea las bases de datos y obtiene el certificado. Sigue los logs hasta que dejen de aparecer migraciones: ```bash docker compose logs -f plausible ``` Pulsa `Ctrl+C` para salir. Después verifica que el panel responde por HTTPS con un certificado válido: ```bash curl -sI https://your_domain | head -1 ``` La respuesta debe ser un código `200` o `302`, sin errores de certificado. Si `curl` informa de un problema TLS, espera un minuto y revisa los logs: la causa suele ser que el DNS todavía no apunta al servidor. ## Paso 4: Crear la cuenta de administrador y cerrar el registro Abre `https://your_domain/register` en el navegador y crea tu cuenta con tu correo y una contraseña robusta. Este primer usuario será el propietario de la instancia. Una vez creada la cuenta, impide que otras personas se registren. Con `invite_only` solo podrán crear cuenta quienes reciban una invitación a un sitio: ```bash echo "DISABLE_REGISTRATION=invite_only" >> .env docker compose up -d --force-recreate plausible ``` Comprueba que el registro ya no está disponible visitando de nuevo `https://your_domain/register` en una ventana privada. ## Paso 5: Añadir tu sitio web y el script de seguimiento En el panel, pulsa **Add website**, escribe el dominio del sitio que quieres medir (por ejemplo `example.com`, sin `https://` ni `www`) y continúa. Plausible te mostrará el fragmento de código que debes insertar; cópialo tal cual desde el panel, ya que es el que corresponde a tu versión. Para Plausible CE 3.0 tiene esta forma: ```html ``` Colócalo dentro de la etiqueta `` de todas las páginas del sitio. En WordPress puedes usar el plugin oficial de Plausible o añadirlo en la cabecera del tema; en frameworks como Next.js o Astro, en el layout principal. Para verificar la instalación, visita tu web en una ventana privada y abre el panel de Plausible: la visita aparece en la sección de visitantes en tiempo real en pocos segundos. Si no aparece, abre las herramientas de desarrollo del navegador, pestaña **Red**, y comprueba que la petición a `/api/event` devuelve el código `202`. > Nota: los bloqueadores de anuncios pueden impedir la carga de `script.js`. Servirlo desde un subdominio propio, como en esta guía, reduce el problema pero no lo elimina. ### Medir eventos personalizados Para contar acciones como registros o descargas, define primero un objetivo en **Site settings > Goals > Add goal > Custom event** con el nombre del evento, por ejemplo `Signup`. Después envía el evento desde tu web. Añade este fragmento justo después del script principal para que las llamadas funcionen aunque el script aún no se haya cargado: ```html ``` Y llama a la función cuando ocurra la acción: ```html ``` ## Paso 6: Configurar el correo (opcional) Plausible envía invitaciones, restablecimiento de contraseña e informes semanales por correo. Para usar tu propio servidor SMTP, añade estas variables a `.env` con tus datos: ```ini MAILER_EMAIL=plausible@example.com SMTP_HOST_ADDR=smtp.your_mail_provider.com SMTP_HOST_PORT=587 SMTP_USER_NAME=your_smtp_user SMTP_USER_PWD=your_smtp_password ``` Recrea el contenedor para aplicar los cambios: ```bash docker compose up -d --force-recreate plausible ``` Consulta la wiki del repositorio `plausible/community-edition` para el resto de opciones de correo, como el uso de TLS implícito en el puerto 465. ## Paso 7: Programar copias de seguridad Los datos de Plausible viven en dos volúmenes de Docker: `db-data` (PostgreSQL, con usuarios, sitios y objetivos) y `event-data` (ClickHouse, con todas las visitas). Compose les antepone el nombre del directorio del proyecto. Compruébalo: ```bash docker volume ls --filter name=plausible-ce ``` ```output DRIVER VOLUME NAME local plausible-ce_db-data local plausible-ce_event-data local plausible-ce_event-logs local plausible-ce_plausible-data ``` Copiar los archivos de una base de datos en ejecución puede producir una copia inconsistente, así que el script detiene el proyecto durante unos segundos, archiva los volúmenes y lo vuelve a arrancar. La instrucción `trap` garantiza que los servicios arranquen de nuevo aunque falle la copia: ```bash sudo nano /usr/local/bin/plausible-backup ``` ```bash #!/usr/bin/env bash set -euo pipefail BACKUP_DIR="/var/backups/plausible" COMPOSE_DIR="/opt/plausible-ce" STAMP="$(date +%F_%H%M)" mkdir -p "$BACKUP_DIR" chmod 700 "$BACKUP_DIR" cd "$COMPOSE_DIR" docker compose stop trap 'docker compose start' EXIT for vol in db-data event-data; do docker run --rm \ -v "plausible-ce_${vol}:/data:ro" \ -v "$BACKUP_DIR":/backup \ alpine tar -czf "/backup/plausible-${vol}-${STAMP}.tar.gz" -C /data . done cp .env "$BACKUP_DIR/plausible-env-$STAMP" chmod 600 "$BACKUP_DIR/plausible-env-$STAMP" find "$BACKUP_DIR" -type f -mtime +14 -delete ``` Hazlo ejecutable, pruébalo y prográmalo para las 03:15, cuando el tráfico suele ser menor: ```bash sudo chmod 750 /usr/local/bin/plausible-backup sudo /usr/local/bin/plausible-backup sudo ls -lh /var/backups/plausible echo '15 3 * * * root /usr/local/bin/plausible-backup' | sudo tee /etc/cron.d/plausible-backup ``` Mientras dura la copia, el script de seguimiento no puede registrar visitas, así que perderás los eventos de ese minuto. Copia también los archivos a otro servidor o almacenamiento externo. ## Actualizar Plausible Lee siempre las notas de la versión antes de actualizar: algunas versiones mayores requieren pasos manuales. Para una actualización normal, haz una copia, descarga las etiquetas nuevas y cambia a la versión deseada: ```bash cd /opt/plausible-ce sudo /usr/local/bin/plausible-backup git fetch --tags origin git checkout v3.0.2 docker compose up -d ``` Sustituye `v3.0.2` por la versión a la que quieras actualizar. Como no has modificado `compose.yml`, el cambio de etiqueta no genera conflictos, y tus ajustes en `.env` y `compose.override.yml` se conservan. ## Solución de problemas - **El certificado no se emite**: el registro DNS no apunta al servidor o el puerto 80 está bloqueado u ocupado por otro servicio. Revisa `docker compose logs plausible` y `sudo ss -tlnp | grep ':80 '`. - **El contenedor de ClickHouse se reinicia**: normalmente es falta de memoria. Comprueba `docker compose logs plausible_events_db` y `free -h`, y amplía la RAM del servidor. - **No se registran visitas**: el `data-domain` del script debe coincidir exactamente con el dominio dado de alta en Plausible. ## Conclusión Tienes Plausible Community Edition funcionando en Ubuntu 24.04 con HTTPS automático, el registro cerrado, tu sitio midiendo visitas sin cookies y copias de seguridad diarias. Como siguientes pasos, puedes crear objetivos de conversión, invitar a tu equipo desde **Site settings > People** y activar los informes semanales por correo.