Cómo instalar Plausible Analytics en Ubuntu 22.04

Introducción

Plausible Analytics es una aplicación de análisis web de código abierto y autohospedada escrita en Elixir que se centra en la simplicidad y la privacidad. Almacena datos sobre los visitantes de tu sitio web en bases de datos PostgreSQL y ClickHouse.

En este tutorial, instalarás Plausible usando Docker Compose, luego instalarás Nginx para actuar como proxy inverso para la aplicación Plausible. Finalmente, habilitarás conexiones HTTPS seguras utilizando Certbot para descargar y configurar certificados SSL de la Autoridad de Certificación Let’s Encrypt.

Prerrequisitos

Para completar este tutorial, primero necesitarás lo siguiente:

Nota: Estos pasos previos pueden omitirse si estás utilizando la Imagen de Docker de un solo clic de DigitalOcean. Esta imagen ya tendrá Docker, Docker Compose y UFW instalados y configurados.

Inicia una nueva imagen de Docker en la región de tu elección, luego inicia sesión como usuario root y continúa con el tutorial. Opcionalmente, podrías omitir las partes de sudo de todos los comandos, pero no es necesario.

Finalmente, para habilitar SSL necesitarás un nombre de dominio apuntando a la dirección IP pública de tu servidor. Debería ser algo como example.com o plausible.example.com, por ejemplo. Si estás utilizando DigitalOcean, consulta nuestra Iniciación rápida de DNS para obtener información sobre cómo crear recursos de dominio en nuestro panel de control.

Cuando hayas satisfecho todos los requisitos previos, procede al Paso 1, donde descargarás e iniciarás el software Plausible.

Paso 1 – Instalación de Plausible Analytics con Docker Compose

Plausible ha creado un repositorio Git con todos los archivos de configuración necesarios para autohospedar el software. Tu primer paso será clonar este repositorio en tu servidor, actualizar dos archivos de configuración y luego iniciar los contenedores de la aplicación y la base de datos de Plausible.

Inicia sesión en tu servidor ahora.

Primero, utiliza el comando cd para navegar al directorio /opt:

  1. cd /opt

Luego, utiliza el comando git para clonar el repositorio desde GitHub en un nuevo directorio dentro de /opt llamado plausible:

  1. sudo git clone https://github.com/plausible/hosting plausible

Esto descargará todos los archivos de configuración necesarios en /opt/plausible. Ingresa al directorio recién creado:

  1. cd plausible

El primer archivo que necesitamos editar es plausible-conf.env, un archivo que tiene algunas variables de configuración que necesitamos establecer.

Antes de abrir el archivo para editarlo, genera un nuevo hash aleatorio:

  1. openssl rand 64 | base64 -w 0 ; echo

Esto utiliza el comando openssl para generar 64 caracteres aleatorios, y el comando base64 para codificarlos en base64. Copia la salida al portapapeles, luego abre el archivo de configuración:

  1. sudo nano plausible-conf.env

El archivo contiene cinco variables que deberás completar:

plausible-conf.env
ADMIN_USER_EMAIL=your_email_here
ADMIN_USER_NAME=admin_username
ADMIN_USER_PWD=admin_password
BASE_URL=https://your_domain_here
SECRET_KEY_BASE=paste_your_random_characters_here

Completa el correo electrónico, nombre de usuario, contraseña y URL base, luego pega los caracteres aleatorios que generaste con openssl.

Nota: La contraseña que especifiques aquí debe tener al menos seis caracteres de longitud. Si estás utilizando una dirección IP sin un nombre de dominio, asegúrate de precederla con http://.

Guarda el archivo (CTRL+O luego ENTER en nano) y cierra tu editor (CTRL+X).

Existen más opciones de configuración que puedes añadir a este archivo, pero este conjunto mínimo te permitirá comenzar. Más información sobre cómo configurar Plausible a través de plausible-conf.env se puede encontrar en la documentación oficial de autohospedaje de Plausible Analytics.

Ahora necesitas actualizar el archivo docker-compose.yml. Este archivo es lo que utiliza el comando docker-compose para configurar y lanzar múltiples contenedores Docker. Necesitamos cambiar una opción en este archivo: la IP a la que Plausible se enlaza.

  1. sudo nano docker-compose.yml

Encuentra la sección que define el contenedor de Plausible. Comenzará con plausible:. En esa sección, encuentra la definición de ports: y actualízala a lo siguiente:

docker-compose.yml
    ports:
      - 127.0.0.1:8000:8000

Esto asegura que Plausible solo esté escuchando en la interfaz localhost, y no esté disponible públicamente. Aunque tengas configurado un cortafuegos UFW, debido a algunas peculiaridades en cómo funciona la red de Docker, si no realizas este paso, tu contenedor de Plausible sería accesible para el público en el puerto 8000, y solo queremos que sea accesible a través del proxy Nginx que configurarás en el siguiente paso.

Guarda y cierra el archivo docker-compose.yml, luego utiliza docker-compose para descargar, configurar y lanzar los contenedores:

  1. sudo docker compose up --detach

La bandera --detach le indica a docker-compose que cree los contenedores en segundo plano, desvinculados de nuestra sesión terminal:

Output
. . . Starting plausible_plausible_events_db_1 ... done Starting plausible_plausible_db_1 ... done Starting plausible_mail_1 ... done Starting plausible_plausible_1 ... done

Ahora el contenedor de la aplicación y todos sus contenedores de soporte de correo y base de datos deberían estar en funcionamiento. Puedes verificar esto utilizando el comando curl para obtener la página de inicio de tu nuevo contenedor de Plausible en localhost:

  1. curl http://localhost:8000
