WorldMonitor: Real-Time Global Intelligence Dashboard for Geopolitical Monitoring

A real-time AI-powered global intelligence dashboard aggregating news, geopolitical events, and infrastructure tracking. 59K stars. Open-source alternative to Palantir Gotham.

  • Updated 2026-06-25

WorldMonitor: Real-Time Global Intelligence Dashboard #

WorldMonitor is an open-source, real-time global intelligence dashboard that aggregates news, geopolitical events, and infrastructure data into a unified situational awareness interface. With 59,524 GitHub stars, it has emerged as the leading open-source alternative to commercial platforms like Palantir Gotham for geopolitical monitoring and OSINT analysis.

This article covers installation, configuration, data sources, API usage, deployment options, and practical applications for journalists, researchers, and security analysts.

TL;DR #

WorldMonitor transforms fragmented global data streams into a single, actionable intelligence dashboard. It ingests news from 50+ sources, tracks geopolitical events in real-time, monitors critical infrastructure worldwide, and provides AI-powered analysis with customizable alerting. Perfect for anyone who needs a comprehensive, real-time view of global events without paying enterprise prices.

What Is WorldMonitor? #

WorldMonitor is a self-hosted intelligence dashboard that combines multiple data sources into a unified view of global events. Unlike traditional news aggregators that simply collect headlines, WorldMonitor applies AI-powered analysis to correlate events, detect patterns, and surface actionable intelligence.

The platform was designed for journalists, researchers, policy analysts, and security professionals who need real-time situational awareness across multiple geographic regions and data categories. It supports both single-instance deployments for individual analysts and distributed architectures for team-wide operations.

Key capabilities include:

  • Multi-source news aggregation from RSS feeds, APIs, and web scrapers covering 50+ global news sources
  • Geopolitical event tracking with real-time mapping and timeline visualization
  • Infrastructure monitoring for critical facilities including power grids, telecom towers, and transportation hubs
  • AI-powered correlation engine that identifies relationships between seemingly unrelated events
  • Customizable alerting based on keywords, regions, event types, or severity thresholds
  • Historical analysis with searchable archive spanning months of aggregated data
  • API access for programmatic integration with other intelligence tools

Installation Guide #

Prerequisites #

Before installing WorldMonitor, ensure your system meets the following requirements:

  • Operating System: Ubuntu 22.04 LTS, Debian 12, or macOS 14+
  • CPU: 4 cores minimum (8 cores recommended for production)
  • RAM: 8GB minimum (16GB recommended)
  • Storage: 50GB SSD (grows with data retention period)
  • Network: Outbound internet access for data collection
  • Dependencies: Node.js 20+, Python 3.11+, PostgreSQL 15+

The fastest way to get started is with the provided Docker Compose configuration:

git clone https://github.com/koala73/worldmonitor.git
cd worldmonitor

# Copy the example configuration
cp config.example.yaml config.yaml

# Start all services
docker compose up -d

This spins up the application server, PostgreSQL database, Redis cache, and the web frontend. Default credentials are set in the .env file — change them immediately for production use.

Option 2: Manual Installation #

For users who need fine-grained control over their deployment:

# Clone the repository
git clone https://github.com/koala73/worldmonitor.git
cd worldmonitor

# Install backend dependencies
pip install -r requirements.txt

# Install frontend dependencies
cd frontend && npm install && cd ..

# Set up the database
createdb worldmonitor
psql worldmonitor < migrations/001_init.sql

# Configure the application
cp config.example.yaml config.yaml
# Edit config.yaml with your settings

# Run database migrations
python manage.py migrate

# Start the application server
python manage.py runserver 0.0.0.0:8000

# Start the frontend (in a separate terminal)
cd frontend && npm run start

Option 3: Kubernetes Deployment #

For production-scale deployments across multiple nodes:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: worldmonitor
spec:
  replicas: 3
  selector:
    matchLabels:
      app: worldmonitor
  template:
    metadata:
      labels:
        app: worldmonitor
    spec:
      containers:
      - name: worldmonitor
        image: ghcr.io/koala73/worldmonitor:latest
        ports:
        - containerPort: 8000
        envFrom:
        - configMapRef:
            name: worldmonitor-config
        resources:
          requests:
            memory: "2Gi"
            cpu: "1000m"
          limits:
            memory: "4Gi"
            cpu: "2000m"

Configuration Deep Dive #

Data Sources Configuration #

WorldMonitor supports multiple data source types. Configure them in config.yaml:

data_sources:
  rss_feeds:
    enabled: true

### AI Analysis Pipeline

The AI-powered analysis engine processes incoming data through multiple stages:

