3.4 KiB

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

cd /srv/chirpstack
docker-compose ps

Ver puertos relevantes

sudo ss -lntup | egrep ':(1883|1884|3000|8080|9000|9001|9443)'

Ver tráfico MQTT interno

mosquitto_sub -h 192.168.40.100 -t 'vertical/+/telemetry'

Publicar mensaje de prueba

mosquitto_pub -h 192.168.40.100 -t test/topic -m hello

Probar listener frontera

TS_IP=$(tailscale ip -4)

mosquitto_pub \
-h $TS_IP \
-p 1884 \
-u ovh_gateway_bridge \
-P <password> \
-t 'eu868/gateway/testgw/event/up' \
-m '{"test":"ok"}'

Ver logs de ChirpStack

cd /srv/chirpstack
docker-compose logs -f cs_chirpstack

Reiniciar ChirpStack

cd /srv/chirpstack
docker-compose restart cs_chirpstack

Comprobar backend de drenaje

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

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

docker exec -it mv_postgres_hot psql -U mv_hot_app -d mesavault_hot

Reiniciar drain-control

cd /srv/verticals/drain-control
docker-compose up -d --build

Reiniciar drain-lab

cd /srv/verticals/drain-lab
docker-compose up -d --build

Advertencia crítica

No ejecutar en /srv/platform:

docker-compose down -v