Cómo instalar Umami Privacy Analytics en Ubuntu 24.04

Umami es una plataforma de analítica web gratuita y de código abierto escrita en Nodejs. Es fácil de usar e instalar y proporciona una interfaz de usuario amigable. Está construida sobre la privacidad como alternativa a servicios como Google Analytics. Te permite desplegar tu analítica web en tu servidor con tus propias opciones de base de datos, que pueden ser PostgreSQL o MySQL.

En esta guía, aprenderás a instalar la analítica centrada en la privacidad Umami en el servidor Ubuntu 24.04.

Requisitos previos

Para completar esta guía, asegúrate de que tienes

  • Un servidor Ubuntu 24.04.
  • Un usuario no root con privilegios de administrador.
  • Un nombre de dominio apuntando a una dirección IP del servidor.

Instalación de dependencias

Umami es una analítica web centrada en la privacidad escrita en JavaScript y Node.js. Admite MySQL/MariaDB y PostgreSQL como base de datos. En esta sección, instalarás las dependencias para Umami, incluyendo Node.js, NPM, PostgreSQL, el servidor web Apache y Git.

Primero, ejecuta el siguiente comando para actualizar tu lista de paquetes de Ubuntu.

sudo apt update

Ahora ejecuta el siguiente comando para instalar dependencias como Node.js, NPM, Python, Git y PostgreSQL. Introduce Y para confirmar la instalación.

sudo apt install nodejs npm git apache2 postgresql

instalar dependencias

Una vez finalizada la instalación, comprueba el servicio Apache con lo siguiente.

sudo systemctl is-enabled apache2
sudo systemctl status apache2

En la siguiente imagen, puedes ver que Apache se está ejecutando y está habilitado.

comprobar apache2

Ahora comprueba el servidor PostgreSQL con el siguiente comando.

sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

Verás el servicio PostgreSQL enabled y active(exited).

comprobar postgresql

Por último, comprueba la versión de Node.js y NPM con el siguiente comando:

nodejs --version
npm --version

Puedes ver que Node.js 18.19 y NPM 9.2 están instalados.

comprueba node.js

Configurar la base de datos PostgreSQL y el usuario

Una vez que hayas instalado las dependencias, crearás una nueva base de datos PostgreSQL y un nuevo usuario para Umami. Utilizarás la shell PostgreSQL psql para crear una nueva base de datos y un nuevo usuario.

Accede al servidor PostgreSQL con el siguiente comando:

sudo -u postgres psql

Ahora ejecuta las siguientes consultas para crear un nuevo usuario umami y la base de datos umamidb. Asegúrate de cambiar la siguiente contraseña con tus datos.

CREATE ROLE umami LOGIN ENCRYPTED PASSWORD 'password';
CREATE DATABASE umamidb OWNER=umami;

crear base de datos y usuario

A continuación, comprueba la lista de bases de datos y usuarios disponibles con las siguientes consultas. Verás el usuario umami con la base de datos umamidb disponible en tu servidor PostgreSQL.

\du
\l

Por último, escribe q para salir del servidor PostgreSQL.

listar base de datos y usuario

Instalación de umami

En esta sección, instalarás el gestor de paquetes yarn, descargarás el código fuente de Umami e instalarás las dependencias de JavaScript con yarn, y luego compilarás e iniciarás Umami desde la línea de comandos.

Ejecuta el siguiente comando para instalar el gestor de paquetes yarn.

npm install -g yarn

Crea un nuevo usuario y grupo del sistema umami con el comando siguiente.

sudo adduser --system --group --no-create-home --shell /sbin/nologin umami

Ahora ejecuta el siguiente comando git para descargar el código fuente de Umami al directorio /var/www/umami y entra en él.

git clone https://github.com/umami-software/umami.git /var/www/umami
cd /var/www/umami

A continuación, ejecuta el siguiente comando yarn para instalar las dependencias de JavaScript para Umami.

yarn install

A continuación puedes ver la instalación de las dependencias JavaScript para Umami.

instalar dependencias

Ahora, crea un nuevo archivo .env con el siguiente editor nano.

nano .env

Añade lo siguiente para configurar PostgreSQL como base de datos del Umami.

DATABASE_URL=postgresql://umami:StrongPasswordUmami@localhost:5432/umamidb

Guarda el archivo y sal de él cuando hayas terminado.

A continuación, ejecuta el siguiente comando para compilar Umami.

yarn build

construcción de hilo

Al terminar, inicia Umami con el siguiente comando – Esto iniciará Umami en el puerto 3000:

yarn start

empezar umami

Abre tu navegador web y visita http://SERVER-IP:3000/. Si la instalación se ha realizado correctamente, verás el inicio de sesión de Umami como el siguiente:

Vuelve al servidor terminal y pulsa Ctrl+c para finalizar el proceso.

página de acceso

Por último, ejecuta el siguiente comando para cambiar la propiedad del directorio /var/www/umami al usuario umami.

