169 lines
3.4 KiB
Markdown

# 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 <password> \
-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
```