Cómo instalar Fathom Privacy Focused Web Analytics en Debian 12

Fathom es un programa de análisis web centrado en la privacidad que proporciona datos claros y concisos sobre tus sitios web. Es un sencillo programa de analítica web que proporciona informes y métricas esclarecedoras sobre tus sitios. Fathom se ha creado como alternativa a Google Analytics, pero no invade la privacidad de los usuarios ni compromete los datos de los visitantes. Cumple la normativa GDPR y no requiere banners de cookies.

Fathom está disponible en dos versiones, la versión de código abierto que puedes instalar en tu servidor, y la versión pro que puedes adquirir en el sitio web oficial de Fathom. Algunos usuarios destacados de Fathom son IBM, Laravel, GitHub, Hoshicord, BOSCH, McLaren, VueJS y muchos más.

En esta guía, repasaremos paso a paso la instalación de Fathom Privacy Focused Web Analytics en el servidor Debian 12. Repasaremos la instalación de Fathom con PostgreSQL como base de datos y Nginx como proxy inverso. Además, protegeremos Fathom con certificados SSL/TLS de Letsencrypt.

Requisitos previos

Antes de continuar, asegúrate de que tienes lo siguiente:

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

Instalación de dependencias

Fathom es una analítica web centrada en la privacidad, construida sobre Golang y Preact. Admite bases de datos como PostgreSQL, MySQL y SQLite, y puede ejecutarse con el proxy inverso Nginx. Ahora vas a instalar dependencias de paquetes para Fathom, como PostgreSQL, Nginx, Certbot y UFW (Cortafuegos sin complicaciones).

Primero, ejecuta el siguiente comando apt para actualizar tu repositorio Debian.

sudo apt update

Ahora instala las dependencias ejecutando el siguiente comando. Con esto, instalarás el servidor PostgreSQL, el servidor web Nginx, Certbot, el plugin Nginx Certbot y UFW (Uncomplicated Firewall).

sudo apt install postgresql nginx certbot python3-certbot-nginx ufw

Escribe y para proceder a la instalación.

instalar dependencias

Una vez instaladas las dependencias, comprueba que todas ellas están disponibles en tu sistema.

Verifica el servicio postgresql utilizando el siguiente comando para asegurarte de que el servicio se está ejecutando y está habilitado.

sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

Aparecerá el siguiente resultado en tu terminal, que indica que postgresql se está ejecutando y está habilitado.

comprobar postgresql

A continuación, verifica el servicio nginx ejecutando el siguiente comando.

sudo systemctl is-enabled nginx
sudo systemctl status nginx

Se imprimirá un resultado similar en tu terminal que indica que el servicio nginx se está ejecutando y está habilitado.

comprobar nginx

Por último, verifica el certbot ejecutando el siguiente comando. Esto localizará el archivo binario ejecutable de certbot y comprobará la versión actual de certbot que está instalada en tu sistema.

which certbot
certbot --version

La salida mostrada te indicará que Certbot 2. 1 está instalado en /usr/bin/certbot.

comprobar certbot

Configurar el cortafuegos

Después de instalar las dependencias, configurarás UFW para asegurar tu máquina Debian. Abrirás puertos para SSH, HTTP y HTTPS en tu sistema.

Ejecuta el siguiente comando para abrir puertos para los protocolos SSH, HTTP y HTTPS. El perfil OpenSSH abrirá el puerto 22/tcp, y el perfil WWW Full abrirá tanto HTTP como HTTPS – puertos 80 y 443.

sudo ufw allow OpenSSH
sudo ufw allow "WWW Full"

Ahora ejecuta el siguiente comando para iniciar y habilitar UFW en tu sistema Debian.

sudo ufw enable

Escribe y para proceder a las confirmaciones. Cuando lo consigas, deberías recibir el mensaje «El cortafuegos está activo y habilitado al iniciar el sistema«.

start activar ufw

Por último, comprueba el estado de UFW utilizando el comando que aparece a continuación.

sudo ufw status

La salida activa indica que UFW se está ejecutando y está habilitado, también deberías ver los perfiles OpenSSH y WWW Full añadidos a UFW.

comprobar ufw

Crear base de datos y usuario PostgreSQL

En el siguiente paso, crearás una nueva base de datos PostgreSQL y el usuario que utilizará Fathom. Para ello, debes iniciar sesión en el servidor PostgreSQL mediante la línea de comandos psql.

Ejecuta el siguiente comando para iniciar sesión en el servidor PostgreSQL.

sudo -u postgres psql

Crea una nueva base de datos fathomdb y un usuario fathom utilizando las siguientes consultas PostgreSQL. asegúrate de cambiar la contraseña en la siguiente consulta.

CREATE USER fathom WITH CREATEDB CREATEROLE PASSWORD 'password';
CREATE DATABASE fathomdb OWNER fathom;

crear usuario y base de datos

Ejecuta ahora las siguientes consultas para verificar la lista de bases de datos y usuarios disponibles en el servidor PostgreSQL.

\du
\l

Si la base de datos y el usuario están creados, se presentará la siguiente salida:

