World Monitor: ситуационный дашборд планеты на своем сервере
Открытый дашборд глобальной обстановки: новости, геополитика, конфликты, рынки и инфраструктура - на одной карте мира в реальном времени. Собрали его из исходников на Fatmetal Cloud Server, замерили ресурсы и сняли живой дашборд.
Вердикт
- приватный ситуационный дашборд для себя и исследований
- карта мира и новости со сводками AI на своем сервере
- коммерческое использование (нужна платная лицензия)
- слабая клиентская машина (WebGL тяжелый)
Проверено на версии v3.0.0, июнь 2026. На новых версиях результаты могут отличаться.
Что это и какую задачу решает
World Monitor (koala73/worldmonitor) - дашборд глобальной ситуационной осведомленности. На одной карте мира он сводит вместе несколько десятков слоев данных: очаги конфликтов и протестов, военные базы и активность, кибератаки, перебои в интернете, природные события, потоки беженцев, экономические сигналы, морской и авиатрафик. Поверх карты - лента новостей из сотен источников, которые AI сворачивает в краткие сводки, индекс странового риска, финансовый радар по биржам, сырью и крипте. По сути это попытка собрать в open-source то, что обычно ассоциируется с дорогими платформами вроде Palantir.
Данные тянутся из 65+ внешних источников. Базовый сценарий (землетрясения, погода, конфликты, природные события, прогнозные рынки) работает без единого ключа; платные и нишевые фиды (спутниковые пожары, AIS-суда, биржи) подключаются своими API-ключами. Есть пять тематических вариантов из одной кодовой базы (world, tech, finance, commodity, happy), 21 язык и нативное десктоп-приложение на Tauri. У проекта 54,9 тыс. звезд на GitHub.
Свой инстанс против публичного и платных платформ
Сравнение по тому, что влияет на выбор.
| Параметр | Свой инстанс | Публичный / платные платформы |
|---|---|---|
| Цена | Бесплатно (non-commercial), платите за сервер | PRO-подписка или корпоративный контракт |
| Данные и запросы | На вашем сервере, свои ключи | Через чужую инфраструктуру |
| Открытый код | Да, AGPL-3.0 | Закрытый |
| Кастомизация | Свои источники, варианты, языки | Ограничена продуктом |
| Сопровождение | Сами (обновление пересборкой) | Вендор и SLA |
Важный нюанс: часть продвинутой аналитики (странового индекса - расчет ценовых шоков, импорт, госдолг, санкции) в интерфейсе помечена как PRO. Ядро - карта, слои, новости, базовые сигналы - работает в self-hosted бесплатно, но самые глубокие панели завязаны на платный/коммерческий тариф.
Тех-стек и архитектура
Фронтенд - чистый TypeScript на Vite, 3D-глобус на globe.gl (Three.js) и плоская WebGL-карта на deck.gl (MapLibre). Бэкенд - Node.js-сервис с 100+ обработчиками-маршрутами в каталоге /api (на проде это Vercel Edge Functions, в Docker - постоянный сервер за nginx). Данные кешируются в Redis, доступ к нему идет через Upstash-совместимый REST-прокси. Отдельный контейнер ais-relay держит WebSocket к AISStream для морского трафика. Десктоп-версия - Tauri 2 (Rust) с Node-сайдкаром.
Ключевая особенность для оценки ресурсов: вся тяжесть - на клиенте. Глобус и карты с десятками слоев рендерит браузер пользователя через WebGL, а серверная часть остается очень легкой. Лицензия - AGPL-3.0 для некоммерческого использования; для коммерции нужна отдельная коммерческая лицензия.
Минимальная конфигурация
У проекта раздвоение: тяжелая сборка, легкий рантайм.
| RAM в простое (весь стек) | ~120 MiB |
| Под сборку (Vite из исходников) | лучше 8 GB / 4 ядра |
| Образы на диске | ~1,33 GB |
| Тариф под сборку | CPU4-RAM8-DISK100 |
| Тариф под рантайм | младший, CPU2-RAM4-DISK50 |
Сборка тяжелая, рантайм легкий. Vite-сборка фронта прожорлива по памяти, поэтому собирать удобнее на тарифе CPU4-RAM8-DISK100 (или на младшем с swap - так и сделали). А вот работает стек на ~120 MiB и спокойно живет на тарифе CPU2-RAM4-DISK50 за 500 руб/мес.
Развертывание на Fatmetal
Fatmetal Cloud Server + Ubuntu 24.04 + Docker. Сборка из исходников.
Создать VM
Ubuntu 24.04, Docker из маркетплейса. Под сборку - тариф помощнее или swap на младшем.
Клон и обязательные секреты
git clone https://github.com/koala73/worldmonitor.git cd worldmonitor echo "RELAY_SHARED_SECRET=$(openssl rand -hex 32)" >> .env echo "REDIS_PASSWORD=$(openssl rand -hex 32)" >> .env echo "REDIS_TOKEN=$(openssl rand -hex 32)" >> .envБез этих трех секретов стек не стартует - это защита по умолчанию.
Собрать и поднять
docker compose up -d --build ./scripts/run-seeders.shПоднимутся 4 контейнера (app, redis, redis-rest, ais-relay). Сидеры наполняют Redis публичными данными - им нужен Node 22 на хосте. Дашборд - на порту 3000, по адресу
/dashboard.html.
VM подняли AI-агентом через MCP-сервер Fatmetal, и этим же агентом собрали и запустили World Monitor. Провижн сервера, сборку из исходников, секреты, сидеры и обратный прокси с авторизацией агент сделал инструментами на нашей инфраструктуре, без ручного клика в панели.
Что измерили после запуска
Цифры с тестового CPU4-RAM8-DISK100, Ubuntu 24.04, Docker. Реальная сборка и запуск.
| Сборка (clone до up, docker compose --build) | ~170 c |
| Из них Vite-сборка фронта | ~70 c |
| RAM в простое (4 контейнера) | ~120 MiB |
| Из них приложение (nginx+Node) | ~86 MiB |
| Образы на диске | ~1,33 GB |
| Тестовая проверка | дашборд собрался, карта с событиями, панели наполнились |
Главное: серверная часть очень легкая - ~120 MiB на весь стек в простое. Тяжелый только этап сборки. Вся нагрузка по отрисовке глобуса и карт - на стороне браузера, поэтому сервер можно держать на тарифе CPU2-RAM4-DISK50, а вот машине пользователя нужен нормальный браузер с WebGL.
Где может сломаться
Реальные грабли, на которые наткнулись при запуске.
Без трех секретов стек не стартует. RELAY_SHARED_SECRET, REDIS_PASSWORD, REDIS_TOKEN обязательны - контейнеры падают на старте, если их нет. Генерируются одной строкой через openssl rand.
Сборка из исходников - тяжелая. Готового образа в реестре нет, собираете сами. Vite-сборка фронта прожорлива по RAM: на тарифе CPU2-RAM4-DISK50 без swap может упереться в память. Мы собирали с 4 GB swap. Рантайм после сборки - легкий.
Точка входа - /dashboard.html, а не корень. Голый / в Docker-сборке отдает 403 (nginx ищет index.html, которого в мульти-вариантной сборке нет). Заходить нужно на /dashboard.html - или добавить редирект в прокси.
ais-relay рестартует без ключа AISStream. Контейнер морского трафика крутится в цикле перезапуска, пока не задан AISSTREAM_API_KEY. На остальной дашборд это не влияет - просто нет данных по судам.
Сидеры - на хосте и по расписанию. Скрипты наполнения Redis запускаются на хосте (нужен Node 22), а не в контейнере. Чтобы данные не устаревали, их вешают в cron (раз в 30 минут). Часть источников без API-ключей отдает пусто.
Безопасность, лицензия и обновления
Дашборд и API не имеют своей аутентификации - закрывайте обратным прокси с паролем (мы повесили nginx + basic auth + TLS). У ais-relay есть флаг отключения авторизации для локальной отладки - на доступном из интернета хосте его включать нельзя, проект сам предупреждает об этом в логах.
Лицензия - AGPL-3.0 для некоммерческого использования; для коммерции, SaaS или ребрендинга нужна отдельная коммерческая лицензия от автора. Обновление - пересборка из свежего исходника:
git pull
docker compose up -d --build
./scripts/run-seeders.sh
Постоянных пользовательских данных нет - кеш в Redis восстанавливается сидерами, так что бэкап сводится к снапшоту диска.
Связь с другими стеками
- Локальный AI - Ollama, vLLM или любой OpenAI-совместимый endpoint для сводок новостей без облачных ключей (через
LLM_API_URL). - Обратный прокси - Nginx или Caddy для TLS и авторизации (у нас nginx + basic auth).
- Cron - для регулярного перезапуска сидеров, чтобы данные оставались свежими.
- SpiderFoot и Web Check - соседи по OSINT-направлению: World Monitor дает картину мира, те двое - точечную разведку по цели.
Когда World Monitor - не ваш выбор
Коммерческое использование
AGPL-3.0 покрывает только некоммерческие сценарии. Для бизнеса, SaaS или ребрендинга нужна платная коммерческая лицензия - это не обходится сменой логотипа.
Слабая клиентская машина
Глобус и карты с десятками слоев рендерятся в браузере через WebGL. На слабом ноутбуке без нормальной графики интерфейс будет тормозить, как бы легок ни был сервер.
Нужен turnkey из одного контейнера
Это сборка из исходников на четыре контейнера с обязательными секретами и сидерами. Если хочется просто docker run и готово - это другой класс проектов.
Частые вопросы
Можно поставить без Docker?
Технически да, но это 4 контейнера - проще через compose.
Хватит ли 2 GB RAM?
Рантайм да (~120 MiB), но под сборку нужен swap или тариф побольше.
Можно в продакшен?
Для личного и исследований - да; для коммерции нужна платная лицензия.
Как обновлять?
git pull и docker compose up -d --build.
Как делать бэкап?
Stateless - кеш в Redis восстанавливается сидерами; снапшот диска.
Нужна ли авторизация?
Своей нет - закрывайте прокси с паролем.
Ограничения лицензии?
AGPL-3.0 non-commercial; коммерция - отдельная лицензия.
Итог
World Monitor - редкий open-source проект уровня ситуационного центра: карта мира, десятки слоев событий, новости со сводками от AI, финансовый радар. Собирается из исходников (этап тяжелый), но в работе занимает всего ~120 MiB и спокойно живет на тарифе CPU2-RAM4-DISK50 - вся нагрузка по отрисовке на клиенте. Честные оговорки: своей авторизации нет (нужен прокси), вход через /dashboard.html, продвинутая аналитика и коммерческое использование - за платную лицензию. Как приватный ситуационный дашборд на своем сервере для личного и исследовательского использования - очень сильная вещь.
Этот стек у нас собран на тарифе CPU4-RAM8-DISK100, а крутится на CPU2-RAM4-DISK50. Нашли неточность в гайде - напишите, поправим в течение дня.