{
  "documento": "configuración pública del nodo BlepoOS (L21)",
  "nodo": "https://blepoos.aephoron.com",
  "generado": "2026-10-16T22:09:44Z",
  "binario": {
    "ruta": "/usr/local/bin/blepoos-frontal",
    "sha256": "c9ea258b002b5d0d458825b561371f881ed7b424a39343415e3f0bfab15c552a",
    "bytes": 15150952
  },
  "contenedores": [
    {
      "nombre": "blepoos-searxng",
      "imagen": "sha256:c6239076c5e36720765d1a7815af3e660e0fcf49239a2e3b161b5477c9cd82b0"
    },
    {
      "nombre": "blepoos-valkey",
      "imagen": "sha256:d2e18f3410b6f616de1417f570fa55261af2898b9c5b2cfb6781ce2373ea43d1"
    }
  ],
  "ficheros": [
    {
      "ruta": "/etc/nginx/sites-available/blepoos",
      "sha256": "58fc1ae13adc2db0215dd7fbf3da2859608fa1fd5d8fcbe7be23da5475e31129",
      "bytes": 2196
    },
    {
      "ruta": "/etc/nginx/conf.d/blepoos-ritmo.conf",
      "sha256": "d3ea55fbc172000b6679b009f959aa9336466fc1529c781a0a243bfe1e3441a8",
      "bytes": 479
    },
    {
      "ruta": "/root/blepoos/docker-compose.yml",
      "sha256": "5632d8943ccac7ab1c9a44bb7f0fe308427256babd0142449b77822e8ba6160d",
      "bytes": 1191
    },
    {
      "ruta": "/root/blepoos/searxng/settings.yml",
      "sha256": "abcd9cdb73ef1a6395ab5e67b2a38fe9d6edca5b838ed8ef7f567ca2fa86f926",
      "bytes": 1855
    },
    {
      "ruta": "/root/blepoos/searxng/limiter.toml",
      "sha256": "098e2723670740bc7995c6dbd3f09f573b0aed4d487b9496e7768343c77ecf4e",
      "bytes": 414
    },
    {
      "ruta": "/etc/systemd/system/blepoos-frontal.service",
      "sha256": "8255cbda7f10bccd3c3c96dbd7d50ca08dd90e638a977d78686980bddfbb9749",
      "bytes": 641
    },
    {
      "ruta": "/etc/blepoos/rastreo.txt",
      "sha256": "49243aed73e6a8bbddf378a53e2b24d9cb22babf8595c01bc612633c2ce63eb2",
      "bytes": 272
    }
  ],
  "ajustes": [
    {
      "clave": "nginx.X-Real-IP(/ohttp-gw)",
      "valor": "no se pasa",
      "por_que": "en el camino oblicuo no hay IP de usuario que pasar, y el frontal no la mira"
    },
    {
      "clave": "nginx.access_log(/ohttp-gw)",
      "valor": "off",
      "por_que": "la pasarela oblicua no registra nada: ahí llegan las consultas de todo el mundo desde el relevo"
    },
    {
      "clave": "searxng.autocomplete",
      "valor": "\"duckduckgo\"",
      "por_que": "de dónde salen las sugerencias al escribir"
    },
    {
      "clave": "searxng.limiter",
      "valor": "false",
      "por_que": "el limitador de SearXNG va apagado porque al nodo solo le habla el frontal por loopback; el ritmo por IP lo pone nginx en la puerta"
    }
  ],
  "retencion": [
    "Las consultas no se escriben en ningún sitio: ni el frontal ni SearXNG las registran.",
    "nginx registra los accesos del sitio SIN cuerpo ni consulta, y en la pasarela oblicua ni eso (access_log off).",
    "/metricas son contadores agregados desde el arranque: cuántas consultas, cuánto tardan, cuántas fallan. Sin texto.",
    "No hay cuentas, ni cookies de búsqueda, ni identificadores de sesión."
  ],
  "clave_publica": "GuhKbUaOL5iIPdWQK/uSgJ776SGe5rV7YLNHl83R12Y=",
  "como_comprobarlo": [
    "Descarga https://blepoos.aephoron.com/privacidad/configuracion.json y https://blepoos.aephoron.com/privacidad/configuracion.firma",
    "Verifica la firma ed25519 con la clave de `clave_publica` (tool/verificar_privacidad.py lo hace en un comando).",
    "El sha256 de configuracion.json se ancla en EmpoorioChain: si el nodo te sirviera otro documento, el hash no cuadraría.",
    "Los hashes de arriba son de los ficheros que están corriendo; su CONTENIDO no se publica porque llevan credenciales."
  ]
}