BysMax
Traccar

Emmanuel Hernandez

May 25, 2024
Intermediate
Short

Cómo instalar Traccar en Ubuntu en DigitalOcean con HTTPS SSL

Aprende a instalar y configurar Traccar, una plataforma de rastreo GPS de código abierto, en un servidor Ubuntu en DigitalOcean con esta guía detallada.

Traccar es una popular plataforma de rastreo GPS de código abierto. En esta guía, aprenderás a instalar Traccar en un servidor Ubuntu en DigitalOcean y a configurarlo para usar una base de datos MySQL.

Puedes encontrar el video guiado aquí Instalación de Traccar en YouTube. También te podría interesar cómo actualizar Traccar en DigitalOcean.

Curso de traccar

Accede al curso de traccar aqui: Curso de traccar

1. Registrarse en DigitalOcean

Lo primero que necesitas es una cuenta en DigitalOcean. Puedes registrarte usando este enlace para recibir $200 de crédito gratis.

Una vez registrado, crea un nuevo "droplet" (instancia de servidor virtual) con Ubuntu como sistema operativo. La configuración básica con 1GB de RAM y 1 CPU es suficiente para ejecutar Traccar.

2. Instalar el software necesario

Conéctate al droplet por SSH y ejecuta los siguientes comandos para instalar el software necesario:

apt update && apt -y install unzip mysql-server

Esto instalará la utilidad unzip y el servidor MySQL.

3. Configurar la base de datos MySQL

Configura la base de datos con los siguientes comandos:

mysql -u root --execute="ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'; GRANT ALL ON *.* TO 'root'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES; CREATE DATABASE traccar;"

Esto establece la contraseña de root, otorga permisos totales al usuario root y crea una nueva base de datos llamada "traccar".

4. Descargar e instalar Traccar

Descarga la última versión de Traccar:

wget https://www.traccar.org/download/traccar-linux-64-latest.zip

Descomprime e instala:

unzip traccar-linux-*.zip && ./traccar.run

5. Configurar Traccar para MySQL

Edita el archivo de configuración para que Traccar use la base de datos MySQL que creaste:

cat > /opt/traccar/conf/traccar.xml << EOF
<?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>
    <entry key='database.driver'>com.mysql.jdbc.Driver</entry>
    <entry key='database.url'>jdbc:mysql://localhost/traccar?zeroDateTimeBehavior=round&amp;serverTimezone=UTC&amp;allowPublicKeyRetrieval=true&amp;useSSL=false&amp;allowMultiQueries=true&amp;autoReconnect=true&amp;useUnicode=yes&amp;characterEncoding=UTF-8&amp;sessionVariables=sql_mode=''</entry>
    <entry key='database.user'>root</entry>
    <entry key='database.password'>root</entry>
</properties>
EOF

6. Iniciar el servicio Traccar

Inicia el servicio Traccar:

service traccar start

7. Conexión Segura

Traccar sirve la interfaz web y la API usando HTTP regular, sin encriptación. Esta guía proporciona instrucciones para configurar Traccar con HTTPS, usando encriptación SSL/TLS. Los ejemplos son para Ubuntu Linux, pero se pueden aplicar a otras plataformas. Traccar no soporta conexiones seguras de manera nativa, por lo que se usa un servidor proxy, en este caso Apache, para tunelizar todas las solicitudes a través de una conexión segura.

Instalación y Configuración de Apache

  1. Instala Apache y habilita los módulos necesarios:
sudo add-apt-repository ppa:ondrej/apache2
sudo apt-get install ssl-cert apache2
sudo a2enmod ssl proxy_http proxy_wstunnel rewrite
sudo service apache2 restart
  1. Agrega una nueva configuración de sitio:
sudo nano /etc/apache2/sites-available/traccar.conf

Contenido de la configuración del sitio:

<VirtualHost *:80>
    ServerName demo.traccar.org
    Redirect / https://demo.traccar.org/
</VirtualHost>
<IfModule mod_ssl.c>
    <VirtualHost _default_:443>
        ServerName demo.traccar.org
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html

        ProxyPass /api/socket ws://localhost:8082/api/socket
        ProxyPassReverse /api/socket ws://localhost:8082/api/socket

        ProxyPass / http://localhost:8082/
        ProxyPassReverse / http://localhost:8082/

        SSLEngine on
        SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
        SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
    </VirtualHost>
</IfModule>
  1. Desactiva el sitio predeterminado y activa la nueva configuración:
sudo a2dissite 000-default
sudo a2ensite traccar
sudo service apache2 restart
  1. Genera un certificado SSL válido usando Let's Encrypt:
sudo apt install certbot python3-certbot-apache
sudo certbot --apache

Traccar en un subdirectorio

Para hacer que Traccar esté disponible en una ruta no raíz, ajusta la configuración del proxy y la ruta de las cookies:

ProxyRequests off

ProxyPass /gps/api/socket ws://localhost:8082/api/socket
ProxyPassReverse /gps/api/socket ws://localhost:8082/api/socket

ProxyPass /gps/ http://localhost:8082/
ProxyPassReverse /gps/ http://localhost:8082/
ProxyPassReverseCookiePath / /gps/

Redirect permanent /gps /gps/

Además, recompila la aplicación moderna para que funcione correctamente en la nueva ruta.

8. Problemas comunes

Esta sección debe actualizarse según sea necesario.

Los pasos anteriores deberían funcionar correctamente. Sin embargo, si al acceder a la IP de tu droplet http://000.000.000.00:8082/ no se muestra la página, es posible que el servicio esté funcionando, pero haya algún problema. Intenta detener y volver a iniciar el servicio:

service traccar stop && service traccar start

¡Y eso es todo! Traccar debería estar ejecutándose ahora en el puerto 8082, listo para ser configurado y utilizado para rastrear dispositivos GPS.