Este documento contiene comandos útiles para trabajar con el entorno de desarrollo del listener MQTT integrado con TimescaleDB y FastAPI.
sudo docker compose down
sudo docker compose up --build
O para levantarlo en segundo plano:
sudo docker compose up -d
sudo docker compose down --volumes
sudo docker compose build --no-cache
sudo docker compose up
sudo docker exec -it chirpstack_listener_app cat /var/log/api.err.log
sudo docker exec -it chirpstack_listener_app cat /var/log/mqtt.err.log
sudo docker stop $(docker ps -q)
sudo docker rm $(docker ps -aq)
sudo docker volume prune -f
sudo docker network prune -f
tree . -L 2
mosquitto_pub -h localhost -p 1884 -t "application/1/device/abcd1234/event/up" -m '{
"devEUI": "abcd1234",
"receivedAt": "2025-04-16T03:37:00.000Z",
"objectJSON": {
"temperature": 23.4,
"humidity": 60
}
}'
sudo docker exec -it chirpstack_timescaledb psql -U sensoruser -d sensordata -c "SELECT * FROM sensor_data ORDER BY timestamp DESC LIMIT 10;"
sudo docker logs -f chirpstack_listener_app
-
Ejecutar el script de entrada en el contenedor:
sudo docker exec -it chirpstack_listener_app ./entrypoint-dev.sh
-
En otra terminal, lanzar el test:
./mqtt_test.sh
Deberías ver algo como:
🚀 Publicando mensaje MQTT de prueba... ⏳ Esperando procesamiento... 🔎 Consultando base de datos TimescaleDB... 🛠️ Creando tablas en la base de datos... ✅ Tablas creadas correctamente. id | device_id | key | value | timestamp ----+-----------+-------------+-------+--------------------- 1 | abcd1234 | temperature | 22.8 | 2025-04-16 04:00:00 4 | abcd1234 | humidity | 58 | 2025-04-16 04:00:00 5 | abcd1234 | humidity | 58 | 2025-04-16 04:00:00 3 | abcd1234 | temperature | 22.8 | 2025-04-16 04:00:00 2 | abcd1234 | temperature | 22.8 | 2025-04-16 04:00:00 (5 rows) 🌐 Probando endpoint API...
curl http://localhost:8999/data/
Usado para testear nuevas funcionalidades, mantener logs visibles y facilitar depuración.
# Bajar contenedores existentes
sudo docker compose down
# Levantar entorno en modo desarrollo (con logs visibles y reconstrucción completa)
sudo docker compose build --no-cache
sudo docker compose up
Opcional: para ejecución en segundo plano:
sudo docker compose up -d
Logs en vivo:
sudo docker logs -f chirpstack_listener_app
Verificación base de datos:
sudo docker exec -it chirpstack_timescaledb psql -U sensoruser -d sensordata -c "SELECT * FROM sensor_data ORDER BY timestamp DESC LIMIT 10;"
Ver errores (FastAPI y MQTT):
sudo docker exec -it chirpstack_listener_app cat /var/log/api.err.log
sudo docker exec -it chirpstack_listener_app cat /var/log/mqtt.err.log
Recomendaciones para entorno más estable, optimizado y con menor interacción manual.
Incluye variables como:
ENV=production
DATABASE_URL=...
MQTT_BROKER=...
sudo docker compose -f docker-compose.production.yml up -d --build
sudo docker ps
sudo docker compose -f docker-compose.production.yml down
sudo docker compose -f docker-compose.production.yml up -d
sudo docker logs chirpstack_listener_app
sudo docker stop $(docker ps -q)
sudo docker rm $(docker ps -aq)
sudo docker volume prune -f
sudo docker network prune -f