Cómo instalar Fathom Analytics en Ubuntu 18.04 LTS
Fathom es una plataforma de análisis web de código abierto autoalojada que proporciona estadísticas sencillas y útiles del sitio web sin rastrear ni almacenar la información personal de tus usuarios. Es una muy buena alternativa a Google Analytics con una sencilla interfaz web que puede ser utilizada por pequeñas y medianas empresas. Fathom te da un control total sobre tus datos sin necesidad de utilizar soluciones de terceros. Fathom te ofrece las principales páginas, los principales referentes, la tasa de rebote y el tiempo medio de permanencia en tu sitio web.
En este tutorial, aprenderemos a instalar Fathom analytics en un servidor Ubuntu 18.04.
Requisitos
- Un servidor con Ubuntu 18.04.
- Una dirección IP estática 192.168.0.103 configurada en tu servidor.
- Una contraseña de root en tu servidor.
Cómo empezar
Antes de empezar, tendrás que actualizar tu sistema con la última versión. Puedes hacerlo ejecutando el siguiente comando:
apt-get update -y
apt-get upgrade -y
Una vez que tu servidor esté actualizado, reinicia tu servidor para aplicar los cambios.
Instalar Nginx y MariaDB
En primer lugar, tendrás que instalar Nginx y MariaDB en tu servidor. Puedes instalarlos ejecutando el siguiente comando:
apt-get install nginx mariadb-server -y
Una vez instalados ambos paquetes, inicia el servicio de MariaDB y Nginx y habilítalos para que se inicien en el arranque con el siguiente comando:
systemctl start nginx
systemctl start mariadb
systemctl enable nginx
systemctl enable mariadb
Configurar MariaDB
Por defecto, MariaDB no está asegurada. Por lo tanto, tendrás que asegurarlo. Puedes hacerlo ejecutando el script mysql_secure_installation:
mysql_secure_installation
Este script cambiará tu contraseña actual de root, eliminará los usuarios anónimos y no permitirá el inicio de sesión de root de forma remota, como se muestra a continuación:
Enter current password for root (enter for none): Set root password? [Y/n]: N Remove anonymous users? [Y/n]: Y Disallow root login remotely? [Y/n]: Y Remove test database and access to it? [Y/n]: Y Reload privilege tables now? [Y/n]: Y
Una vez que MariaDB esté asegurada, entra en el shell de MariaDB con el siguiente comando:
mysql -u root -p
Introduce tu contraseña de root, luego crea una base de datos y un usuario para fathom con el siguiente comando:
MariaDB [(none)]> CREATE DATABASE fathom;
MariaDB [(none)]> CREATE USER 'fathomuser'@'localhost' IDENTIFIED BY 'password';
A continuación, concede todos los privilegios a la base de datos de fathom con el siguiente comando:
MariaDB [(none)]> GRANT ALL ON fathom.* TO 'fathomuser'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
A continuación, vacía los privilegios y sal del shell de MariaDB con el siguiente comando:
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]>EXIT;
Instalar y configurar Fathom
En primer lugar, tendrás que descargar la última versión del binario de Fathom del repositorio Git. Puedes descargarlo con el siguiente comando:
wget https://github.com/usefathom/fathom/releases/download/latest-development/fathom-linux-amd64
Una vez completada la descarga, mueve el binario descargado al directorio /usr/local/bin/ con el siguiente comando:
mv fathom-linux-amd64 /usr/local/bin/fathom
A continuación, proporciona permiso de ejecución al binario de fathom con el siguiente comando:
chmod 755 /usr/local/bin/fathom
A continuación, tendrás que configurar el entorno de Fathom en tu directorio principal. Puedes hacerlo ejecutando el siguiente comando
nano .env
Añade las siguientes líneas:
FATHOM_SERVER_ADDR=9000 FATHOM_DEBUG=true FATHOM_DATABASE_DRIVER="mysql" FATHOM_DATABASE_NAME="fathom" FATHOM_DATABASE_USER="fathomuser" FATHOM_DATABASE_PASSWORD="password" FATHOM_DATABASE_HOST="localhost" FATHOM_DATABASE_SSLMODE="" FATHOM_SECRET="random-secret-string"
A continuación, tendrás que crear una cuenta de administrador para Fathom. Puedes hacerlo con el siguiente comando:
fathom --config=.env user add [email protected] --password=admin@123
Deberías ver la siguiente salida:
INFO[0000] Fathom 1.1.0 INFO[0000] Configuration file: /root/.env INFO[0000] Connected to mysql database: fathomuser:password@tcp(localhost)/fathom?loc=Local&parseTime=true INFO[0000] Created user [email protected]
Ahora, inicia el servidor de Fathom con el siguiente comando:
fathom server
Deberías ver la siguiente salida:
INFO[0000] Fathom 1.1.0 INFO[0000] Configuration file: /root/.env INFO[0000] Connected to mysql database: fathomuser:new_password_here@tcp(localhost)/fathom?loc=Local&parseTime=true INFO[0002] Applied 11 database migrations! INFO[0002] Server is now listening on :9000
Acceso a la interfaz web de Fathom
Ahora Fathom está iniciando y escuchando en el puerto 9000. Abre tu navegador web y escribe la URL http://192.168.0.103:9000. Serás redirigido a la siguiente página:
Ahora, proporciona tus credenciales de administrador y haz clic en el botón Iniciar sesión. Deberías ver la siguiente página:
Ahora, proporciona el nombre de tu sitio y haz clic en el botón Crear sitio. Deberías ver la siguiente página:
Ejemplo de estadísticas:
Crear archivo de servicio Fathom Systemd
A continuación, tendrás que crear un archivo de servicio systemd para Fathom para gestionar el servicio Fathom. Puedes hacerlo con el siguiente comando:
nano /etc/systemd/system/fathom.service
Añade las siguientes líneas:
[Unit] Description=Fathom server management service unit Requires=network.target After=network.target [Service] Type=simple User=root Restart=always RestartSec=3 WorkingDirectory=/root ExecStart=/usr/local/bin/fathom server [Install] WantedBy=multi-user.target
Guarda y cierra el archivo, y luego habilita el servicio Fathom con el siguiente comando:
systemctl daemon-reload
systemctl enable fathom
A continuación, inicia el servicio Fathom con el siguiente comando:
systemctl start fathom
Puedes comprobar el estado del servicio Fathom con el siguiente comando:
systemctl status fathom
Deberías ver la siguiente salida:
? fathom.service - Fathom server management service unit Loaded: loaded (/etc/systemd/system/fathom.service; disabled; vendor preset: enabled) Active: active (running) since Wed 2019-01-30 11:44:46 UTC; 4s ago Main PID: 19671 (fathom) Tasks: 5 (limit: 1114) CGroup: /system.slice/fathom.service ??19671 /usr/local/bin/fathom server Jan 30 11:44:46 ubuntu1804 systemd[1]: Started Fathom server management service unit. Jan 30 11:44:46 ubuntu1804 fathom[19671]: time="2019-01-30T11:44:46Z" level=info msg="Fathom 1.1.0" Jan 30 11:44:46 ubuntu1804 fathom[19671]: time="2019-01-30T11:44:46Z" level=info msg="Configuration file: /root/.env" Jan 30 11:44:46 ubuntu1804 fathom[19671]: time="2019-01-30T11:44:46Z" level=info msg="Connected to mysql database: fathomuser:new_password_here@tcp(loc Jan 30 11:44:46 ubuntu1804 fathom[19671]: time="2019-01-30T11:44:46Z" level=info msg="Server is now listening on :9000"
Configurar Nginx como proxy inverso
Por defecto, Fathom escucha en el puerto 9000. Así que tendrás que configurar Nginx como proxy inverso para acceder a Fathom sin especificar el número de puerto.
Puedes hacerlo creando un archivo de host virtual de Fathom:
nano /etc/nginx/sites-available/fathom
Añade las siguientes líneas:
server { listen 80; listen [::]:80; server_name 192.168.0.103; location / { proxy_pass http://localhost:9000/; } }
Guarda y cierra el archivo. A continuación, comprueba si Nginx tiene algún error de sintaxis con el siguiente comando:
nginx -t
A continuación, desactiva el archivo de host virtual por defecto de Nginx y activa el archivo de host virtual de Fathom con el siguiente comando:
rm -rf /etc/nginx/sites-enabled/default
ln -s /etc/nginx/sites-available/fathom /etc/nginx/sites-enabled/
A continuación, reinicia el servicio Nginx con el siguiente comando:
systemctl restart nginx
Ahora puedes acceder a tu interfaz web de Fathom utilizando la URL http://192.168.0.103.