diff --git a/homelab/platform-40/docs/rutas-clave.md b/homelab/platform-40/docs/rutas-clave.md new file mode 100644 index 0000000..e799af9 --- /dev/null +++ b/homelab/platform-40/docs/rutas-clave.md @@ -0,0 +1,169 @@ +# Rutas clave + +## Stack base de platform-40 + +- `/srv/platform` +- `/srv/chirpstack` +- `/srv/verticals` + +## Rutas clave del caso drenaje en platform-40 + +- `/srv/verticals/drain-control/app/api.py` +- `/srv/verticals/drain-control/app/static/index.html` +- `/srv/verticals/drain-control/app/scheduler.py` +- `/srv/verticals/drain-control/docker-compose.yml` +- `/srv/verticals/drain-lab/app/pg_sink.py` +- `/srv/platform/docker-compose.yml` + +## Patrón de verticales documentado + +- template base: `/srv/verticals/_template` +- ejemplo de vertical: `/srv/verticals/sim2` + +## Observaciones + +- `platform-40` es backend real, no frontal cliente +- las rutas de OVH no deben mezclarse aquí como si fueran locales +- si una vertical toca tanto `platform-40` como OVH, la documentación debe quedar separada por plataforma +```` + +--- + +## `grafana/README.md` + +Grafana en `platform-40` existe como parte del stack base y también puede servir para paneles técnicos internos. El dashboard oficial de cliente, en el caso del drenaje, vive en OVH. + +```markdown +# Grafana en platform-40 + +## Papel + +Grafana en `platform-40` forma parte del stack base del plano de datos. + +## Qué representa aquí + +- paneles técnicos internos +- validación operativa +- visualización de datos del stack +- apoyo al desarrollo y depuración + +## Qué no representa aquí como criterio general + +En el caso del drenaje, el dashboard oficial del cliente no vive aquí. + +Ese dashboard vive en OVH, dentro del tenant público del cliente. + +## Regla práctica + +- Grafana interno/técnico -> puede documentarse aquí +- dashboard final de cliente -> documentarlo en `10-platforms/ovh-cloud/` y, si aplica, en `40-clients/` +``` + +--- + +## `ops/operacion-diaria.md` + +Muchos de estos comandos están documentados literalmente en los runbooks de `platform-40` y drenaje. + +````markdown +# Operación diaria + +## Ver estado del stack base + +```bash +cd /srv/platform +docker-compose ps +```` + +## Ver estado de ChirpStack + +```bash +cd /srv/chirpstack +docker-compose ps +``` + +## Ver puertos relevantes + +```bash +sudo ss -lntup | egrep ':(1883|1884|3000|8080|9000|9001|9443)' +``` + +## Ver tráfico MQTT interno + +```bash +mosquitto_sub -h 192.168.40.100 -t 'vertical/+/telemetry' +``` + +## Publicar mensaje de prueba + +```bash +mosquitto_pub -h 192.168.40.100 -t test/topic -m hello +``` + +## Probar listener frontera + +```bash +TS_IP=$(tailscale ip -4) + +mosquitto_pub \ +-h $TS_IP \ +-p 1884 \ +-u ovh_gateway_bridge \ +-P \ +-t 'eu868/gateway/testgw/event/up' \ +-m '{"test":"ok"}' +``` + +## Ver logs de ChirpStack + +```bash +cd /srv/chirpstack +docker-compose logs -f cs_chirpstack +``` + +## Reiniciar ChirpStack + +```bash +cd /srv/chirpstack +docker-compose restart cs_chirpstack +``` + +## Comprobar backend de drenaje + +```bash +curl -s "http://192.168.40.100:8088/api/drain-window/current?tenant=tma4p1aego_lab&site=bench_gh01&product=climate&asset=drain-01" +``` + +## Consultar auditoría de drenaje + +```bash +curl -s "http://192.168.40.100:8088/api/drain-window/audit?tenant=tma4p1aego_lab&site=bench_gh01&product=climate&asset=drain-01&limit=10" +``` + +## Entrar a PostgreSQL hot + +```bash +docker exec -it mv_postgres_hot psql -U mv_hot_app -d mesavault_hot +``` + +## Reiniciar drain-control + +```bash +cd /srv/verticals/drain-control +docker-compose up -d --build +``` + +## Reiniciar drain-lab + +```bash +cd /srv/verticals/drain-lab +docker-compose up -d --build +``` + +## Advertencia crítica + +No ejecutar en `/srv/platform`: + +```bash +docker-compose down -v +``` \ No newline at end of file