En este blog no somos de realizar largos y sesudos artículos, no obstante, en este caso es necesario explicar un proceso largo y nada intuitivo, por lo que se impone romper con nuestras reglas y hacer un tutorial extenso, que ayude con un proceso no muy documentado aún.

Hasta principios de 2020, había un procedimiento para descargar y actualizar las bases de datos de GeoLite y GeoIP para Mautic, pero por un cambio en la política de envío de datos de la empresa que mantiene estos datos (Maxmind), ahora debemos realizar unos pasos distintos a los que te explican en la mayoría de las webs del mercado, así que si estás siguiendo algún tutorial y no te funciona, no desesperes, no estará actualizado (mira la fecha del artículo, seguramente será de antes de principios de 2020).

¿Cómo debemos proceder a partir de 2020?

Primero crearemos una cuenta gratuita en Maxmind para descargar GeoLite2. Para este paso, usaremos este enlace:
https://www.maxmind.com/en/geolite2/signup

Una vez que hayas rellenado el formulario, recibirás un correo electrónico de Maxmind, (mira en la carpeta de SPAM si no lo encuentras), y haremos clic en el enlace para crear una contraseña. (Donde pone «first create a password here»). No uses otros enlaces, porque no funcionarán. Una vez creada la contraseña, lógate con ella y busca en el menú de la izquierda el elemento «My License Key». Ahí tendrás un botón para generar la clave de licencia («Generate new license key»). Haz clic en él y sigue los pasos que te indica (poner un nombre a la clave que estás generando) y marca la opción «Generate a licensekey and config file for use with geoipupdate version 3.1.1 or newer». Hacemos clic en «Confirm». Al hacer esto, nos mostrará una vez la clave y el ID de usuario, por lo que deberemos guardar estos datos para poderlos usar después.

Hacemos clic en el botón de «Download Config» y guardamos este archivo también. Lo necesitaremos en el servidor donde tenemos Mautic.
A continuación necesitamos entrar por una terminal al servidor y ejecutar (comandos para Ubuntu):
add-apt-repository ppa:maxmind/ppa

apt update
apt upgrade

apt install geoipupdate
Con estas instrucciones, insertaremos el repositorio en nuestro servidor e instalaremos geoipupdate.

Para poder ejecutar a continuación el script descargado, necesitaremos poner el contenido del archivo .conf que nos descargamos anteriormente en el directorio etc/ del script instalado, en el archivo que se llama GeiIP.conf.*

Llegados a este punto, ya tenemos el script funcionando en nuestro servidor. Ahora tenemos que poder actualizarlo. Para ello, por un lado debemos unir Mautic con lo instalado en el servidor, y por otro, lanzarlo como proceso cron. Vamos a ello.

Lo que primero debemos hacer es irnos al directorio donde está Mautic instalado, y comprobar que existe app/cache/ip_data. Si no existiera, creamos esa ruta, y le damos permisos 775.

Ejecutamos a continuación:
sudo -u daemon geoipupdate -f /etc/GeoIP.conf -d /ruta/de/mautic/app/cache/ip_data -v
Al poner -v (verbose), nos devolverá información sobre el proceso y el resultado del script. Con esto, Mautic ya deberá poder leer la base de datos que intentábamos tener actualizada. Vamos ya por el último punto: ejecutamos crontab -e e insertamos

0 0 * * * sudo -u daemon geoipupdate -f /etc/GeoIP.conf -d /ruta/de/mautic/app/cache/ip_data

Y con esto, todos los días a las 0:00 se ejecutará esta línea, actualizando GeoIP. Y ya está. No tocaremos nada en Mautic, más allá de indicar la ruta de la base de datos, si no es la correcta. Pero no intentaremos actualizarla a través de Mautic, ya que este proceso ya es independiente de Mautic.

*NOTA: para sistemas no Ubuntu, este archivo .conf puede estar en una ruta distinta a /etc. Para averiguarlo, bastará con ejecutar geoipupdate -v y nos mostrará la ruta que buscamos.