Deploy World Monitor Self-Hosted

World Monitor global intelligence dashboard, 143 feeds live with no keys

Deploy World Monitor Self-Hosted

Just deployed

Just deployed

Just deployed

Just deployed

Just deployed

worldmonitor-gateway

caddy:2.11.4-alpine

Just deployed

Deploy and Host World Monitor Self-Hosted on Railway

World Monitor is a real time global intelligence dashboard. One interactive map brings together earthquakes, wildfires, weather alerts, natural disasters, conflict and protest events, ship and flight tracking, GPS jamming, markets, prediction markets, crypto, cyber threats and an AI ranked news digest, with country briefs and an MCP server for agents.

About Hosting World Monitor Self-Hosted

This template runs the complete self-hosted stack from the upstream Docker setup instead of a frontend that forwards to the hosted API. Your dashboard reads from your own Redis, filled by your own relay and seeders. It deploys six services: the World Monitor app (nginx plus the Node API sidecar), a login gateway, the relay that handles live feeds, news RSS and market data, an Upstash compatible REST proxy, Redis with a persistent volume, and a seeders service that refreshes public datasets every 30 minutes. The dashboard arrives populated with no API keys at all: the seeders service runs 143 of upstream's 214 data feeds by default, each one measured on Railway to publish real data without a key. The World Monitor services are built from a pinned fork of upstream (protemplate/worldmonitor, branch railway-stable), because upstream publishes no images for the self-hosted stack, several security fixes are newer than the last release tag, and following upstream's moving main directly would let a broken upstream commit break new deploys. Every secret is generated at deploy and every service is wired over Railway's private network.

Common Use Cases

  • Team situation room: a private, login protected world view for analysts, newsrooms, security and risk teams
  • Geopolitical and supply chain monitoring: conflicts, chokepoints, shipping, energy and markets on one map
  • Agent data source: point Claude or other MCP clients at /api/mcp with your operator key
  • Keyless public data dashboard: earthquakes, weather, natural events, prediction markets and crypto with no API keys at all

Dependencies for World Monitor Self-Hosted Hosting

  • Redis: included, with a persistent volume
  • API keys: none required. Optional keys (Groq or OpenRouter for AI summaries, aisstream.io for ships, NASA FIRMS for wildfires, FRED, EIA, ACLED, Finnhub) unlock more layers

Deployment Dependencies

Implementation Details

First steps after deploy:

  1. Wait for the builds to finish. The app image compiles the frontend, so the first deploy takes several minutes.
  2. Open the worldmonitor-gateway domain and sign in with UI_USERNAME and UI_PASSWORD from that service's variables.
  3. Give the seeders service about ten minutes for its first full cycle; panels fill in as it runs. To enable a feed that needs a key, add the key, then append that seeder's name to SEEDERS.
  4. Add optional API keys on the service that uses them and redeploy that service.

Key variables:

# worldmonitor-gateway
UI_USERNAME=admin
UI_PASSWORD=${{secret(24)}}
PUBLIC_DASHBOARD=false          # true removes the login prompt

# worldmonitor
WORLDMONITOR_VALID_KEYS=wm_${{secret(40,"abcdef0123456789")}}   # X-WorldMonitor-Key for API and MCP
UPSTASH_REDIS_REST_URL=http://${{redis-rest.RAILWAY_PRIVATE_DOMAIN}}:${{redis-rest.PORT}}
WS_RELAY_URL=https://${{ais-relay.RAILWAY_PUBLIC_DOMAIN}}
GROQ_API_KEY=                   # optional, AI summaries

# ais-relay
RELAY_SHARED_SECRET=${{secret(64,"abcdef0123456789")}}
AISSTREAM_API_KEY=              # optional, live ships

# seeders
SEED_MODE=core                  # all runs every upstream seeder
SEED_PARALLEL=3                 # seeders at once; above 3 public APIs rate limit
SEED_INTERVAL_SECONDS=1800

The dashboard has no login of its own, so it sits behind a Caddy basic auth gateway by default. The relay has a public domain because the app's SSRF guard only accepts public addresses for it; every non public relay route requires the shared secret.

World Monitor is licensed AGPL-3.0: if you modify it and serve the modified version to others over a network, you must publish your source.

Why Deploy World Monitor Self-Hosted on Railway?

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying World Monitor Self-Hosted on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.


Template Content

More templates in this category

View Template
NEW
Typesense PHP
official PHP client against Railway

onepush
0
View Template
Typesense vs Meilisearch
self-hosted Typesense vs Meilisearch

onepush
0
View Template
Matomo Analytics + MariaDB
Privacy-friendly analytics with MariaDB and persistent volumes.

leodev
1