La CLI ./taximeter

Toda la gestión pasa por un comando (taximeter en Windows):

Comandos

installConfiguración inicial
start / stop / restartArrancar / detener / reiniciar
updateTraer la última versión y reconstruir
logsVer registros en vivo (./taximeter logs auth)
statusEstado de los contenedores
seedInsertar/actualizar la empresa desde .env
storage-setupConfigurar el bucket de fotos + políticas
add-adminCrear un admin del panel
backup / restoreRespaldar / restaurar la base de datos
hostnameURLs donde el servidor es accesible
keysVer los secretos generados (truncados)

Puertos

PuertoServicioAcceso
3000Panel de TaximeterAdmin (y las apps usan la API)
3001Supabase StudioAdmin de base de datos — mantener privado
8000API de Supabase (Kong)Usado por el panel y las apps

Expón el 3000 (y tu API) a internet para que las apps lleguen; mantén el 3001 privado.

Respaldos

./taximeter backup

Escribe un volcado SQL con fecha en backups/. Cópialos a un lugar seguro y respalda antes de cada actualización.

./taximeter restore backups/taximeter_db_20260101_120000.sql
./taximeter restart
⚠️
Restaurar sobrescribe la base de datos actual — se te pedirá confirmar.

Actualizar

./taximeter update

Trae la última versión (git pull origin main), reconstruye la app y reinicia. Respalda antes.

Correo (SMTP) — solo con cuentas de pasajero

Las cuentas de pasajero se verifican por correo. Si las activas, configura SMTP en .env y reinicia:

SMTP_HOST=smtp.tuproveedor.com
SMTP_PORT=587
SMTP_USER=...
SMTP_PASS=...
SMTP_SENDER_NAME=TuEmpresa
SMTP_ADMIN_EMAIL=tu@empresa.com

Una instalación solo-anónima no necesita SMTP.

Seguridad

Solución de problemas

Un servicio se reinicia en bucle

Revisa sus registros: ./taximeter logs auth, ./taximeter logs rest, ./taximeter logs db.

No puedo entrar al panel desde un teléfono

La URL del QR de vinculación debe ser accesible desde datos móviles, no solo tu LAN. Usa una dirección pública o dominio y abre el puerto / configura tu proxy inverso.

Studio aparece "unhealthy"

Es cosmético — su chequeo espera un servicio pg-meta que no forma parte del stack. Studio igual funciona.

# Comprobar que todo está arriba
./taximeter status