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.
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.
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.
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.
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«.
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.
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;
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:
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.
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.
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 ''
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:
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
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.
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:
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«.
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.
Haz clic en Crear sitio para crear el primer rastreador.
Deberías ver el código del rastreador generado por Fathom.
A continuación se detallan las analíticas del sitio de Fathom.
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.