Output
<html><body>You are being <a href="/login">redirected</a>.</body></html>

Si se muestra algo de HTML en tu terminal, sabrás que el servidor está activo y funcionando.

A continuación, configuraremos Nginx para proxi inverso Plausible desde localhost:8000 hacia el público.

Paso 2 — Instalación y configuración de Nginx

Colocar un servidor web como Nginx delante de tu servidor Elixir puede mejorar el rendimiento al descargar el almacenamiento en caché, la compresión y el servicio de archivos estáticos a un proceso más eficiente. Vamos a instalar Nginx y configurarlo para servir como proxy inverso de solicitudes a Plausible, lo que significa que se encargará de manejar las solicitudes de tus usuarios hacia Plausible y viceversa.

Primero, actualiza tu lista de paquetes, luego instala Nginx usando apt:

  1. sudo apt update
  2. sudo apt install nginx

Permite el tráfico público a los puertos 80 y 443 (HTTP y HTTPS) usando el perfil de aplicación “Nginx Full” de UFW:

  1. sudo ufw allow "Nginx Full"
Output
Rule added Rule added (v6)

A continuación, abre un nuevo archivo de configuración de Nginx en el directorio /etc/nginx/sites-available. Le llamaremos plausible.conf, pero podrías usar un nombre diferente:

  1. sudo nano /etc/nginx/sites-available/plausible.conf

Pega lo siguiente en el nuevo archivo de configuración, asegurándote de reemplazar your_domain_here con el dominio que has configurado para apuntar a tu servidor Plausible. Esto debería ser algo como plausible.example.com, por ejemplo:

/etc/nginx/sites-available/plausible.conf
server {
    listen       80;
    listen       [::]:80;
    server_name  your_domain_here;

    access_log  /var/log/nginx/plausible.access.log;
    error_log   /var/log/nginx/plausible.error.log;

    location / {
      proxy_pass http://localhost:8000;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

Esta configuración es solo HTTP por ahora, ya que dejaremos que Certbot se encargue de configurar SSL en el próximo paso. El resto de la configuración establece las ubicaciones de registro y luego pasa todo el tráfico a http://localhost:8000, la instancia de Plausible que iniciamos en el paso anterior.

Guarda y cierra el archivo, luego habilita la configuración vinculándola en /etc/nginx/sites-enabled/:

  1. sudo ln -s /etc/nginx/sites-available/plausible.conf /etc/nginx/sites-enabled/

Usa nginx -t para verificar que la sintaxis del archivo de configuración sea correcta:

  1. sudo nginx -t
Output
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

Y finalmente, recarga el servicio nginx para recoger la nueva configuración:

  1. sudo systemctl reload nginx

Su sitio Plausible ahora debería estar disponible en HTTP simple. Cargue http://su_domino_aquí y se verá así:

Ahora que tiene su sitio funcionando sobre HTTP, es hora de asegurar la conexión con Certbot y certificados Let’s Encrypt.

Paso 3 — Instalación de Certbot y Configuración de Certificados SSL

Gracias a Certbot y la autoridad de certificación gratuita Let’s Encrypt, agregar encriptación SSL a nuestra aplicación Plausible solo requerirá dos comandos.

Primero, instale Certbot y su complemento Nginx:

  1. sudo apt install certbot python3-certbot-nginx

A continuación, ejecute certbot en modo --nginx, y especifique el mismo dominio que utilizó en la configuración server_name de Nginx:

  1. sudo certbot --nginx -d your_domain_here

Se le pedirá que acepte los términos de servicio de Let’s Encrypt y que ingrese una dirección de correo electrónico.

Después, se le preguntará si desea redirigir todo el tráfico HTTP a HTTPS. Depende de usted, pero generalmente se recomienda y es seguro hacerlo.

Después de eso, Let’s Encrypt confirmará su solicitud y Certbot descargará su certificado:

Output
Congratulations! You have successfully enabled https://plausible.example.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=plausible.example.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/plausible.example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/plausible.example.com/privkey.pem Your cert will expire on 2022-12-05. To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot renew" - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le

Certbot recargará automáticamente Nginx para recoger la nueva configuración y certificados. Recargue su sitio y debería cambiarse automáticamente a HTTPS si eligió la opción de redireccionamiento.

Tu sitio ahora está seguro y es seguro iniciar sesión con los detalles de usuario predeterminados que configuraste en Paso 1. Luego se te pedirá que verifiques tu registro, y se enviará un código de verificación al correo electrónico que configuraste.

Por defecto, este correo electrónico se envía directamente desde tu servidor, lo que puede causar problemas debido a diversas medidas de prevención de spam. Si no recibes el correo electrónico, verifica tu carpeta de spam. Si tampoco está allí, es posible que necesites configurar detalles SMTP más adecuados en el archivo plausible-conf.env. Consulta la documentación oficial de autohospedaje de Plausible para obtener detalles sobre la configuración del correo.

Cuando inicies sesión correctamente, verás una indicación para configurar tu primer sitio web con Plausible:

Has instalado y asegurado correctamente tu software de análisis de Plausible.

Conclusión

En este tutorial, lanzaste la aplicación de Plausible Analytics y sus contenedores auxiliares asociados utilizando Docker Compose, luego configuraste un proxy inverso de Nginx y lo aseguraste utilizando certificados SSL de Let’s Encrypt.

Ahora estás listo para configurar tu sitio web y agregar el script de seguimiento de Plausible Analytics. Consulta la documentación oficial de Plausible Analytics para obtener más información sobre cómo utilizar el software y configurar tu sitio.

Source:
https://www.digitalocean.com/community/tutorials/how-to-install-plausible-analytics-on-ubuntu-22-04