Skip to main content

Installation Overview

World Monitor can be deployed in three ways:

Hosted Web App

Use the production deployment at worldmonitor.app — no setup required

Desktop Application

Native app for macOS, Windows, and Linux with local API sidecar

Self-Hosted

Deploy your own instance on Vercel, Railway, or custom infrastructure

Desktop Installation

The desktop app provides the best experience with OS integration, local AI, and offline capabilities.

System Requirements

  • macOS 11.0 (Big Sur) or later
  • Apple Silicon (M1/M2/M3) or Intel x64
  • 200 MB disk space
  • 4 GB RAM minimum (8 GB recommended for local AI)

Download and Install

1

Download Installer

Download the installer for your platform:
Apple Silicon (M1/M2/M3)
curl -L "https://worldmonitor.app/api/download?platform=macos-arm64" -o WorldMonitor.dmg
Intel
curl -L "https://worldmonitor.app/api/download?platform=macos-x64" -o WorldMonitor.dmg
Or visit GitHub Releases and download:
  • World.Monitor_<version>_aarch64.dmg (Apple Silicon)
  • World.Monitor_<version>_x64.dmg (Intel)
2

Install Application

  1. Open the downloaded .dmg file
  2. Drag World Monitor to the Applications folder
  3. Eject the DMG
  4. Open Applications and launch World Monitor
On first launch, macOS may show a security warning:“World Monitor cannot be opened because it is from an unidentified developer.”Solution: Go to System Settings → Privacy & Security and click Open Anyway
3

First Launch

