Instalar Traccar GPS en Ubuntu y Nginx


Traccar es un software para rastreo GPS completamente gratuito (Open Source) con el que fácilmente podemos implementar nuestra propia plataforma para seguimiento de automóviles, flotillas e incluso rastrear teléfonos celulares mediante el uso de una aplicación.

Traccar GPS server con Ubuntu y Nginx

Al igual que la mayoría de las plataformas GPS conocidas y que encontramos comercialmente, Traccar soporta una gran variedad de dispositivos – lista de dispositivos –, así como la lectura de datos tipo OBD-II cuando es soportado.

El desarrollo y mantenimiento de este software es muy activo, por lo que constantemente liberan nuevas versiones y actualizaciones, este tutorial está basado en:

  • Traccar v6.1
  • Ubuntu 22.04

* En teoría Traccar es compatible con servidores ARM, pero en mi experiencia no ha funcionado.

Instalación

Traccar se ejecuta en Java por lo que debemos asegurarnos de tener “Java Runtime Environment” (JRE) instalado en nuestro servidor, además de una herramienta para descomprimir (Unzip) el paquete de instalación.

sudo apt update
sudo apt -y install default-jre unzip

Descargamos el paquete de instalación directamente desde el repositorio oficial en Github y posteriormente lo descomprimimos.

wget https://github.com/traccar/traccar/releases/download/v6.1/traccar-linux-64-6.1.zip
unzip traccar-linux-64-6.1.zip -d ~/traccar

Ejecutamos el instalador e iniciamos el servicio de Traccar.

sudo ./traccar/traccar.run
sudo systemctl start traccar.service

