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 pública 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 pública 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 sesión 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 #Instalación del servidor de mysql#
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 #Reiniciar el servicio traccar#
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; #es recomendable poner una clave segura#
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 máquina
sudo apt-get update #Actualizar la máquina#
Instalamos el paquete zip
sudo apt install zip #Instalar el archivo zip comprimido#
Descargamos el paquete de traccar para realizar la instalación
wget https://github.com/traccar/traccar/releases/download/v5.0/traccar-linux-64-5.0.zip #La versión 5.0 es ejemplo, recuerda siempre usar la última versión#
Descomprimimos el paquete y lanzamos la instalación
unzip traccar-linux-64-5.0.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&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>
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 máquina 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 #Reiniciar el servicio de traccar#
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.