On first launch, World Monitor:
  1. Starts the Node.js sidecar on a random port (e.g., http://127.0.0.1:54321)
  2. Generates a unique session token for localhost security
  3. Loads the dashboard with cloud fallback enabled
The sidecar logs are written to:
  • macOS/Linux: ~/Library/Logs/WorldMonitor/sidecar.log
  • Windows: %APPDATA%\WorldMonitor\logs\sidecar.log
The app works immediately without configuration. API keys are optional for enhanced features.

Download Variants

Desktop installers are available for all four variants:
Default geopolitical variant:
# macOS ARM64
curl -L "https://worldmonitor.app/api/download?platform=macos-arm64&variant=full" -o WorldMonitor.dmg

# Windows
curl -L "https://worldmonitor.app/api/download?platform=windows-exe&variant=full" -o WorldMonitor.exe

Web App Installation (PWA)

Install World Monitor as a Progressive Web App for an app-like experience.

Install on Desktop

  1. Visit worldmonitor.app
  2. Click the install icon in the address bar (puzzle piece or plus sign)
  3. Click Install in the prompt
  4. Launch from Chrome Apps or Start Menu
Manual installation:
  1. Click (three dots) → Install World Monitor
  2. Confirm installation

Install on Mobile

  1. Visit worldmonitor.app in Safari
  2. Tap the Share button (square with arrow)
  3. Scroll down and tap Add to Home Screen
  4. Tap Add
  5. Launch from Home Screen

PWA Features

The PWA provides:
  • Full-screen standalone mode (no browser UI)
  • Offline map support (500 tiles cached, 30-day TTL)
  • Faster startup with aggressive asset caching
  • Auto-updating service worker (checks every 60 minutes)
  • Offline fallback page with retry button
The PWA does not support:
  • Local AI models (Ollama/LM Studio)
  • OS keychain integration
  • Local API sidecar
For these features, use the native desktop app.

Self-Hosted Deployment

Deploy your own instance of World Monitor for full control.

Prerequisites

node --version  # v18.0.0 or later
npm --version   # v9.0.0 or later

Local Development

1

Install Dependencies

npm install
2

Configure Environment

Copy the example environment file:
cp .env.example .env.local
Edit .env.local and add optional API keys:
# AI Summarization
GROQ_API_KEY=your_groq_key_here
OPENROUTER_API_KEY=your_openrouter_key_here

# Caching (Redis)
UPSTASH_REDIS_REST_URL=your_redis_url
UPSTASH_REDIS_REST_TOKEN=your_redis_token

# Conflict Data
ACLED_ACCESS_TOKEN=your_acled_token

# Satellite Fires
NASA_FIRMS_API_KEY=your_firms_key
See Environment Variables for full list.
3

Start Development Server

Default variant (World Monitor):
npm run dev
Tech variant:
npm run dev:tech
Finance variant:
npm run dev:finance
Open http://localhost:3000 in your browser.

Production Build

1

Build Static Assets

# Default variant
npm run build

# Tech variant
npm run build:tech

# Finance variant
npm run build:finance
Output: dist/ directory with static HTML, CSS, JS, and assets.
2

Preview Build

npm run preview
Open http://localhost:4173 to test the production build.

Deploy to Vercel

1

Install Vercel CLI

npm install -g vercel
2

Deploy

vercel
Follow the prompts:
  • Link to existing project or create new
  • Select deployment region
  • Configure environment variables
3

Configure Environment Variables

Add secrets via Vercel dashboard or CLI:
vercel env add GROQ_API_KEY
vercel env add UPSTASH_REDIS_REST_URL
vercel env add UPSTASH_REDIS_REST_TOKEN
See Vercel Deployment for detailed configuration.

Deploy Railway Relay (Optional)

For AIS vessel tracking, OpenSky aircraft data, and Telegram OSINT:
1

Create Railway Project

  1. Sign up at railway.app
  2. Create new project
  3. Deploy from GitHub repository
2

Configure Environment Variables

Add to Railway dashboard:
AISSTREAM_API_KEY=your_ais_key
OPENSKY_CLIENT_ID=your_opensky_id
OPENSKY_CLIENT_SECRET=your_opensky_secret
TELEGRAM_API_ID=your_telegram_id
TELEGRAM_API_HASH=your_telegram_hash
TELEGRAM_SESSION=your_session_string
RELAY_SHARED_SECRET=random_secret_here
3

Update Vercel Environment

Add relay connection in Vercel:
WS_RELAY_URL=https://your-railway-app.railway.app
RELAY_SHARED_SECRET=same_secret_as_railway

Desktop App Development

Build the desktop app from source:

Prerequisites

# Install Xcode Command Line Tools
xcode-select --install

# Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# Install Node.js
brew install node

Build Commands

# Run in dev mode with DevTools
npm run desktop:dev

Package Desktop App

# Build and package for macOS
npm run desktop:package:macos:full

# With code signing
npm run desktop:package:macos:full:sign

Verification

Test Installation

Verify the desktop app is working:
  1. Launch app — Should open without errors
  2. Check sidecar — Look for “Sidecar running on port…” in logs
  3. Test API — News feeds and map layers should load
  4. Open Settings — Press Cmd+, (macOS) or Ctrl+, (Windows/Linux)
  5. Check DevTools — Press Cmd+Alt+I (macOS) or Ctrl+Alt+I (Windows/Linux)
If the sidecar fails to start, check logs:
# macOS/Linux
tail -f ~/Library/Logs/WorldMonitor/sidecar.log

# Windows
type %APPDATA%\WorldMonitor\logs\sidecar.log
Verify your web deployment:
  1. Visit URL — Dashboard should load
  2. Check console — No errors in browser DevTools (F12)
  3. Test API endpoints/api/earthquake/fdsnws/event/1/query?format=geojson&limit=100
  4. Load news feeds — News panels should populate
  5. Test AI brief — Click “World Brief” badge
Common issues:
  • CORS errors — Check Vercel environment variables
  • API timeouts — Increase serverless function timeout
  • Missing secrets — Add environment variables in Vercel dashboard

Next Steps

Configure API Keys

Enable enhanced features with optional API keys

Local LLM Setup

Run AI models locally with Ollama or LM Studio

Interactive Globe

Learn about 40+ data layers and map controls

Desktop App Features

Explore OS integration and local API sidecar

Build docs developers (and LLMs) love