Instalación de Plausible mediante docker

Advertencia: Este artículo tiene más de 365 días.

Ya he escrito sobre varios servicios open source auto hospedados para recolectar estadistas para sitios web, como pueden ser Shynet y Umami. Sinceramente estaba muy contento con el funcionamiento de Umami pero cuando migre el blog desde el servidor NAS de Synology a una Raspberry Pi me encontré con el problema de que no existía una imagen docker de Umami para la arquitectura arm, por el contrario, Plausible si cuenta con ella.

Al igual que Umami, Plausible es de código abierto , sin cookies y totalmente compatible con GDPR, CCPA y PECR.

Despliegue

El stack necesario para el despliegue de Plausible lo realizo en Portainer con el siguiente código:

    version: "3.3"
    services:
      mail:
        image: bytemark/smtp
        restart: always
    
      plausible_db:
        # supported versions are 12, 13, and 14
        image: postgres:14-alpine
        restart: always
        volumes:
          - /home/carlos/docker/plausible/db-data:/var/lib/postgresql/data
        environment:
          - POSTGRES_PASSWORD=postgres
    
      plausible_events_db:
        image: clickhouse/clickhouse-server:22.6-alpine
        restart: always
        volumes:
          - /home/carlos/docker/plausible/event-data:/var/lib/clickhouse
          - /home/carlos/docker/plausible/clickhouse/clickhouse-config.xml:/etc/clickhouse-server/config.d/logging.xml:ro
          - /home/carlos/docker/plausible/clickhouse/clickhouse-user-config.xml:/etc/clickhouse-server/users.d/logging.xml:ro
        ulimits:
          nofile:
            soft: 262144
            hard: 262144
    
    
      plausible:
        image: plausible/analytics:latest
        restart: always
        command: sh -c "sleep 10 && /entrypoint.sh db createdb && /entrypoint.sh db migrate && /entrypoint.sh run"
        depends_on:
          - plausible_db
          - plausible_events_db
          - mail
        ports:
          - 8000:8000
        environment:
          # ADMIN_USER_EMAIL: <admin-mail>
          # ADMIN_USER_NAME: <admin-user>
          # ADMIN_USER_PWD: <admin-pwd>
          BASE_URL: https://dominio.com
          SECRET_KEY_BASE: jtyyzgCoYjJPqs4sCS/hUit+uOAwJSA2uiO2arv0efwg3+z06vY7YqZA..........
          DISABLE_REGISTRATION: true
    
    volumes:
      db-data:
        driver: local
      event-data:
        driver: local
      geoip:
        driver: local

Configura las rutas de los volúmenes según tu configuración

  • BASE_URL: Debe ser la URL base donde se puede acceder a esta instancia, incluido <http://> o <https://>) el nombre de dominio y, opción almente, un puerto. Si no se específica ningún puerto, se utilizará el 8000 predeterminado

  • SECRET_KEY_BASE Para generar la KEY

        openssl rand -base64 64 | tr -d `\n` ; echo
    
        jtyyzgCoYjJPqs4sCS/hUit+uOAwJSA2uiO2arv0efwg3+z06vY7YqZAhgbnJQMyxfwFC2MaXePUckm6v3LXrg==
  • DISABLE_REGISTRATION: true , deshabilita el registro de nuevos usuarios, excepto el primero.

Primeros pasos

La primera vez debemos de registrar un nuevo usuario

img

Y los datos de nuestro sitio web

img

Tras ingresar los datos de nuestro sitio web se mostrará un script que debemos de incrustar entre las etiquetas html <HEAD> de las páginas web que deseemos que registren las estadísticas.

img

Por ejemplo para el tema de este blog, hugo-ficurinia, basta con añadir el script en el fichero de configuración config.toml.

    # enable analytics using Plausible
    plausibleScriptUrl = "https://something.com/..."
    plausibleDomain = "example.com"

Ahora solo queda esperar que visiten tu sitio web para empezar a recolectar las estadísticas

img

img

Espero que te haya gustado, pasa un gran día 🐧