Complete TASK-073 provider env runbook

This commit is contained in:
devRaGonSa
2026-03-24 10:44:26 +01:00
parent 0ac05aed00
commit c7c9865075
5 changed files with 164 additions and 0 deletions

View File

@@ -77,6 +77,20 @@ El repositorio ya incluye:
- `docker-compose.yml`
- `backend/.env.example`
Selección de proveedor por entorno hoy:
- desarrollo:
- `HLL_BACKEND_LIVE_DATA_SOURCE=a2s`
- `HLL_BACKEND_HISTORICAL_DATA_SOURCE=public-scoreboard`
- producción realista en esta fase:
- `HLL_BACKEND_LIVE_DATA_SOURCE=rcon`
- `HLL_BACKEND_HISTORICAL_DATA_SOURCE=public-scoreboard`
Esto refleja el estado real de la repo: el proveedor RCON ya existe para el
estado live de `/api/servers`, pero el histórico sigue dependiendo del
scoreboard público porque no hay todavía una canalización persistente basada
en eventos/logs RCON.
Primer arranque:
```powershell
@@ -113,6 +127,50 @@ Recreacion de imagenes tras cambios:
docker compose up --build
```
## Runbook de proveedores
Verificacion minima del proveedor activo:
```powershell
Invoke-WebRequest http://localhost:8000/health | Select-Object -Expand Content
```
La respuesta incluye `live_data_source` y `historical_data_source`.
Modo desarrollo recomendado:
```powershell
docker compose up --build
```
Modo live con RCON en Docker Compose:
```powershell
$env:HLL_BACKEND_LIVE_DATA_SOURCE='rcon'
$env:HLL_BACKEND_HISTORICAL_DATA_SOURCE='public-scoreboard'
$env:HLL_BACKEND_RCON_TARGETS='[
{
"name": "Comunidad Hispana #01",
"host": "203.0.113.10",
"port": 28015,
"password": "replace-me",
"external_server_id": "comunidad-hispana-01",
"region": "ES",
"game_port": 7777,
"query_port": 7778
}
]'
docker compose up -d backend frontend
```
Buenas practicas:
- no versionar credenciales reales en `backend/.env.example`
- preferir exportarlas como variables de entorno del host o del secreto del
despliegue
- mantener `HLL_BACKEND_HISTORICAL_DATA_SOURCE=public-scoreboard` hasta tener
una ingesta historica RCON realmente persistida
## Operaciones historicas con Docker
Refresh historico puntual dentro del contenedor backend: