Búsqueda de sitios web

Cómo instalar el análisis de sitios web centrado en la privacidad de Fathom en Debian 11


En esta página

  1. Requisitos previos
  2. Instalación del servidor PostgreSQL
  3. Configuración de la base de datos y el usuario de PostgreSQL
  4. Descargando el binario de Fathom
  5. Configuración de análisis web de Fathom
  6. Creación del usuario administrador de Fathom
  7. Instalación y configuración de Nginx como proxy inverso
  8. Asegurando Fathom con Firewall
  9. Proteger Fathom Web Analytics con SSL/TLS Letsencrypt
  10. Iniciar sesión en Fathom Website Analytics
  11. Conclusión

Fathom es un análisis web centrado en la privacidad que proporciona datos limpios y concisos sobre sus sitios web. Es un software de análisis de sitios web simple que proporciona informes y métricas perspicaces sobre sus sitios. Fathom se crea como una alternativa a Google Analytics, pero no invade la privacidad de los usuarios y no compromete los datos de los visitantes. Cumple con GDPR, sin necesidad de banners de cookies.

Fathom está disponible en dos versiones, la versión de código abierto que se puede instalar en su servidor y la versión pro que se puede comprar en el sitio web oficial de Fathom. Los usuarios notables de análisis del sitio web de Fathom son IBM, Laravel, GitHub, Hoshicord, BOSCH, McLaren, VueJS y muchos más.

Este tutorial le muestra cómo instalar Fathom Privacy-Cocused Website Analytics en un servidor Debian 11. Realizará la instalación de Fathom con PostgreSQL como base de datos, el servidor web Nginx como proxy inverso y también asegurará Fathom con certificados SSL/TLS a través de Certbot y Letsencrypt.

En el camino, también aprenderá cómo configurar la autenticación en PostgreSQL, crear una base de datos y un usuario, y agregar servicios systemd a un sistema Linux.

requisitos previos

Para completar este tutorial, debe tener los siguientes requisitos:

  • Un servidor Debian 11: este ejemplo utiliza un servidor Debian con el nombre de host fathome-server.
  • Un usuario no root con privilegios de administrador sudo/root.
  • Un nombre de dominio dirigido a una dirección IP de servidor: este ejemplo utiliza un subdominio fathom.hwdomain.io.

Eso es todo. Comencemos la instalación de Fathom.

Instalación del servidor PostgreSQL

Fathom es un análisis web simple centrado en la privacidad creado con Golang Preact. En una instalación predeterminada, Fathom usa SQLite como base de datos, pero también es posible usar RDBMS como MySQL/MariaDB y PostgreSQL.

Para este ejemplo, ejecutará Fathom con PostgreSQL. Entonces, ahora instalará y configurará PostgreSQL en su servidor Debian.

Para comenzar, ejecute el siguiente comando apt para actualizar y actualizar su índice de paquetes de Debian.

sudo apt update

Ahora instale los paquetes de PostgreSQL a través del comando apt a continuación. Esto instalará el paquete de servidor PostgreSQL predeterminado del repositorio de Debian 11, que es PostgreSQL 13.

sudo apt install postgresql

Cuando se le solicite, ingrese y para confirmar y presione ENTER para continuar.

Después de instalar PostgreSQL, se le pedirá que configure la autenticación para el servidor. Para lograr esto, debe modificar los archivos de configuración de PostgreSQL que están disponibles en el directorio /etc/postgresql/13/main/ (PostgreSQL predeterminado en Debian).

Abra el archivo /etc/postgresql/13/main/postgresql.conf usando su editor de texto/código preferido. Este ejemplo utiliza nano como editor predeterminado.

sudo nano /etc/postgresql/13/main/postgresql.conf

Descomente el parámetro password_encryption y cambie el valor predeterminado a scram-sha-256.

password_encryption = scram-sha-256