En este punto Traccar ya esta instalado y funcionando. Podemos hacer una prueba accediendo por el puerto 8082 con la IP del servidor (Ejemplo: http://54.84.104.67:8082) que viene configurado por default y deberíamos ver la pantalla de inicio.

Configuración Traccar

El archivo para la configuración de Traccar esta localizado en /opt/traccar/conf/traccar.xml, prácticamente este es el único archivo que debemos modificar. Para conocer todos los parámetros consulta la Documentación Oficial.

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE properties SYSTEM 'http://java.sun.com/dtd/properties.dtd'>
<properties>
<entry key="config.default">./conf/default.xml</entry>
<!-- DataBase MariaDB -->
<entry key='database.driver'>com.mysql.jdbc.Driver</entry>
<entry key='database.url'>jdbc:mysql://[HOST]:3306/[DATABASE]?useSSL=false&amp;allowMultiQueries=true&amp;autoReconnect=true&amp;useUnicode=yes&amp;characterEncoding=UTF-8&amp;sessionVariables=sql_mode=''</entry>
<entry key='database.user'>[USER]</entry>
<entry key='database.password'>[PASSWORD]</entry>
<!-- Mail Service - Amazon SES -->
<entry key='mail.smtp.host'>email-smtp.us-east-1.amazonaws.com</entry>
<entry key='mail.smtp.port'>25</entry>
<entry key='mail.smtp.starttls.enable'>true</entry>
<entry key='mail.smtp.ssl.enable'>false</entry>
<entry key='mail.smtp.from'>mail@domain.com</entry>
<entry key='mail.smtp.auth'>true</entry>
<entry key='mail.smtp.username'>[AccessKeyID]</entry>
<entry key='mail.smtp.password'>[SecretAccessKey]</entry>
</properties>
view rawtraccar.xmlhosted with ❤ by GitHub

A continuación se describe la configuración usada en el ejemplo anterior.

Configurar base de datos

Por default Traccar viene configurado para usar y conectarse a una base de datos interna (h2) la cual no es recomendable usar en un ambiente de producción, pero tenemos la opción de usar casi cualquiera de nuestra elección, podemos consultar la configuración para cada caso en la Documentación Oficial.

Para este ejemplo vamos a configurar una base de datos MariaDB por su similitud y compatibilidad con MySQL que será instalada en “localhost”. En el archivo de configuración traccar.xml configurar los parámetros correspondientes como se muestra en el ejemplo anterior.

Configurar notificaciones

Para poder recibir notificaciones del sistema es necesario configurar un servidor SMTP, en el ejemplo anterior se muestran los parámetros para usar Amazon SES (Amazon Web Services) para el envio de correos electrónicos.

A partir de la version 3.11 de Traccar es posible usar un servidor SMPP para enviar notificaciones vía mensajes SMS.

Instalación y configuración Nginx

Te recomendamos usar Webinoly nuestro script para instalación, configuración y optimización para tu servidor web. Es muy fácil y con un solo comando tu servidor estará listo para alojar cualquier sitio web que requieras.

wget -qO weby qrok.es/wy && sudo bash weby

Así de fácil, ahora ya tienes instalado y optimizado tu servidor web LEMP con Nginx, PHP y MariaDB (MySQL). Ahora solo debes crear tu primer sitio para alojar Traccar usando la configuración Reverse Proxy de Nginx.

sudo site midominio.com -proxy=[localhost:8082]

Para empezar a usar MariaDB en lugar de la base de datos interna (h2) de Traccar es muy fácil, solo debemos crear una base de datos utilizando un pequeño truco de Webinoly sudo site -mysql y modificar el archivo de configuración como explicamos anteriormente. Finalmente, debemos reiniciar sudo systemctl restart traccar.service el servicio de Traccar para que reconozca la nueva configuración.

¡Listo! Ahora podemos acceder a Traccar usando nuestro dominio.

Certificado SSL (Opcional)

Con Webinoly es muy fácil y además gratuito instalar y configurar un certificado SSL en Traccar para navegar de manera segura con HTTPS.

sudo site midominio.com -ssl=on -root-path=/opt/traccar/modern

¡Listo! Nuestro servidor y sitio Traccar ahora está configurado para navegar y redireccionar todo el tráfico a HTTPS.

Login

Hemos terminado la instalación…

En algunas versiones anteriores de Traccar, la cuenta de administrador predeterminada se crea automáticamente con el nombre de usuario “admin” y la contraseña “admin”. En las versiones más nuevas no hay usuarios predeterminados, por lo que debes registrarte. El primer usuario registrado se convierte automáticamente en administrador.

Para cambiar el proveedor de mapas, por ejemplo, usar Google Maps, debemos ingresar con la cuenta de administrador en el menu Preferencias > Servidor, en la opción “Capa de Mapa” elejir “Mapa Personalizado” e ingresar la URL de Google Maps:

  • https://mt0.google.com/vt/lyrs=s&hl=en&x={x}&y={y}&z={z}&s=Ga

Para más opciones sobre los mapas disponibles ver el documento oficial sobre “Maps Layers”.

Es importante entender el uso de los “Atributos” en Traccar, por ejemplo, para configurar una alarma por exceder una determinada velocidad usariamos el atributo “speedLimit”.

Ver más información sobre eventos y atributos.

¡IMPORTANTE! Si tenemos un firewall es importante abrir los puertos de entrada (inbound) en el rango 5001-5134 ya que son utilizados por Traccar para la comunicación con los dispositivos GPS, además de los puertos comunes de acceso Web y demás.

Aplicaciones móviles

Traccar Client – Aplicación para rastreo del teléfono celular o móvil, basta con configurar los datos de nuestro servidor y listo.

Disponible para Android e iOS.

También existe una versión “Oculta” (hidden) para Android para mayor protección y evitar que sea desactivada facilmente. Solo disponible en formato APK desde la página oficial.

Traccar Manager – Usa la plataforma desde tu teléfono móvil, accede a toda la información de tus dispositivos conectados.

Disponible para Android e iOS.

Conclusión

Traccar es un software Open Source y es relativamente sencillo tomarlo y personalizarlo. Por ejemplo, crear un nuevo FrontEnd y mejorar la experiencia de usuario. Un claro ejemplo de las posibilidades es GPSWox, una reconocida plataforma de seguimiento GPS quienes usan Traccar como BackEnd ofreciendo una experiencia muy mejorada para el usuario final.

Código fuente | Github


Making Nginx Easy for Everyone!

Webinoly vastly simplifies all your webserver.