mrkeyoor.com_
Mon 17 Aug 13:53 UTC
Self-Hostedevaluationupdated 17 Aug 2026

Crucix

Crucix is a self-hosted dashboard that collects public intelligence feeds covering conflict, markets, flights, fires, radiation, satellites, weather, health, sanctions, and news. It runs recurring sweeps, shows changes on a map and globe, and can add LLM analysis plus Telegram or Discord alerts so users do not have to check dozens of sources separately.

trackingstars / 7d
Verdict

Crucix is exciting as a local OSINT experiment and unsafe as a trusted intelligence product in its current default branch. The breadth, readable architecture, and graceful source isolation make it worth studying, but unresolved security, freshness, and accuracy defects strike at the dashboard's core promise. Run it privately for exploration, apply the pending fixes, and verify signals at their sources before acting on them.

Setup3/5Quick Node start, followed by keys, timeouts, and bot setup
Docs4/5Extensive guide, but behavior and environment details have drifted
Community3/5Active reports and patches, with many pull requests waiting
Maturity2/5Core security, freshness, and live-update defects remain open

Who it’s for

OSINT hobbyists who want a visually dense starting point for exploring many public feeds on one local dashboard.
Journalists and researchers prepared to verify every important signal against the original source.
Developers who want readable Node.js source modules for experimenting with feed aggregation, change detection, and alerts.
Operators willing to patch security and data-integrity defects before exposing the dashboard beyond a trusted machine.

Who it’s NOT for

Anyone planning to expose the current dashboard to untrusted users: issue 134 documents stored cross-site scripting paths from feed and LLM text, and its fix remains an open pull request.
Analysts who need map positions and freshness to be evidentiary: open issues show randomized news coordinates and historical OpenSky snapshots reused when live flight data is absent.
Users expecting every advertised panel to work without an LLM key: issue 132 says the implemented rule-based idea engine is never called, leaving the ideas panel empty.
Low-bandwidth or tightly metered deployments until pull request 130 lands: it reports that the OFAC source downloads about 267 MB each sweep and then times out.
Teams requiring released versions, a maintained security patch cadence, or automated coverage of the ingestion pipeline: there are no GitHub releases, the default branch was last pushed in May 2026, and the included tests focus on LLM providers.

Setup reality

The basic local start is short: Node 22, npm install, copy the environment template, and run the server, or use Docker Compose. A keyless sweep still uses many feeds, but useful coverage requires registering several external data credentials, while LLM analysis and chat alerts add provider and bot configuration. The first dashboard remains empty during the initial sweep, source failures can take up to their timeouts, and serious deployment requires checking data freshness, securing the service, controlling storage, and applying fixes that are still waiting in pull requests.

A dazzling front end for scattered public data

Crucix takes a problem familiar to researchers and news obsessives, dozens of useful feeds in dozens of formats, and compresses it into one cinematic dashboard. Its recurring sweep covers sources for conflicts, fires, flights, radiation, markets, economic indicators, sanctions, health alerts, weather, satellites, news, and social posts. The browser gets a flat map or WebGL globe, risk gauges, a ticker, source status, and a panel of changes since the previous run.

Instead of opening GDELT, FRED, NASA FIRMS, OpenSky, Safecast, WHO, and market pages, a user can leave one screen running. Server-Sent Events are intended to refresh browsers after each sweep. Optional Telegram and Discord bots deliver alerts and accept commands. A language model can generate trade ideas and evaluate alerts.

This is best understood as an exploratory monitor, not an intelligence authority. Crucix aggregates and correlates other people's data, often using heuristics. A polished globe can make uncertain, delayed, inferred, or failed inputs look equally definite. The project needs especially strong freshness and provenance controls because its visual confidence is part of its charm. Those controls are currently where the most serious problems sit.

The architecture is pleasantly readable

Crucix requires Node 22 and has Express as its single required package. Source connectors are plain ESM modules, an orchestrator runs them in parallel with Promise.allSettled(), and a shared fetch helper applies timeouts and retries. One failed provider should therefore produce structured error data rather than stop the whole sweep. Runtime results are kept under runs, including recent state for delta calculations and daily archives.

The minimal dependency choice helps auditing. LLM integrations avoid large SDKs, and each data source can run alone during debugging. Configuration exposes the port, refresh interval, model, bots, and change thresholds. Docker adds persistent storage and a health check.