comprobar usuario y base de datos

Escribe quit para salir del servidor PostgreSQL.

Tras crear la base de datos y el usuario, ejecuta el siguiente comando para iniciar sesión en PostgreSQL con el usuario fathom y la base de datos fathomdb. Introduce la contraseña de tu usuario de base de datos cuando se te solicite.

sudo -u postgres psql -U fathom -h 127.0.0.1 -d fathomdb

Una vez conectado al servidor PostgreSQL, ejecuta la siguiente consulta para verificar tu conexión.

\conninfo

Tras ejecutar el comando, se mostrará la siguiente salida, que indica que estás conectado a la base de datos fathomdb con el usuario fathom.

verificar la conexión del usuario

Vuelve a escribir quit para salir del servidor PostgreSQL.

Descarga del archivo binario de Fathom

Fathom está escrito en Golang y Preact, y está disponible como un único archivo binario que puedes descargar e instalar fácilmente en tu sistema.

Visita la página de Fathom en GitHub y obtén la URL de descarga del paquete binario de Fathom. A continuación, descárgalo mediante el siguiente comando wget. En este ejemplo, descargarás Fathom 1.3.1.

wget https://github.com/usefathom/fathom/releases/download/v1.3.1/fathom_1.3.1_linux_amd64.tar.gz

Una vez descargado, extrae el paquete binario de Fathom a /usr/local/bin/fathom y hazlo ejecutable mediante el siguiente comando.

tar -C /usr/local/bin -xzf fathom_1.3.1_linux_amd64.tar.gz
chmod +x /usr/local/bin/fathom

Por último, ejecuta el siguiente comando para verificar la ubicación del archivo binario de Fathom y la versión actual de Fathom que te has descargado.

which fathom
fathom --version

La siguiente salida te muestra que Fathom 1.3.1 está instalado en /usr/local/bin/fathom.

descargar fathom

Configurar Fathom

En el siguiente paso, configurarás Fathom:

  • Integrando Fathom con la base de datos PostgreSQL.
  • Ejecutar Fathom en segundo plano como un servicio systemd.
  • Añadiendo un usuario administrador para tu instalación de Fathom.

Integración con PostgreSQL como base de datos

Fathom admite varias bases de datos, como SQLite (por defecto), MySQL y MariaDB. En esta sección, configurarás el directorio de instalación de Fathom e integrarás Fathom con el servidor de bases de datos PostgreSQL.

Ejecuta el siguiente comando para crear un nuevo usuario de sistema fathom que se utilizará para ejecutar tu instalación de Fathom.

sudo useradd -r -d /opt/fathom fathom

Ahora crea un nuevo directorio principal /opt/fathom y cambia la propiedad al usuario fathom. El directorio /opt/fathom se utilizará para almacenar los datos de la instalación de Fathom.

sudo mkdir -p /opt/fathom
sudo chown -R fathom:fathom /opt/fathom

Después, ejecuta el siguiente comando para generar un secreto aleatorio para Fathom. Asegúrate de copiar el resultado porque lo necesitarás para proteger Fathom.

head /dev/urandom | tr -dc A-Za-z0-9 | head -c 20 ; echo ''

configurar fathom

A continuación, dirígete al directorio /opt/fathom.

cd /opt/fathom

A continuación, crea un nuevo directorio /opt/fathom/data y un nuevo archivo /opt/fathom/data/.env utilizando el siguiente comando.

sudo -u fathom mkdir -p /opt/fathom/data
sudo -u fathom nano /opt/fathom/data/.env

Introduce la siguiente configuración y asegúrate de cambiar los detalles del nombre, usuario y contraseña de la base de datos PostgreSQL.

FATHOM_GZIP=true
FATHOM_DEBUG=true
FATHOM_DATABASE_DRIVER="postgres"
FATHOM_DATABASE_NAME="fathomdb"
FATHOM_DATABASE_USER="fathom"
FATHOM_DATABASE_PASSWORD="password"
FATHOM_DATABASE_HOST="127.0.0.1"
FATHOM_DATABASE_SSLMODE="disable"
FATHOM_SECRET="BWTtur9A1qWtXG6656q4"

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

Por último, ejecuta el siguiente comando para asegurarte de que la configuración de Fathom se ha realizado correctamente.

cd /opt/fathom/data
sudo -u fathom fathom server

Tras ejecutar el comando, Fathom debería ejecutarse en localhost con el puerto por defecto 8080, y se imprimirá la siguiente salida en tu terminal:

prueba braza

Pulsa Ctrl+c para finalizar el proceso.

Ejecutar Fathom en segundo plano como servicio Systemd

En la siguiente sección, crearás un nuevo archivo de servicio systemd que se utilizará para ejecutar Fathom en segundo plano. De este modo, podrás gestionar Fathom fácilmente mediante la utilidad systemctl.

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

sudo nano /etc/systemd/system/fathom.service

Introduce la siguiente configuración en el archivo.

[Unit]
Description=Starts the fathom server
Requires=network.target
After=network.target
[Service]
Type=simple
User=fathom
Restart=always
RestartSec=3
WorkingDirectory=/opt/fathom/data
ExecStart=/usr/local/bin/fathom server

