Emmanuel Hernandez
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&serverTimezone=UTC&allowPublicKeyRetrieval=true&useSSL=false&allowMultiQueries=true&autoReconnect=true&useUnicode=yes&characterEncoding=UTF-8&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
- 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
- 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>
- Desactiva el sitio predeterminado y activa la nueva configuración:
sudo a2dissite 000-default
sudo a2ensite traccar
sudo service apache2 restart
- 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.