Guarde y cierre el archivo /etc/postgresql/13/main/postgresql.conf cuando termine. Para usuarios nano, presione Ctrl+x, luego y, y presione ENTER.

A continuación, abra el archivo de configuración de autenticación de PostgreSQL /etc/postgresql/13/main/pg_hba.conf utilizando el siguiente editor nao.

sudo nano /etc/postgresql/13/main/pg_hba.conf

Cambie el método de autenticación predeterminado para el host 127.0.0.1/32 y ::1/128 a scram-sha-256. Esto especificará el método de autenticación usando scram-sha-256 para cualquier conexión desde localhost al servidor PostgreSQL.

Cuando utilice el parámetro -h 127.0.0.1, estará conectado a PostgreSQL como host y utilizará la autenticación scram-sha-256. Cuando solo usa el comando psql sin especificar el host de PostgreSQL, se conectará como la conexión local y usará el método de autenticación de pares.

# TYPE  DATABASE        USER            ADDRESS                 METHOD
# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            scram-sha-256
# IPv6 local connections:
host    all             all             ::1/128                 scram-sha-256

Guarde y cierre el archivo /etc/postgresql/13/main/pg_hba.conf cuando haya terminado.

A continuación, ejecute la siguiente utilidad de comando systemctl para reiniciar el servidor PostgreSQL y aplicar los cambios.

sudo systemctl restart postgresql

Luego verifique el servidor PostgreSQL para asegurarse de que esté habilitado y en ejecución.

sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

Si PostgreSQL se está ejecutando y habilitado, verá el resultado en su terminal.

Con el servidor PostgreSQL ejecutándose y habilitado, comenzará a crear una nueva base de datos PostgreSQL y un nuevo usuario para el análisis web de Fathom.

Configuración de la base de datos y el usuario de PostgreSQL

En este paso, configurará la contraseña para el postgres de usuario predeterminado de PostgreSQL a través del shell de PostgreSQL. Luego, creará una nueva base de datos y un nuevo usuario que se utilizará para la instalación de análisis web de Fathom.

Inicie sesión en el shell de PostgreSQL mediante el siguiente comando. Con el comando sudo -u postgres psql, significa que ejecutará el comando psql como el usuario postgres.

cd /var/lib/postgresql
sudo -u postgres psql

Después de iniciar sesión, debe estar conectado a la base de datos postgres predeterminada y su solicitud de PostgreSQL debe convertirse en postgres=#.

Ahora ejecute la siguiente consulta para crear una nueva contraseña para el usuario predeterminado de PostgreSQL postgres. Asegúrese de cambiar la contraseña en la siguiente consulta.

ALTER USER postgres WITH PASSWORD '';

A continuación, ejecute las siguientes consultas de PostgreSQL para crear un nuevo usuario y base de datos de PostgreSQL. En este ejemplo, creará un nuevo usuario de PostgreSQL fathom con la base de datos fathomdb.

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

Por último, ejecute la siguiente consulta para verificar la lista de bases de datos y usuarios en su servidor PostgreSQL.

\l
\du

Listado de bases de datos en el servidor PostgreSQL a través de \l consulta - Y puede ver que se crea la nueva base de datos fathomdb.

Listado de usuarios en PostgreSQL a través de la consulta \du: puede ver el nuevo usuario de PostgreSQL añadido a PostgreSQL.

En este punto, ya ha instalado y configurado el servidor PostgreSQL. En el siguiente paso, comenzará la instalación de Fathom.

Descargar el binario de Fathom

Fathom es una aplicación pequeña y simple escrita en Go y viene como un solo archivo binario que puede ejecutar en cualquier momento en su sistema Linux.

Ahora descargará Fathom a su servidor Debian.

Visite la página de lanzamiento de Fathom en GitHub y seleccione la versión preferida para su instalación. Este ejemplo utilizará la última versión de Fathom v1.3.0, que es la última versión durante este escrito.

