Sistema completo para monitoreo y gestion de flotas de vehiculos con: - Backend FastAPI con PostgreSQL/TimescaleDB - Frontend React con TypeScript y TailwindCSS - App movil React Native con Expo - Soporte para dispositivos GPS, Meshtastic y celulares - Video streaming en vivo con MediaMTX - Geocercas, alertas, viajes y reportes - Autenticacion JWT y WebSockets en tiempo real Documentacion completa y guias de usuario incluidas.
5.5 KiB
Guia de Instalacion
Esta guia cubre la instalacion completa del sistema FlotillasGPS en un servidor Proxmox.
Requisitos Previos
Hardware (VM en Proxmox)
| Recurso | Minimo | Recomendado |
|---|---|---|
| CPU | 2 cores | 4 cores |
| RAM | 4 GB | 8 GB |
| Disco Sistema | 40 GB SSD | 60 GB SSD |
| Disco Videos | 500 GB HDD | 2 TB HDD |
Software
- Proxmox VE 7.x o superior
- ISO Ubuntu 22.04 LTS Server
Red
- IP estatica para la VM
- Puerto TCP 5055 accesible desde internet (para GPS)
- Dominio configurado (para Cloudflare Tunnel)
- Cuenta en Cloudflare (plan gratuito funciona)
Paso 1: Crear VM en Proxmox
Desde la interfaz web de Proxmox:
- Click en "Create VM"
- General:
- Name:
flotillas-server - Start at boot: Si
- Name:
- OS:
- ISO image: ubuntu-22.04-live-server-amd64.iso
- System:
- BIOS: Default
- Machine: q35
- Disks:
- Disco 1: 60 GB (SSD/local-lvm)
- Agregar disco 2: 2 TB (HDD para videos)
- CPU:
- Cores: 4
- Type: host
- Memory:
- Memory: 8192 MB
- Network:
- Bridge: vmbr0
- Model: VirtIO
Instalar Ubuntu:
- Iniciar VM y seguir instalador
- Configurar IP estatica o DHCP con reserva
- Crear usuario
admin - Instalar OpenSSH server
- Reiniciar
Paso 2: Preparar el Sistema
Conectar por SSH:
ssh admin@IP_DE_TU_VM
Actualizar sistema:
sudo apt update && sudo apt upgrade -y
sudo apt install -y git curl wget
Paso 3: Clonar Repositorio
cd /opt
sudo git clone https://git.consultoria-as.com/tu-usuario/flotillas-gps.git flotillas
sudo chown -R $USER:$USER /opt/flotillas
cd /opt/flotillas
Paso 4: Configurar Variables
Editar el script de instalacion para configurar tu dominio:
nano deploy/scripts/install.sh
Modificar las variables al inicio:
DOMAIN="flotillas.tudominio.com" # Tu dominio
ADMIN_EMAIL="admin@tudominio.com" # Email del admin
Paso 5: Ejecutar Instalacion
sudo ./deploy/scripts/install.sh
El script realizara automaticamente:
- Instalar PostgreSQL 15 + TimescaleDB
- Instalar Redis
- Instalar Python 3.11 y Node.js 20
- Instalar Traccar Server
- Instalar MediaMTX (video streaming)
- Instalar Mosquitto MQTT
- Configurar la aplicacion
- Crear servicios systemd
- Configurar firewall
- Generar credenciales
Duracion estimada: 10-15 minutos
Paso 6: Configurar Cloudflare Tunnel
En el Dashboard de Cloudflare:
- Ir a Zero Trust > Access > Tunnels
- Click Create a tunnel
- Nombre:
flotillas - Copiar el token del tunnel
En tu servidor:
# El instalador ya instalo cloudflared
# Configurar con tu token
sudo cloudflared service install TOKEN_QUE_COPIASTE
Configurar rutas en Cloudflare:
En el dashboard del tunnel, agregar Public Hostnames:
| Subdomain | Domain | Service |
|---|---|---|
| flotillas | tudominio.com | http://localhost:3000 |
| flotillas | tudominio.com | http://localhost:8000 (path: /api/*) |
| flotillas | tudominio.com | http://localhost:8000 (path: /ws/*) |
Paso 7: Verificar Instalacion
Verificar servicios:
sudo systemctl status flotillas-api
sudo systemctl status flotillas-web
sudo systemctl status traccar
sudo systemctl status mediamtx
sudo systemctl status cloudflared
Todos deben mostrar active (running).
Verificar acceso web:
Abrir en navegador: https://flotillas.tudominio.com
Deberia mostrar la pagina de login.
Verificar puerto GPS:
# Desde otra maquina
nc -zv IP_DEL_SERVIDOR 5055
Debe mostrar "Connection succeeded".
Paso 8: Credenciales
Las credenciales se generaron durante la instalacion.
Ver credenciales guardadas:
cat /opt/flotillas/.credentials
Ejemplo de salida:
=================================
CREDENCIALES DE ACCESO
=================================
Dashboard: https://flotillas.tudominio.com
Admin Email: admin@flotillas.tudominio.com
Admin Password: xK9mN2pL5qR8
Database Password: [guardado en .env]
=================================
IMPORTANTE: Guarda estas credenciales en un lugar seguro y cambia la contrasena del admin despues del primer login.
Paso 9: Configurar DNS para GPS
Los dispositivos GPS necesitan conectarse al puerto 5055 de tu servidor.
Opcion A: IP Publica directa
Si tu servidor tiene IP publica, configura los GPS con:
- Servidor:
IP_PUBLICA - Puerto:
5055
Opcion B: Port forwarding
Si el servidor esta detras de NAT:
- En tu router, hacer port forward del puerto 5055 TCP hacia la IP de la VM
- Configurar GPS con tu IP publica o dominio DDNS
Opcion C: Dominio con registro A
- Crear registro A:
gps.tudominio.com→ IP_PUBLICA - Configurar GPS con:
- Servidor:
gps.tudominio.com - Puerto:
5055
- Servidor:
Solucion de Problemas
El servicio no inicia
# Ver logs detallados
journalctl -u flotillas-api -n 100 --no-pager
# Verificar configuracion
cat /opt/flotillas/.env
No puedo acceder al dashboard
# Verificar tunnel
cloudflared tunnel info flotillas
# Reiniciar tunnel
sudo systemctl restart cloudflared
Los GPS no se conectan
# Verificar que el puerto esta abierto
sudo ufw status
sudo netstat -tlnp | grep 5055
# Ver logs de Traccar
journalctl -u traccar -f