[Install]
WantedBy=multi-user.target

Guarda y cierra el archivo cuando hayas terminado.

A continuación, ejecuta el siguiente comando systemctl para recargar el gestor systemd y aplicar los cambios que has realizado.

sudo systemctl daemon-reload

Una vez recargado el gestor systemd, ejecuta el siguiente comando systemctl para iniciar y habilitar el servicio fathom. Esto ejecutará Fathom en segundo plano en localhost con el puerto por defecto 8080.

sudo systemctl start fathom
sudo systemctl enable fathom

fathom systemd

Verifica el servicio fathom utilizando el siguiente comando para asegurarte de que el servicio se está ejecutando y está habilitado.

sudo systemctl is-enabled fathom
sudo systemctl status fathom

Si fathom se está ejecutando y está habilitado, aparecerá el siguiente mensaje.

verificar braza

Añadir usuario administrador de Fathom

Ahora que Fathom se está ejecutando en segundo plano como un servicio, la siguiente sección es crear un usuario administrador para tu instalación de Fathom. Esto puede hacerse a través de la línea de comandos de Fathom.

Para crear un usuario de Fathom, puedes ejecutar la línea de comandos fathom desde el directorio de datos de fathom.

Mueve tu directorio de trabajo actual a /opt/fathom/data.

cd /opt/fathom/data

Ejecuta el siguiente comando para crear un usuario administrador para tu instalación de Fathom. Asegúrate de cambiar la dirección de correo electrónico y la contraseña con el siguiente comando.

sudo -u fathom fathom user add --email="[email protected]" --password="password"

El comando utilizará el archivo .env para conectarse al servidor PostgreSQL. Una vez creado el usuario, deberías obtener una confirmación como la siguiente:

crear admin fathom

Configurar Nginx como Proxy Inverso

Llegados a este punto, ya has terminado la configuración de Fathom. En el siguiente paso configurarás Nginx como proxy inverso para tu instalación de Fathom. Antes de continuar, asegúrate de que tienes un nombre de dominio apuntando a la dirección IP del servidor.

Crea un nuevo bloque de configuración del servidor Nginx /etc/nginx/sites-available/fathom utilizando el comando nan editor que aparece a continuación.

sudo nano /etc/nginx/sites-available/fathom

Inserta la siguiente configuración y asegúrate de cambiar el nombre de dominio dentro de la opción server_name.

server {
    listen 80;
    server_name analytics.hwdomain.io;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080;
}
}

Cuando hayas terminado, guarda y sal del archivo.

Ahora ejecuta el siguiente comando para activar el archivo de bloqueo del servidor /etc/nginx/sites-available/fathom y verifica la sintaxis de Nginx.

sudo ln -s /etc/nginx/sites-available/fathom /etc/nginx/sites-enabled/
sudo nginx -t

Si la sintaxis es correcta, debería imprimirse en tu terminal la salida«la sintaxis es correcta – la prueba se ha realizado correctamente«.

configurar nginx

A continuación, ejecuta el siguiente comando para reiniciar el servicio Nginx y aplicar los cambios que has realizado. Tras ejecutar el comando, tu instalación de Fathom debería ser accesible desde tu nombre de dominio.

sudo systemctl restart nginx

Por último, ejecuta el siguiente comando certbot para asegurar la instalación de Fathom con certificados SSL/TLS de Letsencrypt. Asegúrate de cambiar el nombre de dominio y los datos de la dirección de correo electrónico con tu información.

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

Una vez finalizado el proceso, tus certificados SSL/TLS estarán disponibles en el directorio /etc/letsencrypt/live/domain.com. Además, el archivo de bloque del servidor Nginx /etc/nginx/sites-available/fathom se configura con HTTPS automáticamente a través del plugin Certbot Nginx.

Acceder a Fathom

Inicia tu navegador web preferido y visita el nombre de dominio de tu instalación de Fathom, como http://analytics.hwdomain.io/. Se te redirigirá automáticamente a una conexión HTTPS y aparecerá la página de inicio de sesión de Fathom.

Introduce tu dirección de correo electrónico de administrador y tu contraseña, y haz clic en Iniciar sesión.

inicio de sesión en fathom

Haz clic en Crear sitio para crear el primer rastreador.

añadir nuevo sitio

Deberías ver el código del rastreador generado por Fathom.

código de seguimiento del sitio

A continuación se detallan las analíticas del sitio de Fathom.

fathom site analytics

Desde aquí, puedes añadir y establecer nuevos rastreadores para tus sitios web.

Conclusión

Para concluir, has completado la instalación de la analítica web centrada en la privacidad de Fathom en el servidor Debian 12 con servidor de base de datos PostgreSQL y Nginx como proxy inverso. También has asegurado la instalación con certificados SSl/TLS de Letsencrypt y configurado UFW (Uncomplicated Firewalld) en tu servidor Debian. Puedes añadir un nuevo rastreador e implementarlo en tus sitios web.

También te podría gustar...