Cómo instalar el software de análisis web Umami en Ubuntu 20.04

Introducción
Umami es una aplicación de análisis web alojada en el servidor y de código abierto escrita en Node.js. Se centra en ser simple, estar bien diseñada, ser rápida y estar centrada en la privacidad. Puede almacenar datos sobre los visitantes de su sitio web en una base de datos MySQL o PostgreSQL.
En este tutorial, instalará Umami y una base de datos PostgreSQL mediante Docker Compose. Luego, instalará Nginx para que actúe como proxy inverso para Umami. Por último, habilitará conexiones HTTPS seguras mediante 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:
- Un servidor Ubuntu 20.04, con el firewall UFW habilitado. Lea nuestra sección Configuración inicial del servidor con Ubuntu 20.04 para obtener más información sobre cómo configurar estos requisitos
- Docker instalado. Puede utilizar el Paso 1 de Cómo instalar y usar Docker en Ubuntu 20.04 para realizar esta tarea. Opcionalmente, puede seguir el Paso 2 de ese tutorial si desea que su usuario no root pueda ejecutar
docker
comandos sin usarsudo
- Docker Compose instalado. Siga el paso 1 de Cómo instalar y usar Docker Compose en Ubuntu 20.04 para instalar este software
Nota: estos pasos previos se pueden omitir si está utilizando la imagen Docker de un solo clic de DigitalOcean . Esta imagen tendrá Docker, Docker Compose y UFW ya instalados y configurados.
Inicie una nueva imagen de Docker en la región que desee, inicie sesión como usuario root y continúe con el tutorial. Opcionalmente, puede omitir sudo
partes de todos los comandos, pero no es necesario.
Por último, para habilitar SSL, necesitará un nombre de dominio que apunte a la dirección IP pública de su servidor. Debería ser algo como example.com
o umami.example.com
, por ejemplo. Si utiliza DigitalOcean, consulte nuestra Guía de inicio rápido de DNS para obtener información sobre cómo crear recursos de dominio en nuestro panel de control.
Cuando haya cumplido todos los requisitos previos, continúe con el Paso 1 , donde descargará e iniciará el software Umami.
Paso 1: Instalación de Umami y PostgreSQL con Docker Compose
El primer paso será clonar el repositorio Git de Umami, actualizar el docker-compose.yml
archivo de configuración y luego iniciar los contenedores Umami y PostgreSQL.
Descargarás el repositorio en el /opt
directorio. Usa el cd
comando para ir allí ahora:
- cd /opt
Luego usa el git
comando para clonar el repositorio desde GitHub:
- sudo git clone https://github.com/mikecao/umami.git
Esto incorporará todos los archivos de software y configuración en /opt/umami
. Muévase ahora al umami
directorio recién creado:
- cd umami
Ahora necesitas actualizar el docker-compose.yml
archivo del proyecto. Este archivo es lo que docker-compose
usa el comando para configurar y lanzar múltiples contenedores Docker a la vez. Necesitamos cambiar dos opciones en este archivo: la IP a la que se vincula Umami y un hash aleatorio que se usa como sal al cifrar cosas en la base de datos.
Antes de abrirlo docker-compose.yml
para editarlo, generemos un nuevo hash aleatorio para pegar en el archivo:
- openssl rand -base64 32
OutputtCgKyCWc/3C9VH+Ex0TysXsGEKQklQXm0H3nSnlR48g=
Para ello, se utiliza el openssl
comando para generar 32 caracteres aleatorios. Copie el resultado en el portapapeles y, a continuación, abra el archivo de configuración:
- sudo nano docker-compose.yml
Busque la HASH_SALT
opción, elimine el texto del marcador de posición y péguelo en el hash aleatorio que acaba de generar:
docker-compose.yml
. . . HASH_SALT: replace-me-with-a-random-string. . .
A continuación, busque la ports:
parte de la configuración:
docker-compose.yml
. . . ports: - "127.0.0.1:3000:3000". . .
Actualice el "3000:3000"
valor anteponiéndolo 127.0.0.1:
. Esto garantiza que Umami solo esté escuchando en la interfaz del host local y no esté disponible públicamente. Aunque tenga un firewall UFW configurado, debido a algunas peculiaridades en el funcionamiento de la red Docker, si no realizó este paso, su contenedor Umami sería accesible al público en el puerto 3000
.
Una vez completados esos cambios de configuración, guarde el archivo ( CTRL+O
luego ENTER
en nano
) y cierre el editor ( CTRL+X
).
Ahora, utiliza docker-compose
para iniciar tus dos contenedores:
- sudo docker-compose up --detach
La --detach
bandera indica docker-compose
que se creen los contenedores en segundo plano, separados de nuestra sesión de terminal:
Output. . .Creating umami_db_1 ... doneCreating umami_umami_1 ... done
Umami y PostgreSQL ya se están ejecutando. Puede comprobarlo utilizando el curl
comando para obtener la página de inicio de su nuevo contenedor Umami que se ejecuta en el host local :
- curl localhost:3000
Output!DOCTYPE htmlhtmlheadmeta charSet="utf-8"/ . . .
Si se envía un gran fragmento de HTML a su terminal, sabrá que el servidor Umami está en funcionamiento.
A continuación, configuraremos Nginx para realizar el proxy inverso de Umami localhost:3000
al público.
Paso 2: Instalación y configuración de Nginx
Colocar un servidor web como Nginx delante de su servidor Node.js 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 que envíe solicitudes a Umami, lo que significa que se encargará de entregar las solicitudes de sus usuarios a Umami y viceversa.
Primero, actualice su lista de paquetes, luego instale Nginx usando apt
:
- sudo apt update
- sudo apt install nginx
Permitir tráfico público a puertos 80
y 443
(HTTP y HTTPS) utilizando el perfil de aplicación UFW “Nginx Full”:
- sudo ufw allow "Nginx Full"
OutputRule addedRule added (v6)
A continuación, abra un nuevo archivo de configuración de Nginx en el /etc/nginx/sites-available
directorio. Lo llamaremos así, umami.conf
pero puede utilizar un nombre diferente:
- sudo nano /etc/nginx/sites-available/umami.conf
Pegue lo siguiente en el nuevo archivo de configuración y asegúrese de reemplazarlo your_domain_here
por el dominio que ha configurado para apuntar a su servidor Umami. Esto será algo como umami.example.com
, por ejemplo:
/etc/nginx/sites-available/umami.conf
server { listen 80; listen [::]:80; server_name your_domain_here; access_log /var/log/nginx/umami.access.log; error_log /var/log/nginx/umami.error.log; location / { proxy_pass http://localhost:3000; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }}
Por ahora, esta configuración es solo para HTTP, ya que dejaremos que Certbot se encargue de configurar SSL en el siguiente paso. El resto de la configuración establece las ubicaciones de registro y luego pasa todo el tráfico a http://localhost:3000
, la instancia de Umami que iniciamos en el paso anterior.
Guarde y cierre el archivo, luego habilite la configuración vinculándolo a /etc/nginx/sites-enabled/
:
- sudo ln -s /etc/nginx/sites-available/umami.conf /etc/nginx/sites-enabled/
Utilice nginx -t
para verificar que la sintaxis del archivo de configuración sea correcta:
- sudo nginx -t
Outputnginx: the configuration file /etc/nginx/nginx.conf syntax is oknginx: configuration file /etc/nginx/nginx.conf test is successful
Y por último, recarga el nginx
servicio para recoger la nueva configuración:
- sudo systemctl reload nginx
Tu sitio Umami ahora debería estar disponible en HTTP simple. Cárgalo y se verá así:http://your_domain_here
Ahora que su sitio está funcionando a través de HTTP, es momento de asegurar la conexión con los certificados Certbot y Let’s Encrypt.
Paso 3: Instalación de Certbot y configuración de certificados SSL
Gracias a Certbot y a la autoridad de certificación gratuita Let’s Encrypt, agregar el cifrado SSL a nuestra aplicación Umami solo requerirá dos comandos.
Primero, instale Certbot y su complemento Nginx:
- sudo apt install certbot python3-certbot-nginx
A continuación, ejecute certbot
el --nginx
modo y especifique el mismo dominio que utilizó en la server_name
configuración de Nginx:
- 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.
Luego, se te preguntará si deseas redirigir todo el tráfico HTTP a HTTPS. Depende de ti, pero en general es una opción recomendada y segura.
Después de eso, Let’s Encrypt confirmará tu solicitud y Certbot descargará tu certificado:
OutputCongratulations! You have successfully enabled https://umami.example.comYou should test your configuration at:https://www.ssllabs.com/ssltest/analyze.html?d=umami.example.com- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/umami.example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/umami.example.com/privkey.pem Your cert will expire on 2021-12-06. 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 adoptar la nueva configuración y los certificados. Recargue su sitio y debería cambiarlo a HTTPS automáticamente si eligió la opción de redireccionamiento.
Ahora su sitio es seguro y puede iniciar sesión con el usuario y la contraseña predeterminados (admin)umami
. Hágalo de inmediato y siga la documentación oficial de primer inicio de sesión para iniciar sesión y cambiar su contraseña de administrador por otra más segura.
Cuando inicies sesión por primera vez, verás un panel de control bastante simple:
Ha instalado y protegido correctamente su software de análisis Umami. En la conclusión de este tutorial, encontrará enlaces a la documentación que le permitirá comenzar a agregar su sitio a Umami y a agregar el fragmento de seguimiento de Umami a su sitio.
Conclusión
En este tutorial, lanzó la aplicación Umami y una base de datos PostgreSQL usando Docker Compose, luego configuró un proxy inverso Nginx y lo protegió usando certificados SSL Let’s Encrypt.
Además, ya deberías haber iniciado sesión y actualizado la contraseña predeterminada . Si no es así, hazlo ahora.
Luego, continúa con la documentación oficial para aprender cómo agregar un sitio web a Umami, luego comienza a recopilar datos instalando el código de seguimiento en tu sitio web.
Deja una respuesta