World Monitor es un panel en tiempo real que agrega noticias, mercados, aviación, riesgo geográfico, infraestructura y datos de inteligencia pública. Agregó alrededor de 13,231 estrellas en GitHub Trending en una semana, pero “puede abrir la interfaz” y “ejecutarse completamente sin conexión” son dos objetivos de implementación diferentes. Este artículo primero separa los componentes y las dependencias de la red, y luego proporciona tres rutas verificables para el desarrollo del código fuente, el front-end del contenedor y el resumen de la IA local.
Primero decida qué nivel de implementación fuera de línea desea implementar
La documentación del proyecto describe tres categorías de modelos de privacidad. Lo más sencillo es abrir la aplicación localmente, pero continuar solicitando la API pública y el LLM en la nube. El segundo tipo es cooperar con Ollama, LM Studio, llama.cpp o vLLM en el escritorio, de modo que el resumen de noticias permanezca en la máquina local y otras fuentes de datos permanezcan en línea. La tercera categoría son las redes aisladas: modelos locales, PMTiles locales, instantáneas de datos preparadas previamente y desactivación de fuentes externas en vivo. La tercera categoría no se puede hacer automáticamente con un contenedor Docker porque los vuelos, los mercados, los RSS y las fuentes de riesgos deben actualizarse. Antes de comenzar, escriba un resumen de los nombres de dominio a los que se permite acceder, los requisitos de tiempo de actualización de datos y si se permite la nube.
Los componentes en ejecución de World Monitor no son solo páginas web
La interfaz es una aplicación Vanilla TypeScript y el mapa se representa mediante componentes como MapLibre GL, deck.gl y Globe.gl. La parte del servidor incluye el controlador Edge, la puerta de enlace RPC, la caché y las tareas de inicialización de datos. AIS Relay es responsable de algunos datos periódicos y de transmisión en tiempo real. Redis se utiliza para almacenar en caché, limitar y evitar que múltiples solicitudes actualicen los mismos datos al mismo tiempo. El escritorio usa Tauri con el sidecar Node.js. PMTiles puede colocar mapas base en almacenamiento de objetos o servicios LAN HTTP. Por lo tanto, el autohospedaje debe aclarar qué componentes se ejecutan por sí mismos y cuáles continúan tomando prestados servicios ascendentes.
Licencia antes del modo de implementación
El repositorio es AGPL-3.0 con instrucciones adicionales para uso comercial.
El uso personal, de investigación y educativo puede ser autohospedado sujeto a condiciones de atribución y licencia.
SaaS comercial, cambio de marca o reempaquetado requiere verificar los requisitos de licencia comercial del proyecto.
No entienda que “el código se puede descargar públicamente” significa que se puede vender incondicionalmente como fuente cerrada.
Cuando planee proporcionar servicios externos, primero lea los formularios de permiso LICENSE y README en el repositorio.
Prepare el Nodo 22 y las herramientas básicas
El registro de cambios del proyecto ha fijado el Nodo 22 como línea base de desarrollo. Se recomienda utilizar WSL2 Ubuntu en Windows, Linux y macOS pueden operar directamente.
|
|
Cuando la versión principal de Node no sea 22, use nvm para cambiar:
|
|
No mezcle paquetes globales entre nodos del sistema y nodos nvm.
Inicie el panel de desarrollo completo desde el código fuente
Primera bifurcación o clonación directa del repositorio oficial:
|
|
Guarde el SHA de confirmación y los cambios posteriores en el documento y la configuración se remontarán a la versión específica. El documento de contribución oficial proporciona un objetivo de instalación unificado:
|
|
Preparará buf, el complemento sebuf, las dependencias npm y el navegador Playwright. Para ver solo la ayuda ejecute:
|
|
Servidor de desarrollo para la variante completa:
|
|
La dirección predeterminada es http://localhost:3000.
Variantes diferentes no son repositorios diferentes
Paneles de control de World Monitor, capas de mapas, ciclos de actualización y fuentes de datos predeterminadas mediante variante. Los paneles Tecnología, Finanzas y Completo se pueden iniciar por separado:
|
|
La compilación de producción también tiene un comando correspondiente:
|
|
Al cambiar de variante se restablecerán algunas configuraciones. No trate el almacenamiento local de diferentes variantes del navegador como la misma configuración.
Las variables de entorno se activan una por una según la fuente de datos
Copie el archivo de muestra:
|
|
No complete todas las claves API a la vez.
Comience con el panel que no requiere credenciales y confirme que la interfaz, el mapa y el RPC básico estén funcionando.
Agregue noticias, mercados, vuelos o proveedores de LLM uno por uno.
Cada vez que se agrega una variable, el servicio se reinicia y se verifican las solicitudes de red.
.env.local no ingresa a Git:
|
|
Si el segundo elemento no aparece, verifique primero .gitignore y no continúe completando la clave real.
Ruta Docker para la interfaz alojada
docker/Dockerfile en el repositorio crea una imagen de arquitectura múltiple, nginx proporciona SPA y envía solicitudes de API al nivel ascendente.
Construya localmente primero:
|
|
Verifique el puerto expuesto de Dockerfile y la configuración de nginx antes de ejecutar. No adivines el puerto:
|
|
Suponiendo una exposición de imagen de 80, prueba de mapeo de solo bucle invertido disponible:
|
|
Si los puertos reales son diferentes, prevalecerá el resultado de la verificación de duplicación.
El front-end del contenedor no significa que todas las API estén localizadas
Abra el panel Red de las herramientas de desarrollo de su navegador. Actualiza la página y agrupa las solicitudes por nombre de dominio. Cualquier solicitud para acceder a Vercel, Railway, Upstash, noticias de terceros o interfaces de mercado indica que todavía existe una dependencia actual de la nube. No utilice “la página web proviene de su propio servidor” para deducir “los datos no salen de la LAN”. Cuando se requiera aislamiento, reemplace los puntos finales de API elemento por elemento o deshabilite los paneles que no funcionan localmente.
Proporcionando un resumen local
con Ollama La ruta LLM nativa de World Monitor admite servicios compatibles con OpenAI y puede descubrir modelos Ollama, LM Studio, llama.cpp y vLLM. Confirmar el servicio luego de instalar Ollama:
|
|
Extraiga un modelo de comando adecuado para recursos nativos:
|
|
Vuelva a probar el punto final compatible con OpenAI:
|
|
En la aplicación, apunte la URL base a la dirección de bucle invertido y seleccione la ID del modelo real.
La cadena alternativa de LLM local requiere verificación activa
La documentación del proyecto describe una secuencia resumida de respaldo que incluye LLM nativo, Groq, OpenRouter y el navegador T5. Si el objetivo es evitar que los datos salgan de la red, simplemente configurar Ollama no es suficiente. También elimine la clave de la nube, bloquee los nombres de dominio relacionados y confirme que el navegador no retroceda silenciosamente después de un tiempo de espera local. Detener el servicio de Ollama:
|
|
Activar resumen nuevamente. Una configuración estrictamente fuera de línea debería indicar claramente que el servicio local no está disponible en lugar de generar un resumen en la nube.
PMTiles resuelve la dependencia del mapa base
Los mapas tradicionales solicitarán continuamente mosaicos en línea por ventana gráfica. PMTiles organiza mosaicos en archivos individuales que se pueden colocar en un disco local, NAS, almacenamiento de objetos o un servicio HTTP normal. Después de preparar el archivo, realice primero el servicio HTTP mínimo:
|
|
Acceda al archivo PMTiles desde su navegador y confirme que las solicitudes de rango sean compatibles.
Sin compatibilidad con Range, es posible que el mapa intente descargar el archivo grande completo o no pueda ubicar el mosaico.
El proxy inverso debe conservar los encabezados relacionados con Range y Accept-Ranges.
Cómo elegir entre Cloudflare R2 y almacenamiento LAN
R2 es adecuado para servicios de red pública, puede reducir el ancho de banda del sitio de origen y proporcionar acceso a nivel de objeto. LAN MinIO, NAS o nginx son más adecuados para entornos aislados. Los archivos de mapas base pueden ser grandes, tener un tamaño de registro y hash antes de publicarlos:
|
|
Después de que el cliente configure la URL, use el navegador para confirmar la solicitud y devolver 206 Partial Content.
Redis no es un umbral estricto para la prueba local
El desarrollo por parte de una sola persona no requiere la implementación de un sistema de caché completo. Los servicios de red pública o para varias personas requieren que Redis controle las tormentas de actualización, almacene en caché los resultados iniciales y limite el tráfico. Iniciar Redis local:
|
|
Verificación:
|
|
Debe devolverse PONG.
Redis no debe exponerse directamente a la red pública y no depender de la configuración sin contraseña predeterminada para el acceso entre hosts.
Cómo determinar el puesto de responsabilidad cuando falla una fuente de datos externa
Comience verificando la URL, el código de estado y el tiempo de respuesta de la solicitud del navegador.
401 o 403 suele ser una clave, una cuota o un rango de autorización.
429 indica limitación de velocidad. Agregar reintentos puede agravar el problema.
5xx necesita distinguir su propio proxy, servicio ascendente y capa de caché.
Un array vacío no necesariamente es un fallo, puede ser que no haya datos para la región y rango de tiempo.
Guarde el ID de la solicitud y el encabezado de la respuesta, no se limite a tomar una captura de pantalla del panel en blanco.
El AIS y la transmisión en tiempo real no pueden ser reemplazados por una construcción estática
Las capas de interferencia AIS, de vuelo y de GPS de envío dependen de flujos de datos continuos o semillas periódicas.
Pure nginx SPA solo puede mostrar datos existentes y llamar a interfaces ascendentes.
Cuando necesite autohospedar flujos relacionados, lea scripts/ais-relay.cjs y Configuración de implementación para confirmar los permisos del proveedor de datos.
No refleje ni vuelva a publicar incondicionalmente fuentes de datos vistas en páginas web públicas.
Activar la verificación de estado y la supervisión de la actualización de los datos
La aplicación puede devolver 200, lo que no significa que se estén actualizando los datos. El monitoreo se divide en al menos tres niveles: páginas estáticas, puntos finales API y frescura de las semillas. Registre el último momento de éxito y el número de fallos consecutivos para cada fuente de datos. No se debe marcar todo el sitio como completamente saludable cuando las noticias aún se están actualizando y el mercado está a la baja.
Ejecute las comprobaciones propias del proyecto antes de construir
|
|
La existencia del comando se basa en el repositorio actual package.json y make help.
Cuando la prueba de datos falla, no elimine la fuente del error para que el CI se vuelva verde. Primero confirme si el formato ha cambiado.
E2E requiere dependencias del navegador y datos de prueba estables, y la CI del contenedor requiere memoria compartida reservada.
El proxy inverso solo abre la entrada requerida
La implementación de la red pública utiliza HTTPS y deja el extremo de administración, Redis, Ollama y los puntos finales internos en la red privada. Ollama no debería estar expuesto directamente a Internet de forma predeterminada. Si el front-end y la API están en dominios separados, establezca explícitamente la lista de permitidos de CORS. No utilice una combinación que permita que cualquier origen también lleve credenciales.
Haz un simulacro de desconexión real
Desconectarse de Internet después de cargar un panel es propenso a generar falsos positivos porque el trabajador del servicio, la caché del navegador y IndexedDB aún contienen datos antiguos. Primero borre el perfil de prueba, bloquee los nombres de dominio externos y luego vuelva a abrir la aplicación. Registre qué paneles son normales, cuáles muestran caché antiguo y cuáles informan errores. Compruebe que la marca de tiempo identifique claramente que los datos han caducado. El modo sin conexión debería degradarse con elegancia en lugar de disfrazar la información antigua como información en tiempo real.
Preservar la variante y la configuración del mapa al actualizar
Guarde la confirmación, el nombre de la variable .env.local, la URL de PMTiles, el esquema de Redis y la configuración del proxy inverso antes de realizar la actualización.
|
|
Primero cree el nuevo árbol de trabajo, no sobrescriba directamente el directorio en ejecución. El formato de configuración del almacenamiento local del front-end puede cambiar. Verifique la variante, capa y ciclo de actualización después de la actualización.
Lista de determinación completada por el autohospedaje
- Se puede crear la página con la variante requerida.
- Los puertos de imágenes de Docker surgen de una inspección, no de conjeturas.
- Todas las claves API están fuera de Git.
- No va silenciosamente a la nube cuando falla el LLM local.
- PMTiles devuelve una solicitud de rango.
- Redis, Ollama y los servicios internos no están expuestos a la red pública.
- Cada fuente de datos en tiempo real tiene una última hora de actualización.
- La prueba fuera de línea puede distinguir entre caché y disponibilidad real.
- Licencia comprobada para uso comercial.
Los límites del autohospedaje de World Monitor dependen de cuántas fuentes de datos en vivo conserve. Primero, dibujar claramente las dependencias de la red y luego decidir si usar una interfaz local, un resumen de privacidad o un aislamiento completo es más confiable que seguir directamente “un comando de Docker”.
Primero distinga entre páginas web, CLI, API REST y MCP
Esta sección resuelve el problema de “primero distinguir entre páginas web, CLI, API REST y MCP”. Primero registre el estado actual, luego realice la acción mínima y finalmente confirme el resultado con evidencia independiente.
Para World Monitor, esto se basa en lo siguiente: los MCP públicos permiten que se enumeren las herramientas, pero las llamadas que requieren autorización aún requieren una clave API u OAuth; La información agregada devuelta debe rastrearse hasta la fuente original. No abra accidentalmente más permisos en esta etapa.
|
|
Conservar la salida del comando y la marca de tiempo después de la ejecución. Si la salida depende de variables temporales en la terminal actual, abra una nueva terminal y verifique nuevamente.
¿Qué se puede verificar al exponer herramientas/lista?
Procese en el siguiente orden:
- Lea la versión real y la configuración actual.
- Cambie solo una configuración relevante para esta sección.
- Ejecute una solicitud de solo lectura o revocable.
- Verifique los registros, los códigos de salida y los archivos finales.
- Revierta la modificación anterior si falla.
|
|
El estándar de finalización aquí no es la apariencia de la interfaz, sino “lo que se puede verificar mediante herramientas/listas públicas” con resultados repetibles.
Obtener y guardar la clave API de World Monitor
| Qué comprobar | Rendimiento aceptable | Señales de que debes parar |
|---|---|---|
| Obtener y guardar la clave API de World Monitor | Claro alcance de entrada y salida | Expandir automáticamente a otros proyectos o cuentas |
| Permisos | Obtenga solo los permisos que necesita para completar la tarea | Requerir derechos de administrador o clave completa |
| Iniciar sesión | No se pudo localizar y ha sido insensibilizado | Aparece Token, Cookie o texto privado |
| Revertir | Puede restaurar el estado anterior | Las modificaciones son irreversibles y no hay respaldo |
|
|
Una vez que aparezca la señal de parada en la tabla, deshaga primero los cambios en esta sección y no continúe con la automatización posterior.
Registrar MCP HTTP transmitible en Codex
Prepare una muestra de éxito y una muestra de error sobre “Registro de MCP HTTP transmitible en Codex”. Las muestras exitosas verifican la ruta normal y las muestras fallidas verifican si las restricciones realmente surten efecto.
|
|
Se recomienda registrar los siguientes cuatro elementos:
- Versión previa a la ejecución o confirmación de Git.
- Entrada real, no se registra ningún valor secreto.
- Salida observable, código de estado o diferencia.
- Acciones de recuperación y revisión de resultados tras la recuperación.
Si la causa del error aún no está clara, modifique sólo una variable a la vez; no cambie el puerto, el tiempo de ejecución, el proveedor y el proxy al mismo tiempo.
Utilice CLI para ejecutar primero una consulta de riesgo país
Esta sección aborda “Uso de la CLI para ejecutar primero una consulta de riesgo país”. Primero registre el estado actual, luego realice la acción mínima y finalmente confirme el resultado con evidencia independiente.
Restringir los resultados de MCP a investigación de solo lectura
|
|
El criterio de finalización aquí no es la apariencia de la interfaz, sino “restringir los resultados de MCP a estudios de solo lectura” con resultados reproducibles.
Cómo devolver extractos de noticias a la fuente original
| Qué comprobar | Rendimiento aceptable | Señales de que debes parar |
|---|---|---|
| Cómo devolver resúmenes de noticias a la fuente original | Claro alcance de entrada y salida | Expandir automáticamente a otros proyectos o cuentas |
| Permisos | Obtenga solo los permisos que necesita para completar la tarea | Requerir derechos de administrador o clave completa |
| Iniciar sesión | No se pudo localizar y ha sido insensibilizado | Aparece Token, Cookie o texto privado |
| Revertir | Puede restaurar el estado anterior | Las modificaciones son irreversibles y no hay respaldo |
Los datos de mercado y geográficos no se pueden confundir
Prepare una muestra de éxito y una muestra de fracaso en torno a “No se pueden confundir los datos geográficos y de mercado”. Las muestras exitosas verifican la ruta normal y las muestras fallidas verifican si las restricciones realmente surten efecto.
Maneja 401, 403 y la lista de herramientas está vacía
Esta sección resuelve “Manejo de 401, 403 y lista de herramientas vacía”. Primero registre el estado actual, luego realice la acción mínima y finalmente confirme el resultado con evidencia independiente.
|
|
Controlar el alcance de la consulta y el costo de la llamada
El estándar de finalización aquí no es la apariencia de la interfaz, sino “controlar el alcance de la consulta y el costo de la llamada” para obtener resultados repetibles.
Revocar claves y eliminar la configuración de MCP
| Qué comprobar | Rendimiento aceptable | Señales de que debes parar |
|---|---|---|
| Revocar claves y eliminar configuraciones de MCP | Claro alcance de entrada y salida | Expandir automáticamente a otros proyectos o cuentas |
| Permisos | Obtenga solo los permisos que necesita para completar la tarea | Requerir derechos de administrador o clave completa |
| Iniciar sesión | No se pudo localizar y ha sido insensibilizado | Aparece Token, Cookie o texto privado |
| Revertir | Puede restaurar el estado anterior | Las modificaciones son irreversibles y no hay respaldo |
|
|
Una lista de verificación de verificación de inteligencia replicable
Prepare una muestra de éxito y una muestra de fracaso en torno a “una lista de verificación de verificación de inteligencia replicable”. Las muestras exitosas verifican la ruta normal y las muestras fallidas verifican si las restricciones realmente surten efecto.
Cómo elegir entre OAuth y clave API
Esta sección resuelve “Cómo elegir OAuth y clave API”. Primero registre el estado actual, luego realice la acción mínima y finalmente confirme el resultado con evidencia independiente.
Limitar los países e indicadores que se pueden consultar
El criterio de finalización aquí no es que aparezca la interfaz, sino que “limitar los países y los indicadores que se pueden consultar” tenga resultados repetibles.
Validación cruzada de dos fuentes para el mismo evento
| Qué comprobar | Rendimiento aceptable | Señales de que debes parar |
|---|---|---|
| Validación cruzada de dos fuentes para el mismo evento | Claro alcance de entrada y salida | Expandir automáticamente a otros proyectos o cuentas |
| Permisos | Obtenga solo los permisos que necesita para completar la tarea | Requerir derechos de administrador o clave completa |
| Iniciar sesión | No se pudo localizar y ha sido insensibilizado | Aparece Token, Cookie o texto privado |
| Revertir | Puede restaurar el estado anterior | Las modificaciones son irreversibles y no hay respaldo |
Eliminar conexiones muertas de World Monitor
Prepare una muestra de éxito y una muestra de error sobre “Eliminar conexión inactiva de World Monitor”. Las muestras exitosas verifican la ruta normal y las muestras fallidas verifican si las restricciones realmente surten efecto.
Preguntas frecuentes sobre Monitor Mundial
¿Es posible omitir el entorno de prueba y usar World Monitor directamente en el proyecto oficial?
No recomendado. Primero complete al menos una solicitud de éxito mínimo, una falla intencional y un simulacro de recuperación.
El comando World Monitor se puede ejecutar pero el resultado es incorrecto, ¿dónde debo verificar primero?
Primero verifique el rango de entrada, la configuración efectiva real y la respuesta ascendente, y luego verifique el resumen del modelo. Un proceso normal no significa que los resultados del negocio sean correctos.
¿Cómo evitar que las claves o tokens de World Monitor ingresen a Git?
Utilice variables de entorno del sistema, administración de secretos o archivos de configuración fuera del proyecto y busque diferencias antes de confirmar. Las claves deben rotarse después de que se descubre una infracción.
¿Qué es lo que más comúnmente se pasa por alto al actualizar World Monitor?
Es más fácil pasar por alto el formato de configuración, la dirección de escucha predeterminada, el alcance de los permisos y la compatibilidad de la caché. Guarde la versión y los ejemplos de verificación antes de actualizar.
Información del proyecto
- Repositorio oficial de World Monitor
- Documento de arquitectura de World Monitor
- Registro de actualización de World Monitor
- Documento de contribución y desarrollo de World Monitor
Notas de autoalojamiento de World Monitor con Docker Compose
koala73/worldmonitor es un panel global de inteligencia en tiempo real para agregar noticias, eventos geopolíticos, estado de infraestructura y distintos canales temáticos. Se parece más a una página de conciencia situacional y funciona bien como punto de entrada autohospedado para monitoreo de noticias.
Repositorio del proyecto:
https://github.com/koala73/worldmonitor
Sitio oficial:
Inicio local
Los comandos de inicio rápido del README son:
|
|
Después de iniciar, comprueba primero que la página predeterminada funcione antes de pensar en desplegar.
Cómo ejecutar distintos canales
El proyecto incluye varios comandos de desarrollo por canal:
|
|
Si solo te interesan las noticias tecnológicas, empieza con dev:tech. Si te interesan finanzas o materias primas, prueba dev:finance y dev:commodity.
Build y comprobaciones
Antes de hacer commit o desplegar, conviene ejecutar:
|
|
Estos comandos pueden detectar antes problemas de tipos en TypeScript y fallos de build de producción.
Usos adecuados
World Monitor encaja para:
- Crear una entrada propia de noticias en tiempo real.
- Montar paneles temáticos para un equipo, como tecnología, energía, finanzas o materias primas.
- Observar flujos de noticias de múltiples fuentes, en vez de depender solo de las recomendaciones de una plataforma.
- Extenderlo como dashboard interno de inteligencia.
Sugerencias de despliegue
El README menciona una self-hosting guide, y las opciones de despliegue incluyen Vercel, Docker y despliegue estático. Conviene hacerlo funcionar primero en local y luego desplegarlo en Vercel o en tu propio servidor.
Al usarlo, recuerda que un panel de agregación de noticias solo te ayuda a ver señales más rápido. No significa que toda la información esté verificada. Para contenidos financieros, geopolíticos o de seguridad, es mejor abrir las fuentes originales y cruzar la información.