```python
from worldmonitor.ai.pipeline import AnalysisPipeline
from worldmonitor.ai.models import EventClassifier, CorrelationEngine

# Initialize the analysis pipeline
pipeline = AnalysisPipeline(
    classifier=EventClassifier(model="worldmonitor/classifier-v3"),
    correlation=CorrelationEngine(model="worldmonitor/correlation-v2"),
    embedding_model="worldmonitor/embedding-multilingual"
)

# Process a batch of news articles
results = await pipeline.process_batch(
    articles=batch_data,
    min_confidence=0.7,
    include_correlations=True
)

# Get correlated events for a specific region
correlated = await pipeline.get_correlated_events(
    region="east_asia",
    time_window="24h",
    event_types=["political", "economic"]
)

Alert Configuration #

Set up custom alerts based on your monitoring priorities:

alerts:
  rules:
    - name: "Major Conflict Detection"
      conditions:
        - field: "event_type"
          operator: "eq"
          value: "armed_conflict"
        - field: "severity"
          operator: "gte"
          value: 7
      actions:
        - type: "notification"
          channels: ["email", "telegram"]
          template: "high_severity_conflict"
        - type: "dashboard_highlight"
          duration: "3600"

    - name: "Infrastructure Disruption"
      conditions:
        - field: "infrastructure_type"
          operator: "in"
          value: ["power_grid", "telecom", "transport"]
        - field: "status"
          operator: "eq"
          value: "disrupted"
      actions:
        - type: "notification"
          channels: ["email", "slack", "pagerduty"]
          template: "infrastructure_alert"
        - type: "geopoint_map"
          zoom_level: 12

    - name: "Keyword Surge Detection"
      conditions:
        - field: "keywords"
          operator: "contains_any"
          value: ["sanctions", "embargo", "tariff", "trade_war"]
        - field: "volume_change"
          operator: "gte"
          value: 200
      actions:
        - type: "notification"
          channels: ["email"]
          template: "keyword_surge"
          cooldown: "1800"

Core Features in Detail #

Global News Aggregation Engine #

WorldMonitor’s news aggregation engine pulls from over 50 sources across multiple languages. The system uses intelligent deduplication to avoid reporting the same story from multiple outlets, while preserving regional perspectives on major events.

# Query aggregated news with filters
curl -X GET "https://your-worldmonitor/api/v1/news" \
  -H "Authorization: Bearer ${WM_API_KEY}" \
  -d "region=east_asia&categories=politics,economy&min_severity=5&hours=24"

# Get deduplicated stories
curl -X GET "https://your-worldmonitor/api/v1/news/deduplicated" \
  -H "Authorization: Bearer ${WM_API_KEY}" \
  -d "cluster_window=3600&language=en"

Geopolitical Event Mapping #

Events are plotted on an interactive world map with color-coded severity levels. Users can filter by event type, region, date range, and source confidence score. The timeline view shows event progression and identifies cascading effects.

Infrastructure Tracking Module #

The infrastructure module maintains a database of critical facilities worldwide, including:

  • Power plants and electrical grids
  • Telecommunications towers and fiber routes
  • Transportation hubs (airports, seaports, rail stations)
  • Water treatment facilities
  • Data centers and cloud infrastructure

Each facility is tagged with ownership, capacity, and risk level. Changes in status trigger automatic alerts and map updates.

AI Correlation Engine #

The proprietary correlation engine identifies relationships between events that appear unrelated on the surface. For example, it might detect that a political statement in one country correlates with market movements in another, or that infrastructure disruptions in Region A preceded similar events in Region B.

from worldmonitor.correlation import CorrelationEngine

engine = CorrelationEngine()

# Find correlations between recent events
correlations = engine.find_correlations(
    events=event_list,
    max_lag_hours=72,
    min_strength=0.6,
    correlation_types=["temporal", "geographic", "thematic"]
)

for corr in correlations:
    print(f"Strength: {corr.strength:.2f}")
    print(f"Type: {corr.type}")
    print(f"Events: {corr.event_ids}")
    print(f"Explanation: {corr.explanation}")

API Reference #

WorldMonitor exposes a comprehensive REST API for programmatic access:

Authentication #

# Obtain an API token
curl -X POST "https://your-worldmonitor/api/v1/auth/login" \
  -H "Content-Type: application/json" \
  -d '{"username": "admin", "password": "${WM_PASSWORD}"}'

News API #

# List recent news with pagination
curl "https://your-worldmonitor/api/v1/news?page=1&per_page=50" \
  -H "Authorization: Bearer ${WM_TOKEN}"

# Get news by region
curl "https://your-worldmonitor/api/v1/news?region=south_asia&date_from=2026-06-01" \
  -H "Authorization: Bearer ${WM_TOKEN}"

# Search by keyword
curl "https://your-worldmonitor/api/v1/news/search?q=trade+sanctions" \
  -H "Authorization: Bearer ${WM_TOKEN}"

Events API #

# List geopolitical events
curl "https://your-worldmonitor/api/v1/events?type=political&severity_gte=6" \
  -H "Authorization: Bearer ${WM_TOKEN}"

# Get event details
curl "https://your-worldmonitor/api/v1/events/EVT-2026-0625-001" \
  -H "Authorization: Bearer ${WM_TOKEN}"

# Get event timeline
curl "https://your-worldmonitor/api/v1/events/EVT-2026-0625-001/timeline" \
  -H "Authorization: Bearer ${WM_TOKEN}"

Alerts API #

# List active alerts
curl "https://your-worldmonitor/api/v1/alerts?status=active" \
  -H "Authorization: Bearer ${WM_TOKEN}"

# Acknowledge an alert
curl -X PUT "https://your-worldmonitor/api/v1/alerts/ALT-001/acknowledge" \
  -H "Authorization: Bearer ${WM_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{"acknowledged_by": "analyst@example.com", "notes": "Investigating"}'

# Create custom alert rule
curl -X POST "https://your-worldmonitor/api/v1/alerts/rules" \
  -H "Authorization: Bearer ${WM_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Custom Rule",
    "conditions": {
      "regions": ["east_asia"],
      "event_types": ["political"],
      "severity_min": 5
    },
    "actions": {
      "channels": ["email"],
      "recipients": ["team@example.com"]
    }
  }'

Deployment Options #

Single-Instance (Personal Analyst) #

For individual journalists or researchers, a single Docker Compose deployment on a 4-core VPS is sufficient:

Server: 4 vCPU, 8GB RAM, 100GB SSD
Cost: ~$20/month (DigitalOcean / HTStack)
Capacity: ~1,000 events/day, 30-day retention

Team Deployment #

For analyst teams of 5-20 people, add Redis clustering and PostgreSQL read replicas:

App Servers: 3x 4 vCPU, 16GB RAM (behind load balancer)
Database: PostgreSQL primary + 2 read replicas
Cache: Redis Cluster (3 nodes)
Storage: 500GB SSD + S3 archival
Cost: ~$200/month
Capacity: ~10,000 events/day, 90-day retention

Enterprise/Distributed #

For government or large organizational deployments:

Multi-region deployment with data sovereignty controls
Horizontal scaling across 10+ application nodes
PostgreSQL with Patroni for automatic failover
Object storage for historical data archival
Integration with existing SIEM/SOC platforms
Cost: Custom pricing
Capacity: Unlimited, with geo-distributed data collection

Integration with Other Tools #

WorldMonitor integrates seamlessly with popular intelligence and communication tools:

Slack Integration #

# Install the Slack app
curl -X POST "https://your-worldmonitor/api/v1/integrations/slack" \
  -H "Authorization: Bearer ${WM_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "channel": "#global-events",
    "alert_rules": ["major_conflict", "infrastructure_disruption"],
    "digest_frequency": "hourly"
  }'

Telegram Bot #

# Create a Telegram bot integration
curl -X POST "https://your-worldmonitor/api/v1/integrations/telegram" \
  -H "Authorization: Bearer ${WM_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "bot_token": "${TELEGRAM_BOT_TOKEN}",
    "chat_id": "${TELEGRAM_CHAT_ID}",
    "alert_rules": ["all_high_severity"]
  }'

Grafana Dashboard #

# Export metrics for Grafana
curl -X POST "https://your-worldmonitor/api/v1/metrics/grafana" \
  -H "Authorization: Bearer ${WM_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "datasource": "prometheus",
    "dashboard_template": "worldmonitor-overview"
  }'

ELK Stack / Elasticsearch #

# WorldMonitor Elasticsearch output configuration
output:
  elasticsearch:
    hosts: ["https://es-cluster.internal:9200"]
    index: "worldmonitor-%{+yyyy.MM.dd}"
    username: "${ES_USER}"
    password: "${ES_PASS}"
    template_overwrite: true
    bulk_size: 500
    flush_interval: 5

Comparison: WorldMonitor vs Commercial Alternatives #

FeatureWorldMonitorPalantir GothamMeltwaterBrandwatch
Open SourceYesNoNoNo
Self-HostedYesNoNoCloud only
PriceFree$50K+/year$25K+/year$15K+/year
Custom Data SourcesUnlimitedLimited~200~500
AI CorrelationBuilt-inExtra costBasicAdvanced
API AccessFull RESTGraphQLPartialREST
Infrastructure TrackingYesYesNoNo
Multi-Language20+10+30+25+
Custom AlertsYesYesYesYes
Team CollaborationBuilt-inExtra costExtraExtra

Real-World Use Cases #

Journalistic Investigation #

Investigative journalists can use WorldMonitor to track events across multiple regions simultaneously, correlate developments that span borders, and build comprehensive timelines of complex situations. The multi-language support enables monitoring of local sources that English-only aggregators miss.

Risk Assessment for Businesses #

Multinational corporations use WorldMonitor to assess geopolitical risks affecting their operations. By monitoring infrastructure disruptions, political instability, and regulatory changes across their operating regions, businesses can proactively adjust supply chains and mitigate exposure.

Academic Research #

Researchers studying international relations, conflict dynamics, or global economic trends leverage WorldMonitor’s historical data archive and API for quantitative analysis. The structured event data enables statistical modeling of geopolitical phenomena.

Emergency Response Coordination #

During crises, WorldMonitor’s real-time event tracking helps coordinate humanitarian response efforts. The infrastructure module identifies affected facilities, while the news aggregation provides ground-level reporting from multiple sources.

Limitations #

While WorldMonitor is powerful, users should be aware of its limitations:

  • Data source dependency: Quality depends on the reliability of source feeds. Some regions have limited coverage due to fewer available sources.
  • AI accuracy: The correlation engine is probabilistic, not deterministic. False positives can occur, especially for complex geopolitical situations.
  • Resource intensive: Full analysis pipeline requires significant CPU and memory. Small deployments may need to reduce the number of concurrent data sources.
  • Setup complexity: Initial configuration of data sources, AI models, and alert rules requires technical expertise.
  • No built-in translation: While the system ingests multi-language content, it does not provide automatic translation of source material.

Getting Started Checklist #

# 1. Clone and configure
git clone https://github.com/koala73/worldmonitor.git
cd worldmonitor
cp config.example.yaml config.yaml

# 2. Set API keys for data sources
export GDELT_API_KEY="your-gdelt-key"
export ACLED_API_KEY="your-acled-key"

# 3. Start with Docker
docker compose up -d

# 4. Verify installation
curl http://localhost:8000/api/v1/status

# 5. Add your first alert rule
curl -X POST http://localhost:8000/api/v1/alerts/rules \
  -H "Content-Type: application/json" \
  -d '{"name": "Test Alert", "conditions": {"severity_gte": 8}, "actions": {"channels": ["email"]}}'

# 6. Access the dashboard
# Open http://localhost:3000 in your browser

Conclusion #

WorldMonitor represents a significant advancement in open-source geopolitical intelligence. By combining multi-source news aggregation, AI-powered correlation, and infrastructure tracking in a single self-hosted platform, it democratizes access to capabilities that were previously available only through expensive commercial solutions.

Whether you are a journalist tracking global events, a researcher analyzing geopolitical patterns, or a business monitoring operational risks, WorldMonitor provides the tools you need to stay informed. Its open-source nature means you control your data, your analysis, and your privacy — no vendor lock-in, no data selling, no surprises.

The platform continues to evolve rapidly with an active community contributing new data sources, analysis models, and integration modules. For anyone serious about global situational awareness, WorldMonitor is now a must-have tool in the intelligence stack.

Sources #

CTA #

Join our community and stay updated on global events. Follow us on GitHub for the latest releases and join the Discord for community discussions and support.

For those who want to deploy WorldMonitor quickly, consider hosting it on HTStack for affordable VPS instances starting at $5/month, or DigitalOcean for their managed Kubernetes option for team deployments.

FAQ #

q: Can I use WorldMonitor without an internet connection? #

a: WorldMonitor requires internet access to collect data from external sources. However, once data is collected, you can configure the system to operate in air-gapped mode where the dashboard functions normally but no new data is fetched. This is useful for secure environments.

q: How much data storage does WorldMonitor need? #

a: Storage depends on your retention policy. A typical single-instance deployment stores approximately 500MB per month of aggregated news and event data. With compression and archival to object storage, 50GB provides about a year of retention on a personal deployment.

q: Does WorldMonitor support custom data source plugins? #

a: Yes. WorldMonitor has a plugin architecture that allows developers to create custom data source connectors. The plugin SDK is documented in the GitHub repository and supports Python and TypeScript plugins. Community-contributed plugins are available in the plugins directory.

q: Can I export data from WorldMonitor for analysis? #

a: Absolutely. WorldMonitor supports data export in multiple formats including CSV, JSON, GeoJSON, and Parquet. You can also query the underlying Elasticsearch index directly or use the REST API to pull specific datasets for analysis.

q: Is WorldMonitor suitable for real-time crisis monitoring? #

a: Yes. WorldMonitor is specifically designed for real-time monitoring with configurable alert thresholds and sub-minute data refresh intervals. Many emergency response organizations use it as part of their situational awareness infrastructure during active crises.

q: How does the AI correlation engine handle conflicting information? #

a: The correlation engine assigns confidence scores to each data source based on historical accuracy and cross-referencing. When sources conflict, it applies a weighted voting mechanism and flags discrepancies for human review. The system also tracks source reliability over time and adjusts weights accordingly.

💬 Discussion