Descargue el archivo binario de Fathom usando el comando wget a continuación.

wget https://github.com/usefathom/fathom/releases/download/v1.3.0-rc.1/fathom_1.3.0-rc.1_linux_amd64.tar.gz

Una vez descargado, ejecute el siguiente comando tar para extraer Fathom al directorio /usr/local/bin. Luego, haga que el archivo binario de brazas sea ejecutable a través del comando chmod.

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

Por último, el siguiente comando para asegurarse de que puede ejecutar el archivo binario brazas. Luego, verifique la versión de brazas.

which fathom
fathom --version

Cuando el comando sea exitoso, debería ver la ruta completa del archivo binario de fathom /usr/local/bin/fathom. Además, verá la versión de Fathom en su terminal.

Con Fathom descargado, a continuación configurará la instalación de análisis web de Fathom.

Configuración de análisis web de Fathom

En este paso, configurará la instalación de análisis web de Fathom. Configurará el directorio de datos, configurará la base de datos PostgreSQL con Fathom y, por último, ejecutará Fathom como un servicio systemd.

Al ejecutar Fathom como un servicio systemd, puede administrar fácilmente Fathom a través de la utilidad de comando systemctl. Puede iniciar, habilitar y verificar el estado de Fathom a través de systemctl.

Primero, ejecute el siguiente comando para crear un usuario nuevo en su sistema Debian. Además, asegúrese de configurar la contraseña para su nuevo usuario.

sudo useradd -m -s /bin/bash fathom
sudo passwd fathom

Ahora ejecute el siguiente comando para iniciar sesión en el nuevo usuario fathom y comenzar a configurar la instalación de Fathom.

su - fathom

Primero, ejecute el siguiente comando para generar una cadena aleatoria que se usará como FATHOM_SECRET. Asegúrese de copiar la salida generada.

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

Ahora cree un nuevo directorio ~/data y mueva el directorio de trabajo a él. Luego, cree un nuevo archivo .env a través del siguiente comando del editor nano.

mkdir -p ~/data; cd ~/data
nano .env

Agregue las siguientes líneas al archivo. Asegúrese de cambiar los detalles de la base de datos y el usuario de PostgreSQL, y también reemplace FATHOM_SECRET\ con su cadena generada en la parte superior.

Además, si está ejecutando Fathomn en producción, asegúrese de cambiar FATHOM_DEBUG a falso. También puede configurar FATHOM_DATABASE_SSLMODE si está utilizando bases de datos con conexiones SSL/TLS seguras. Este ejemplo utiliza el mismo servidor que Fathom, por lo que FATHOM_DATABASE_SSLMODE está configurado para deshabilitarse.

FATHOM_GZIP=true
FATHOM_DEBUG=true
FATHOM_DATABASE_DRIVER="postgres"
FATHOM_DATABASE_NAME="fathomdb"
FATHOM_DATABASE_USER="fathom"
FATHOM_DATABASE_PASSWORD="p4ssw0rdFathom"
FATHOM_DATABASE_HOST="127.0.0.1"
FATHOM_DATABASE_SSLMODE="disable"
FATHOM_SECRET="13tUIGpjCY9miJcSWW6S"

Guarde y cierre el archivo .env cuando termine.

Ahora escriba exit para cerrar la sesión del usuario fathom y volver a la sesión raíz.

A continuación, cree un nuevo archivo de servicio systemd /etc/systemd/system/fathom.service usando el comando nano editor a continuación.

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

Agregue las siguientes líneas al archivo. Con esto, ejecutará el análisis web de Fathom en localhost con el puerto predeterminado 8080, y el directorio de datos para Fathom está configurado en /home/fathom/data.

[Unit]
Description=Starts the fathom server
Requires=network.target
After=network.target

[Service]
Type=simple
User=fathom
Restart=always
RestartSec=3
WorkingDirectory=/home/fathom/data
ExecStart=/usr/local/bin/fathom server