The quick start is believable, but the zero-cloud slogan needs interpretation. The program runs locally, yet its value arrives over third-party services. Better coverage asks for several data credentials. LLM analysis sends synthesized context to the selected provider unless local Ollama is used. Discord's full bot needs an optional package.

Documentation is unusually extensive for a young project, including source tables, environment settings, troubleshooting, architecture, bot commands, provider selection, and deployment options. There is some drift: the README describes Discord variables absent from the checked environment template, and advertised rule-based idea fallback does not match the current execution path.

Data trust is the deciding problem

Several open issues are not cosmetic bugs. Issue 113 documents the OpenSky fallback searching earlier run files for a nonempty flight snapshot when current data is missing, then presenting that historical information in the current dashboard. The output includes fallback metadata, but the behavior is still hazardous on a screen meant to answer what is happening now. No data would be more honest.

Issue 112 finds that news markers receive random latitude and longitude offsets after a title or source has been geotagged. The apparent purpose is visual separation, but it turns a geographic display into an imprecise rendering without a clear warning. Issue 115 separately reports rewritten GDELT times. Together, these defects mean users cannot treat position and time as reliable evidence.

The live path has its own failure. Issue 119 reports that injected initial data prevents the dashboard from connecting to the SSE endpoint, leaving the page frozen on bundled data even as server sweeps continue. Pull requests propose fixes for this and other ingestion errors, including a NOAA query that returns no alerts and stale property names passed into model prompts. They are useful community work, but an open patch is not protection for someone cloning the default branch.

The OFAC connector shows the operational cost of broad aggregation. Pull request 130 measures three full downloads totaling about 267 MB during every default 15-minute sweep, only to discard almost all content and exceed the source timeout. Its proposed ranged-read fix reduces that dramatically, but it was still unmerged. Until fixed, one nominally free source can waste bandwidth and memory all day.

Do not publish the dashboard unchanged

Issue 134 is the strongest reason to keep Crucix on a trusted local machine. It traces feed fields and model-generated text into multiple innerHTML assignments without output escaping. It also identifies a script-block breakout path in the standalone HTML injector. Since headlines, Telegram posts, locations, satellite names, and model output originate outside the application, a hostile string could execute in a viewer's browser.

A focused pull request adds escaping and tests, but it remains open. Authentication would reduce exposure, not remove a poisoned-feed path for authorized viewers. Operators should reproduce the fix and review all HTML sinks before hosting Crucix.

Testing does not yet provide much reassurance outside model adapters. The repository includes Node tests for several LLM providers, but package scripts do not define a general test command, and there is no obvious automated suite covering all sources, synthesis, SSE behavior, or dashboard rendering. With 27 advertised feeds changing upstream, integration checks are not optional maintenance.

Active interest, slow default-branch movement

The default branch was last pushed on May 20, 2026. Issues and pull requests continued through August, including concrete fixes for security, bandwidth, source queries, and fallback behavior. That combination shows active external scrutiny but limited integration: people are finding and repairing problems faster than the maintained branch is absorbing them. The open count combines issues and pull requests, and there are no GitHub releases to provide a known stable checkpoint.

Crucix is still worthwhile for a careful hobbyist. It gives developers a readable tour of multi-source collection, delta detection, alerting, and an ambitious browser visualization with very little framework machinery. For journalism, trading, security decisions, or public deployment, the present defects are disqualifying until repaired and tested. Use the dashboard to notice questions, then follow links and verify facts elsewhere. That habit turns Crucix into a useful radar rather than a dangerously persuasive answer machine.

Alternatives

ProjectWhat it isPick it when
HuginnA self-hosted system for building agents that watch web sources and trigger actions.pick this instead when you want configurable monitoring workflows rather than a fixed geopolitical dashboard.
changedetection.ioA focused service for detecting and alerting on changes to web pages.pick this instead when dependable page-level change monitoring matters more than cross-source intelligence synthesis.
IntelOwlA threat-intelligence platform that runs analyzers and connectors against observables.pick this instead when your work is cybersecurity investigation and you need structured analyzers rather than world-event visualization.

What people are saying

  1. [github-trending] calesthio/Crucix

Sources

  1. Crucix README
  2. Issue 134: unescaped dashboard content
  3. Issue 113: historical OpenSky fallback
  4. Issue 112: randomized news coordinates
  5. Issue 119: frozen SSE updates
  6. Pull request 130: bounded OFAC downloads