Instalación Traccar y Mysql en Oracle Vps

Para la Instalación necesitamos cuenta de Oracle Cloud para la creación de la vps. Para ello nos dirigimos a https://www.oracle.com/cloud/free/.

 

Oracle cloud ofrece a los usuarios la posibilidad crear dos vps totalmente gratis, para poder alojar tus proyectos web, cualquier otra aplicación.

 

Características:
- 1 Core
- 45 GB (espacio)
- 50 Mbps
- Os Linux

Mucho ojo con el vps a activar. No todos son gratis de por vida, solamente el antes mencionado.

Si selecciona uno con Windows, vas a estar usando tus créditos que duran 30 días, pasado ese tiempo te van a iniciar a cobrar.

 

Antes de crear la vps linux debemos de realizar un paso previo, el cual es la creación de un par de claves pública y privada. Para esto vamos a seguir estos pasos, ya que si no lo hacemos no podremos conectarnos a la máquina.

 

Buscamos en nuestro equipo el Putty key Generator, con los parámetros por defecto le damos a generate. Esto nos generara un par de claves. Para ello debemos de mover el ratón para que haga cálculos aleatorios.

Una vez generada le ponemos una key passphrase para mayor seguridad. Le damos al botón save provate key y guardamos la clave privada.

 

Para la clave publica tenemos que copiar todo el contenido de la Public key por ejemplo a notepad++ u otro editor, una vez allí pegamos el contenido y la guardamos con extensión pub.

 

Ahora vamos a crear la vps, para eso nos vamos a recursos informáticos –> instancias. Ya que la instalacion de mysql come bastante recursos he optado por crear 2 instancias, una para la instalación de traccar y otra para la instalación de mysql.

Empezamos por la instalación de la instancia de Traccar, como veréis es muy sencillo y rápido.

 

Pulsamos en el botón crear instancia y se nos abre la ventana para configurar la instancia.

Le ponemos un nombre, en mi caso las instancias se van a llamar Mottrack_web y Mottrack_bbdd.

Pulsamos en el botón editar y seleccionamos Ubuntu 20.04, quedándose la siguiente pantalla

 

En Agregar claves Ssh añadiremos la clave publica que hemos creado al principio de este manual

Y pulsamos en el botón crear, tarda menos de 10 minutos en desplegar la instancia y ser accesible por el puerto 22

Ahora creamos la instancia de Mysql que es básicamente repetir los pasos anteriores.

Una vez desplegada la instancia nos creamos una conexión ssh con putty de la siguiente manera:

En hostname or ip address escribimos la ip publica de la instancia que acabamos de crear

En saved sessions le ponemos un nombre, en este caso mottrack_bbdd, pulsamos en ssh a la izquierda y dentro de esta en auth.

En el cuadro de búsqueda ponemos la clave privada que creamos al principio del manual

 

Volvemos a sesion y le damos a save, con lo que se nos queda guarda la conexión con la máquina.

 

Lo primero que vamos a realizar una vez conectados es un sudo apt-get update

Realizamos la instalación del servidor de mysql con:

sudo apt install mysql-server

Procedemos a editar el fichero de configuración para poder acceder desde fuera de la maquina con, sudo nano /etc/mysql/my.cnf y añadimos las siguientes líneas al final del fichero

[Mysqld]
skip-external-locking
bind-address = 0.0.0.0

 

Procedemos a reiniciar el servicio

sudo service mysql restart

 

Accedemos a la base de datos y ejecutamos las siguientes sentencias

sudo mysql -u root
CREATE DATABASE mottrack;
CREATE USER 'root'@'%' IDENTIFIED BY 'root'; (Aquí es recomendable poner una clave segura)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

 

Y con esto finalizamos la instalación de la instancia de mysq.

 

 

Ahora debemos de abrir el puerto 3306 para poder acceder desde fuera de la máquina, esto lo hacemos editando la subred y añadiendo los puertos a la lista de seguridad, Aquí os dejo unas imágenes.

Una vez realizado esto empezamos con la instalación de traccar en la otra instancia

Actualizamos la maquina

sudo apt-get update

 

Instalamos el paquete zip

sudo apt install zip

 

Descargamos el paquete de traccar para realizar la instalación

wget https://github.com/traccar/traccar/releases/download/v4.12/traccar-linux-64-4.12.zip

 

Descomprimimos el paquete y lanzamos la instalación

unzip traccar-linux-64-4.12.zip
sudo ./traccar.run

 

Editamos el fichero de configuración de traccar para cambiar la base de datos de H2 a Mysql. Borramos las líneas referentes a H2 y pegamos las siguientes

sudo vim /opt/traccar/conf/traccar.xml

<entry key='database.driver'>com.mysql.cj.jdbc.Driver</entry>
<entry key='database.url'>jdbc:mysql://10.0.0.11:3306/mottrack?serverTimezone=UTC&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>

 

Es hora de abrir el resto de los puertos en esta instancia por lo que procedemos igual que cuando hemos abierto el puerto de mysql , pero añadiendo los siguientes:

 

 

De nuevo en la maquina ejecutamos los siguientes comandos para abrir los puertos a nivel de iptables

sudo iptables -I INPUT 6 -m state --state NEW -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT 6 -m state --state NEW -p tcp --dport 443 -j ACCEPT
sudo iptables -I INPUT 6 -m state --state NEW -p tcp --dport 8082 -j ACCEPT
sudo iptables -I INPUT 6 -m state --state NEW -p tcp --dport 5000:5200 -j ACCEPT
sudo netfilter-persistent save

 

Y reiniciamos el servicio de traccar

sudo service traccar restart

 

Ojo, esta parte es por si tienes un dominio propio y quieres apuntar a un subdominio. Antes de realizar estos pasos deberemos crear un registro A en nuestro dominio de la siguiente manera

Una vez el subdominio responda a ping realizamos los siguientes pasos.

sudo apt-get install ssl-cert apache2
sudo a2enmod ssl
sudo a2enmod proxy_http
sudo a2enmod proxy_wstunnel
sudo service apache2 restart

sudo nano /etc/apache2/sites-available/mottrack.conf
<IfModule mod_ssl.c>
  <VirtualHost _default_:443>
     ServerName mottrack.eldire.es
     ServerAdmin eldire@gmail.com
     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>

sudo a2ensite mottrack
sudo service apache2 restart

sudo apt install snapd
sudo snap install core; sudo snap refresh core
sudo snap install --classic certbot
sudo certbot --apache
sudo a2enmod rewrite
sudo a2dissite 000-default
sudo nano /etc/apache2/sites-available/mottrack.conf

<VirtualHost *:80>
ServerName mottrack.eldire.es
Redirect / https://mottrack.eldire.es/
</VirtualHost>

Muchas gracias a nuestro compañero @balrog_es  por dejarnos publicar este post.

 

You cannot copy content of this page