[Install]
WantedBy=multi-user.target

Guarde y salga del archivo cuando termine.

Ahora ejecute el siguiente comando para recargar el administrador systemd y aplicar el nuevo archivo de servicio fathom.service.

sudo systemctl daemon-reload

Después de eso, inicie y habilite el servicio fathom usando el siguiente comando systemctl.

sudo systemctl start fathom
sudo systemctl enable fathom

Verifique el servicio fathom para asegurarse de que se está ejecutando.

sudo systemctl status fathom

Debería recibir un resultado como este: el estado del servicio fathom se está ejecutando y ahora está habilitado, lo que significa que el servicio se ejecutará automáticamente al iniciar.

Creando usuario administrador de Fathom

Con Fathom ejecutándose como un servicio systemd, ahora estará listo para crear un nuevo usuario administrador para su instalación de Fathom.

Para crear un usuario administrador de Fathom, debe estar en el directorio de datos de Fathom. Por lo tanto, ejecute el siguiente comando para iniciar sesión como usuario de Fathom. Luego, mueva el directorio de trabajo a ~/data.

su - fathom
cd ~/data

Ejecute el siguiente comando fathom para agregar un nuevo usuario administrador para el análisis web de Fathom. Asegúrese de cambiar la dirección de correo electrónico y la contraseña en la siguiente línea de comando.

fathom user add --email="" --password="AliceFathomP4ssw0rd"

Si tiene éxito, recibirá un resultado similar a este. Puede ver el mensaje que le muestra el estado de la conexión a la base de datos fathomdb de PostgreSQL y se crea el nuevo usuario administrador [email .

En este punto, ya ha terminado la instalación de Fathom con el servidor de base de datos PostgreSQL. También ha creado un usuario administrador para Fathom.

En el siguiente paso, instalará y configurará Nginx como un proxy inverso para el análisis web de Fathom que se ejecuta en localhost con el puerto predeterminado 8080.

Instalación y configuración de Nginx como proxy inverso

En este paso, instalará el servidor web Nginx y configurará el bloque del servidor Nginx que se utilizará como proxy inverso para el análisis web de Fathom.

Ejecute el siguiente comando apt para instalar el paquete Nginx en su servidor Debian. Cuando se le solicite, ingrese y para confirmar y presione ENTER para continuar.

sudo apt install nginx

Después de instalar Nginx, cree un nuevo archivo de configuración de bloque de servidor /etc/nginx/sites-disponible/fathom usando el siguiente comando del editor nano.

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

Agregue las siguientes líneas al y asegúrese de cambiar el nombre de dominio con su dominio.

server {
    listen 80;
    server_name fathom.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;
    }
}

Guarde el archivo y salga del editor cuando termine.

A continuación, ejecute el siguiente comando para activar el bloque del servidor Nginx /etc/nginx/sites-disponible/fathom. Luego, verifique la configuración de Nginx para asegurarse de tener las configuraciones de Nginx adecuadas.

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

Si tiene éxito, verá una salida como prueba exitosa - sintaxis correcta en su terminal.

Ahora ejecute la siguiente utilidad de comando systemctl para reiniciar el servicio Nginx y aplicar los cambios.

sudo systemctl restart nginx

Después de eso, verifique el servicio Nginx para asegurarse de que el servicio se está ejecutando a través de la siguiente utilidad de comando systemctl.

sudo systemctl is-enabled nginx
sudo systemctl status nginx

Debería recibir un resultado como que el servicio Nginx se está ejecutando y está habilitado, lo que significa que el servicio se iniciará automáticamente al iniciarse.

Ahora que el servidor web Nginx se está ejecutando como un proxy inverso para el análisis web de Fathom, a continuación, configurará el firewall UFW y abrirá los puertos HTTP y HTTPS.

Asegurando Fathom con Firewall

En este paso, instalará UFW en su servidor Debian. Luego, abra los servicios SSH, HTTP y HTTPS para permitir el acceso al servidor.