sudo chown -R umami:umami /var/www/umami

Ejecutar umami como un servicio systemd

En esta guía, ejecutarás umami como un servicio systemd en segundo plano. Así que ahora crearás un nuevo archivo de servicio para Umami.

Crea un nuevo archivo de servicio systemd /etc/systemd/system/umami.service con el siguiente comando del editor nano.

sudo nano /etc/systemd/sistema/umami.service

Introduce en el archivo la configuración que aparece a continuación.

[Unit]
Description=Umami Website Analytics
After=network.target postgresql.service

[Service]
Type=simple
ExecStart=/usr/bin/npm start
Restart=always
# Consider creating a dedicated user for umami here:
User=umami
Group=umami
#Environment=NODE_ENV=production
WorkingDirectory=/var/www/umami

[Install]
WantedBy=multi-user.target

Cuando hayas terminado, guarda el archivo y sal de él.

Ahora ejecuta el siguiente comando para recargar el gestor systemd y aplicar el nuevo servicio umami.service.

sudo systemctl daemon-reload

sistemad umami

Por último, ejecuta el siguiente comando para iniciar, habilitar y verificar el estado de umami.service.

sudo systemctl enable --now umami
sudo systemctl status umami

Como puedes ver a continuación, el umami.service está habilitado y en ejecución. Y por defecto, ejecutándose en el puerto 3000.

comprobar estado

Configurar Apache como proxy inverso

Ahora que Umami se está ejecutando en segundo plano, deberás configurar Apache como proxy inverso para Umami.

En primer lugar, ejecuta el siguiente comando para habilitar los módulos de Apache que se utilizarán como proxy inverso.

sudo a2enmod proxy proxy_http ssl rewrite headers

módulos apache

Ahora, crea un nuevo archivo de host virtual de Apache /etc/apache2/sites-available/umami.conf con el editor nano.

sudo nano /etc/apache2/sitios-disponibles/umami.conf

Añade la configuración que aparece a continuación y asegúrate de cambiar la opción ServerName por tu nombre de dominio.

<VirtualHost *:80>
  ServerName analytics.hwdomain.io

  Options -Indexes
  ProxyRequests on

  ProxyPass / http://localhost:3000/
  ProxyPassReverse / http://localhost:3000/
</VirtualHost>

Guarda el archivo y sal de él cuando hayas terminado.

A continuación, ejecuta el siguiente comando para activar el archivo de host virtual umami.conf y verifica la sintaxis de tu Apache. Si tu sintaxis es correcta, verás una salida Syntax is OK.

sudo a2ensite umami.conf
sudo apachectl configtest

Por último, reinicia el servidor web Apache para aplicar tus cambios utilizando el siguiente comando.

sudo systemctl restart apache2

configurar apache

Configurar UFW

Antes de configurar UFW, asegúrate de que está en funcionamiento. En esta sección, habilitarás el perfil Apache Full para permitir el acceso HTTP y HTTPS.

Ejecuta el siguiente comando para abrir los puertos HTTP y HTTPS a través del perfil UFW Apache Full.

sudo ufw allow 'Apache Completo'

Ahora vuelve a cargar UFW y comprueba su estado con el comando siguiente. Verás que UFW es active con el perfil Apache Full activado.

sudo ufw estado

Asegurar Umami con HTTPS

Para asegurar Umami, utilizarás HTTPS. En esta sección, generarás certificados SSL/TLS a través de letsencrypt. Los usuarios del dominio local pueden utilizar certificados autofirmados.

Instala certbot y python3-certbot-apache con el siguiente comando. Introduce Y para confirmar la instalación.

sudo apt install certbot python3-certbot-apache

Ahora ejecuta el siguiente comando certbot para generar certificados SSL/TLS para el Umami. Asegúrate de cambiar el nombre de dominio y la dirección de correo electrónico con tu información.

sudo certbot --apache --agree-tos --no-eff-email --redirect --hsts --staple-ocsp --email [email protected] -d analytics.hwdomain.io

Una vez completado el proceso, tus certificados SSL estarán disponibles en el directorio /etc/letsencrypt/live/domain.com, y tu instalación de Umami debería estar protegida con HTTPS.

Acceder al Umami

Abre tu navegador web y visita https://analytics.hwdomain.io/ para acceder a tu instalación de Umami. Inicia sesión con el usuario por defecto admin y la contraseña umami.

inicio de sesión

Si tienes éxito, verás el panel de Umami como el siguiente:

salpicadero

Para añadir nuevas analíticas para tus sitios web, haz clic en el botón Sitios web > Añadir sitios web. Para cambiar la contraseña por defecto, haz clic en Configuración > Usuarios > Editar.

Conclusión

¡Enhorabuena! Has instalado la analítica centrada en la privacidad Umami en el servidor Ubuntu 24.04. Umami se está ejecutando con el servidor PostgreSQL y Apache como proxy inverso. Además, has asegurado Umami con HTTPS a través de certbot y letsencrypt.

También te podría gustar...