Instale el paquete ufw a través del comando apt a continuación. Ingrese y cuando se le solicite y presione ENTER para continuar.

sudo apt install ufw

Una vez instalado UFW, ejecute el siguiente comando para agregar aplicaciones OpenSSH y WWW Full. La aplicación OpenSSH abrirá el puerto SSH predeterminado 22 y la aplicación WWW Full abrirá los servicios HTTP y HTTPS.

sudo ufw allow OpenSSH
sudo ufw allow 'WWW Full'

Cuando se agrega, debe obtener una salida como Reglas actualizadas.

Ahora ejecute el siguiente comando ufw para iniciar y habilitar el firewall UFW. Cuando se le solicite, ingrese y para confirmar y presione ENTER para continuar.

sudo ufw enable

Debería recibir un resultado como Firewall está activo y habilitado al iniciar el sistema, lo que significa que el firewall UFW está iniciado y habilitado. Esto también permite que UFW se ejecute automáticamente en el arranque.

Por último, ejecute el siguiente comando ufw para verificar la lista de puertos y servicios abiertos en UFW.

sudo ufw status

Recibirá las aplicaciones OpenSSH y WWW Full agregadas al firewall UFW.

Protección de Fathom Web Analytics con SSL/TLS Letsencrypt

En este paso, protegerá el análisis web de Fathom con certificados SSL/TLS de Letsencrypt. Debe instalar Certbot y un complemento adicional de Certbot Nginx en su servidor Debian para lograr esto.

Antes de generar certificados SSL/TLS, asegúrese de que su dominio apunte a la dirección IP del servidor. Además, asegúrese de tener una dirección de correo electrónico que se utilizará para registrarse en Letsencrypt.

Ahora ejecute el siguiente comando apt para instalar Certbot y el complemento Certbot Nginx. Ingrese y cuando se le solicite y presione ENTER para continuar.

sudo apt install certbot python3-certbot-nginx

Después de instalar Certbot, ejecute el siguiente comando para generar certificados SSL/TLS para su nombre de dominio. Además, asegúrese de cambiar el nombre de dominio y la dirección de correo electrónico en el siguiente comando.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email  -d fathom.hwdomain.io

Con este comando, se generarán los nuevos certificados SSL/TLS para su nombre de dominio. Además, esto configurará automáticamente HTTPS en su bloque de servidor Nginx y configurará la redirección automática de HTTP a HTTPS para su bloque de servidor Fathom. Los certificados Certbot SSL/TLS se generan en el directorio /etc/elstencrypt/live/fathom.hwdomain.io/.

Iniciar sesión en Fathom Website Analytics

Abra su navegador web y visite el nombre de dominio de su instalación de análisis web de Fathom (es decir, https://fathom.hwdomain.io). Debería aparecer la página de inicio de sesión de Fathom.

Ingrese su dirección de correo electrónico y contraseña, luego haga clic en Iniciar sesión.

Cuando la dirección de correo electrónico y la contraseña sean correctas, debe obtener el panel de administración de Fathom.

Con esto, ha instalado correctamente el análisis web de Fathom con PostgreSQL y Nginx.

Conclusión

En este tutorial, ha instalado Fathom de análisis web centrado en la privacidad y de código abierto en un servidor Debian 11. También instaló y configuró PostgreSQL como el servidor de base de datos back-end para el análisis web de Fathom. Y en la interfaz para el acceso de clientes, ha configurado Nginx como un proxy inverso. También aseguró el análisis del sitio web de Fathom con certificados SSL/TLS a través de Certbot y Letsencrypt.

Con esto en mente, ahora puede agregar nuevas pistas y monitorear su sitio web y visitantes. También puede integrar Fathom con múltiples CMS (sistemas de gestión de contenido) como WordPress y Drupal. Además, puede integrarse con foros como Discourse.