
Ihr persönlicher Informationsagent. Beobachtet die Welt aus mehreren Datenquellen und benachrichtigt Sie, wenn sich etwas ändert.
Dein eigenes Intelligence-Terminal. 27 Quellen. Ein Befehl. Keine Cloud.
Betrete das Signal-Netzwerk

| Boot-Sequenz | Weltkarte |
|---|---|
![]() | ![]() |
Live-Website: https://www.crucix.live/ Erkunde zuerst die öffentliche Demo, klone dann das Repository, um Crucix lokal auszuführen.
Crucix zieht Satelliten-Branderkennung, Flugverfolgung, Strahlungsüberwachung, Satellitenkonstellations-Tracking, Wirtschaftsindikatoren, Live-Marktpreise, Konfliktdaten, Sanktionslisten und soziale Stimmung aus 27 Open-Source-Intelligence-Feeds – parallel, alle 15 Minuten – und rendert alles auf einem einzigen autarken Jarvis-artigen Dashboard.
Schließe ein LLM an und es wird zu einem bidirektionalen Intelligence-Assistenten – der mehrstufige Warnmeldungen an Telegram und Discord sendet, wenn sich etwas Bedeutsames ändert, auf Befehle wie /brief und /sweep von deinem Telefon reagiert und umsetzbare Handelsideen generiert, die auf echten domänenübergreifenden Daten basieren. Dein eigener Analyst, der die Welt beobachtet, während du schläfst.
Probiere zuerst die Live-Demo auf https://www.crucix.live/ aus, klone dann das Repository, wenn du den vollständigen lokalen Stack haben möchtest.
Keine Cloud. Keine Telemetrie. Keine Abos. Nur node server.mjs und du bist startklar.
[!WARNING] Crucix hat keinen offiziellen Token, Coin, NFT, Airdrop, Presale oder einen anderen Blockchain-basierten Asset gestartet. Jeder Token oder digitale Asset, der den Namen, das Logo oder die Marke von Crucix verwendet, ist nicht mit Crucix verbunden oder von Crucix unterstützt. Kaufe ihn nicht, bewirb ihn nicht, verbinde keine Wallet, um ihn zu beanspruchen, signiere keine Transaktionen und sende keine Gelder aufgrund von Beiträgen Dritter, DMs oder Websites.
Die meisten der weltweit verfügbaren Echtzeit-Intelligenzdaten – Satellitenbilder, Strahlungswerte, Konfliktereignisse, Wirtschaftsindikatoren, Flugverfolgung, maritime Aktivitäten – sind öffentlich zugänglich. Sie sind jedoch über Dutzende von Regierungs-APIs, Forschungseinrichtungen und offene Datenfeeds verstreut, die niemand einzeln prüfen kann.
Crucix bringt alles an einem Ort zusammen. Nicht hinter einer Bezahlschranke, nicht in einer Enterprise-Plattform eingeschlossen, nicht mit Sicherheitsfreigabe erforderlich. Einfach offene Daten, aggregiert und kreuzkorreliert auf deinem eigenen Rechner, alle 15 Minuten aktualisiert.
Es wurde für alle entwickelt, die verstehen wollen, was gerade wirklich in der Welt passiert – Forscher, Journalisten, Händler, OSINT-Analysten oder einfach neugierige Menschen, die glauben, dass der Zugang zu Informationen nicht vom eigenen Budget abhängen sollte.
git clone https://github.com/calesthio/Crucix.git cd Crucix
npm install
cp .env.example .env
npm run dev
> **Wenn `npm run dev` stillschweigend fehlschlägt** (ohne Ausgabe beendet), führen Sie Node stattdessen direkt aus:
> ```bash
> node --trace-warnings server.mjs
> ```
> Dies umgeht den Skript-Runner von npm, der auf manchen Systemen (insbesondere PowerShell unter Windows) Fehler verschlucken kann. Sie können auch `node diag.mjs` ausführen, um die genaue Ursache zu diagnostizieren – es prüft Ihre Node-Version, testet jedes Modul-Import einzeln und überprüft die Portverfügbarkeit. Siehe [Fehlerbehebung](#troubleshooting) für weitere Informationen.
Das Dashboard öffnet sich automatisch unter `http://localhost:3117` und beginnt sofort mit seinem ersten Intelligence-Sweep. Dieser erste Sweep fragt alle 27 Quellen parallel ab und dauert in der Regel 30–60 Sekunden – das Dashboard bleibt leer, bis der Sweep abgeschlossen ist und das erste Datenupdate liefert. Danach aktualisiert es sich automatisch alle 15 Minuten via SSE (Server-Sent Events). Kein manuelles Seiten-Refresh erforderlich.
**Voraussetzungen:** Node.js 22+ (nutzt natives `fetch`, top-level `await`, ESM)
### Docker```bash
git clone https://github.com/calesthio/Crucix.git
cd Crucix
cp .env.example .env # add your API keys
docker compose up -d
Dashboard unter http://localhost:3117. Sweep-Daten bleiben in ./runs/ über Volume-Mount persistent. Enthält einen Health-Check-Endpunkt.
Ein autarkes Jarvis-artiges HUD mit:
Der Button VISUALS FULL / VISUALS LITE in der oberen Leiste ändert nur das Rendering-Verhalten – er entfernt nicht Datenquellen oder reduziert die Sweep-Abdeckung.
Wenn Sie auf VISUALS LITE umschalten, deaktiviert das Dashboard:
Mobilespezifisches Verhalten:
VISUALS LITE außerdem den Flachkartenmodus, wenn Sie sich gerade auf dem Globus befindenDie Einstellung wird im Browser-Local-Storage gespeichert, sodass sich die UI an Ihre letzte Einstellung erinnert.
Der Server führt alle 15 Minuten (konfigurierbar) einen Sweep-Zyklus durch. Jeder Zyklus:
Crucix fungiert auch als interaktiver Telegram-Bot. Neben dem Versenden von Alarmen reagiert er auf Befehle direkt aus Ihrem Chat:
Dies erfordert TELEGRAM_BOT_TOKEN und TELEGRAM_CHAT_ID in .env. Der Bot fragt alle 5 Sekunden nach Nachrichten (konfigurierbar über TELEGRAM_POLL_INTERVAL).
Crucix unterstützt auch Discord als vollwertigen Bot mit Slash-Befehlen und Rich-Embed-Alarmen. Es spiegelt die Fähigkeiten des Telegram-Bots mit Discord-eigener Formatierung wider.
| Befehl | Funktion |
|---|---|
/status | Systemzustand, letzter Sweep-Zeitpunkt, Quellenstatus, LLM-Status |
/sweep |
Alarme werden als Rich Embeds mit farbcodierten Seitenleisten zugestellt: rot für FLASH, gelb für PRIORITY, blau für ROUTINE. Jedes Embed enthält Signaldetails, Konfidenzwerte und domänenübergreifende Korrelationen.
Einrichtung erfordert: DISCORD_BOT_TOKEN, DISCORD_CHANNEL_ID und optional DISCORD_GUILD_ID für die sofortige Registrierung von Slash-Befehlen. Siehe API-Schlüssel einrichten für Details.
Webhook-Fallback: Wenn Sie keinen vollständigen Bot betreiben möchten, setzen Sie stattdessen DISCORD_WEBHOOK_URL. Dies ermöglicht unidirektionale Alarme (keine Slash-Befehle) ohne Abhängigkeiten — kein discord.js erforderlich.
Optionale Abhängigkeit: Der vollständige Bot erfordert discord.js. Installieren Sie es mit npm install discord.js. Wenn es nicht installiert ist, fällt Crucix automatisch in den reinen Webhook-Modus zurück.
Verbinden Sie einen von 8 LLM-Anbietern für erweiterte Analysen:
Kopieren Sie .env.example in .env im Projektstammverzeichnis:```bash
cp .env.example .env
### Erforderlich für beste Ergebnisse (alle kostenlos)
| Key | Quelle | Beschaffung |
|-----|--------|------------|
| `FRED_API_KEY` | Federal Reserve Economic Data | [fred.stlouisfed.org](https://fred.stlouisfed.org/docs/api/api_key.html) — sofort, kostenlos |
| `FIRMS_MAP_KEY` | NASA FIRMS (Satellitenfeuerdaten) | [firms.modaps.eosdis.nasa.gov](https://firms.modaps.eosdis.nasa.gov/api/area/) — sofort, kostenlos |
| `EIA_API_KEY` | US Energy Information Administration | [api.eia.gov](https://www.eia.gov/opendata/register.php) — sofort, kostenlos |
Diese drei entsperren die wertvollsten Wirtschafts- und Satellitendaten. Die Registrierung dauert jeweils etwa 60 Sekunden.
### Optional (aktiviert zusätzliche Quellen)
| Key | Quelle | Beschaffung |
|-----|--------|------------|
| `ACLED_EMAIL` + `ACLED_PASSWORD` | Daten zu bewaffneten Konfliktereignissen | [acleddata.com/register](https://acleddata.com/register/) — kostenlos, OAuth2 |
| `AISSTREAM_API_KEY` | Maritime AIS-Schiffsverfolgung | [aisstream.io](https://aisstream.io/) — kostenlos |
| `ADSB_API_KEY` | Ungefilterte Flugverfolgung | [RapidAPI](https://rapidapi.com/adsbexchange/api/adsbexchange-com1) — ~$10/Monat |
### LLM-Anbieter (optional, für KI-verbesserte Ideen)
Setzen Sie `LLM_PROVIDER` auf einen von: `anthropic`, `openai`, `gemini`, `codex`, `openrouter`, `minimax`, `mistral`, `grok`
| Anbieter | Erforderlicher Schlüssel | Standardmodell |
|----------|-------------|---------------|
| `anthropic` | `LLM_API_KEY` | claude-sonnet-4-6 |
| `openai` | `LLM_API_KEY` | gpt-5.4 |
| `gemini` | `LLM_API_KEY` | gemini-3.1-pro |
| `openrouter` | `LLM_API_KEY` | openrouter/auto |
| `codex` | Keiner (verwendet `~/.codex/auth.json`) | gpt-5.3-codex |
| `minimax` | `LLM_API_KEY` | MiniMax-M2.5 |
| `mistral` | `LLM_API_KEY` | mistral-large-latest |
| `grok` | `LLM_API_KEY` | grok-4-latest |
Führen Sie für Codex `npx @openai/codex login` aus, um sich über Ihr ChatGPT-Abonnement zu authentifizieren.
### Telegram-Bot + Benachrichtigungen (optional)
| Schlüssel | Beschaffung |
|-----|------------|
| `TELEGRAM_BOT_TOKEN` | Erstellen Sie über [@BotFather](https://t.me/BotFather) auf Telegram |
| `TELEGRAM_CHAT_ID` | Holen Sie sich über [@userinfobot](https://t.me/userinfobot) |
| `TELEGRAM_CHANNELS` | *(Optional)* Durch Kommata getrennte zusätzliche Kanal-IDs zur Überwachung über die 17 eingebauten Kanäle hinaus |
| `TELEGRAM_POLL_INTERVAL` | *(Optional)* Abfrageintervall für Bot-Befehle in ms (Standard: 5000) |
### Discord-Bot + Benachrichtigungen (optional)
| Schlüssel | Beschaffung |
|-----|------------|
| `DISCORD_BOT_TOKEN` | Erstellen Sie im [Discord Developer Portal](https://discord.com/developers/applications) → Bot → Token |
| `DISCORD_CHANNEL_ID` | Rechtsklick auf Kanal in Discord (Entwicklermodus ein) → Kanal-ID kopieren |
| `DISCORD_GUILD_ID` | *(Optional)* Rechtsklick auf Server → Server-ID kopieren. Ermöglicht sofortige Slash-Befehl-Registrierung (sonst dauert es bis zu 1 Stunde für globale Befehle) |
| `DISCORD_WEBHOOK_URL` | *(Optional)* Kanaleinstellungen → Integrationen → Webhooks → Neuen Webhook → URL kopieren. Verwenden Sie dies für den Nur-Benachrichtigungsmodus ohne Bot |
**Discord-Bot-Einrichtung:**
1. Gehen Sie zum [Discord Developer Portal](https://discord.com/developers/applications) und erstellen Sie eine neue Anwendung
2. Gehen Sie zu **Bot** → klicken Sie auf **Token zurücksetzen** → kopieren Sie den Token in `DISCORD_BOT_TOKEN`
3. Aktivieren Sie unter **Privilegierte Gateway-Intents** die Option **Message Content Intent**
4. Gehen Sie zu **OAuth2** → **URL-Generator** → wählen Sie die Bereiche `bot` + `applications.commands` → wählen Sie die Berechtigungen `Nachrichten senden` + `Embed-Links`
5. Kopieren Sie die generierte URL und öffnen Sie sie in Ihrem Browser, um den Bot zu Ihrem Server einzuladen
6. Installieren Sie die Abhängigkeit: `npm install discord.js`
Benachrichtigungen funktionieren mit oder ohne LLM sowohl auf Telegram als auch auf Discord. Mit einem konfigurierten LLM ist die Signalbewertung umfangreicher und kontextbewusster. Ohne einen solchen bewertet eine deterministische Regelmaschine Signale basierend auf Schweregrad, domänenübergreifender Korrelation und Signalanzeige.
### Ohne jegliche Schlüssel
Crucix funktioniert auch ohne API-Schlüssel. Über 18 Quellen erfordern überhaupt keine Authentifizierung. Quellen, die Schlüssel benötigen, geben strukturierte Fehler zurück, und der Rest des Scans läuft normal weiter.
---
## Architektur```
crucix/
├── server.mjs # Express dev server (SSE, auto-refresh, LLM, bot commands)
├── crucix.config.mjs # Configuration with env var overrides + delta thresholds
├── diag.mjs # Diagnostic script — run if server fails to start
├── .env.example # All documented env vars
├── package.json # Runtime: express | Optional: discord.js
├── docs/ # Screenshots for README
│
├── apis/
│ ├── briefing.mjs # Master orchestrator — runs all 27 sources in parallel
│ ├── save-briefing.mjs # CLI: save timestamped + latest.json
│ ├── BRIEFING_PROMPT.md # Intelligence synthesis protocol
│ ├── BRIEFING_TEMPLATE.md # Briefing output structure
│ ├── utils/
│ │ ├── fetch.mjs # safeFetch() — timeout, retries, abort, auto-JSON
│ │ └── env.mjs # .env loader (no dotenv dependency)
│ └── sources/ # 27 self-contained source modules
│ ├── gdelt.mjs # Each exports briefing() → structured data
│ ├── fred.mjs # Can run standalone: node apis/sources/fred.mjs
│ ├── space.mjs # CelesTrak satellite tracking
│ ├── yfinance.mjs # Yahoo Finance — free live market data
│ └── ... # 23 more
│
├── dashboard/
│ ├── inject.mjs # Data synthesis + standalone HTML injection
│ └── public/
│ └── jarvis.html # Self-contained Jarvis HUD
│
├── lib/
│ ├── llm/ # LLM abstraction (8 providers, raw fetch, no SDKs)
│ │ ├── provider.mjs # Base class
│ │ ├── anthropic.mjs # Claude
│ │ ├── openai.mjs # GPT
│ │ ├── gemini.mjs # Gemini
│ │ ├── grok.mjs # Grok
│ │ ├── openrouter.mjs # OpenRouter (Unified API)
│ │ ├── codex.mjs # Codex (ChatGPT subscription)
│ │ ├── minimax.mjs # MiniMax (M2.5, 204K context)
│ │ ├── mistral.mjs # Mistral AI
│ │ ├── ideas.mjs # LLM-powered trade idea generation
│ │ └── index.mjs # Factory: createLLMProvider()
│ ├── delta/ # Change tracking between sweeps
│ │ ├── engine.mjs # Delta computation — semantic dedup, configurable thresholds, severity scoring
│ │ ├── memory.mjs # Hot memory (3 runs, atomic writes) + cold storage (daily archives)
│ │ └── index.mjs # Re-exports
│ └── alerts/
│ ├── telegram.mjs # Multi-tier alerts (FLASH/PRIORITY/ROUTINE) + two-way bot commands
│ └── discord.mjs # Discord bot (slash commands, rich embeds) + webhook fallback
│
└── runs/ # Runtime data (gitignored)
├── latest.json # Most recent sweep output
└── memory/ # Delta memory (hot.json + cold/YYYY-MM-DD.json)
.mjs mit expliziten Importendiscord.js ist optional (für Discord-Bot). LLM-Anbieter verwenden rohes fetch(), keine SDKs.Promise.allSettled() feuert alle 27 Quellen gleichzeitig.node apis/sources/gdelt.mjs aus, um jede Quelle unabhängig zu testen| Quelle | Was es verfolgt | Auth |
|---|---|---|
| CelesTrak | Satellitenstarts, ISS-Tracking, militärische Konstellationen, Starlink/OneWeb-Zählungen | Keine |
| Quelle | Was es verfolgt | Auth |
|---|---|---|
| Yahoo Finance | Echtzeitkurse: SPY, QQQ, BTC, Gold, WTI, VIX + 9 weitere | Keine |
Alle Einstellungen befinden sich in .env mit sinnvollen Standardwerten:
Delta-Engine-Schwellenwerte (wie empfindlich das System auf Änderungen zwischen Sweeps reagiert) können in crucix.config.mjs im Abschnitt delta.thresholds angepasst werden. Die Standardwerte sind so abgestimmt, dass sie Rauschen herausfiltern, während aussagekräftige Bewegungen erfasst werden.
Bei Ausführung von npm run dev:
| Endpunkt | Beschreibung |
|---|---|
GET / | Jarvis HUD Dashboard |
GET /api/data | Aktuelle synthetisierte Intelligence-Daten (JSON) |
npm run dev wird still beendet (keine Ausgabe, kein Fehler)Dies ist ein bekanntes Problem, bei dem der Skript-Runner von npm Fehler verschlucken kann, insbesondere unter Windows PowerShell. Versuchen Sie es nacheinander:
1. Node direkt ausführen (npm umgehen):```bash node --trace-warnings server.mjs
Dies ist funktional identisch zu `npm run dev`, gibt dir aber die vollständige Fehlerausgabe.
**2. Führe das Diagnoseskript aus:**```bash
node diag.mjs
Dies testet jeden Import einzeln, überprüft Ihre Node.js-Version und stellt sicher, dass Port 3117 verfügbar ist. Es wird Ihnen genau sagen, was fehlschlägt.
3. Prüfen, ob Port 3117 bereits verwendet wird:
Möglicherweise läuft noch eine frühere Crucix-Instanz im Hintergrund.```powershell
netstat -ano | findstr 3117 taskkill /F /PID <the_PID_from_above>
taskkill /F /IM node.exe
## Inhaltsverzeichnis
- [Aufklärung](#reconnaissance)
- [Ressourcenentwicklung](#resource-development)
- [Initialer Zugang](#initial-access)
- [Ausführung](#execution)
- [Persistenz](#persistence)
- [Privilegieneskalation](#privilege-escalation)
- [Umgehung von Verteidigungsmaßnahmen](#defense-evasion)
- [Zugriff auf Anmeldeinformationen](#credential-access)
- [Erkennung](#discovery)
- [Laterale Bewegung](#lateral-movement)
- [Sammlung](#collection)
- [Befehl und Kontrolle](#command-and-control)
- [Exfiltration](#exfiltration)
- [Auswirkungen](#impact)```bash
# macOS / Linux
lsof -ti:3117 | xargs kill
Dann versuche es erneut zu starten. Du kannst auch den Port ändern, indem du PORT=3118 in deiner .env Datei setzt.
4. Überprüfe die Node.js-Version:```bash node --version
Crucix benötigt Node.js 22 oder neuer. Falls Sie eine ältere Version haben, laden Sie die neueste LTS von [nodejs.org](https://nodejs.org/) herunter.
### Dashboard zeigt nach dem ersten Start leere Panels an
Dies ist normal – der erste Durchlauf benötigt 30–60 Sekunden, um alle 27 Quellen abzufragen. Das Dashboard wird automatisch befüllt, sobald der Durchlauf abgeschlossen ist. Überprüfen Sie das Terminal auf Fortschrittsprotokolle des Durchlaufs.
### Bei einigen Quellen werden Fehler angezeigt
Erwartetes Verhalten. Quellen, die API-Schlüssel benötigen, geben strukturierte Fehler zurück, wenn der Schlüssel nicht gesetzt ist. Der Rest des Durchlaufs läuft normal weiter. Überprüfen Sie den Abschnitt „Quellenintegrität“ im Dashboard (oder die Serverprotokolle), um zu sehen, welche Quellen fehlgeschlagen sind und warum. Die drei wirkungsvollsten kostenlosen Schlüssel zum Hinzufügen sind `FRED_API_KEY`, `FIRMS_MAP_KEY` und `EIA_API_KEY`.
OpenSky kann auch `HTTP 429` zurückgeben, wenn seine öffentlichen Hotspots zu aggressiv abgefragt werden. Crucix versucht nicht, diese Begrenzung zu umgehen. Stattdessen zeigt es die Drosselung/Fehler in der Quellengesundheit an und bewahrt den letzten nicht leeren Luftverkehrsschnappschuss aus `runs/`, sodass die Flugschicht des Dashboards bei einem gedrosselten Durchlauf nicht plötzlich leer wird.
### Telegram-Bot reagiert nicht auf Befehle
Stellen Sie sicher, dass sowohl `TELEGRAM_BOT_TOKEN` als auch `TELEGRAM_CHAT_ID` in `.env` gesetzt sind. Der Bot antwortet nur auf Nachrichten von der konfigurierten Chat-ID (Sicherheitsmaßnahme). Sie sollten beim Start `[Crucix] Telegram alerts enabled` und `[Crucix] Bot command polling started` in den Serverprotokollen sehen. Falls nicht, überprüfen Sie Ihren Token mit `curl https://api.telegram.org/bot<YOUR_TOKEN>/getMe`.
### Discord-Bot reagiert nicht auf Slash-Befehle
Überprüfen Sie diese in der Reihenfolge:
1. Stellen Sie sicher, dass `DISCORD_BOT_TOKEN` und `DISCORD_CHANNEL_ID` in `.env` gesetzt sind
2. Überprüfen Sie, ob `discord.js` installiert ist: `npm ls discord.js`. Falls nicht, führen Sie `npm install discord.js` aus
3. Wenn Slash-Befehle nicht erscheinen, setzen Sie `DISCORD_GUILD_ID` — ohne diesen können globale Befehle bis zu einer Stunde dauern, um sich zu verbreiten. Gildenspezifische Befehle werden sofort registriert
4. Bestätigen Sie, dass der Bot mit den Bereichen `bot` + `applications.commands` eingeladen wurde und im Zielkanal die Berechtigungen `Nachrichten senden` + `Embed-Links` hat
5. Überprüfen Sie die Serverprotokolle beim Start auf `[Discord] Bot logged in as ...`. Wenn Sie `[Discord] discord.js not installed` sehen, installieren Sie es und starten Sie neu
6. **Webhook-Only-Fallback:** Wenn Sie nur Benachrichtigungen ohne Slash-Befehle wünschen, setzen Sie `DISCORD_WEBHOOK_URL` anstelle des Bot-Tokens. Es wird kein `discord.js` benötigt.
---
## Screenshots
Der Ordner `docs/` enthält Dashboard-Screenshots, auf die in dieser README verwiesen wird:
| Datei | Beschreibung |
|------|-------------|
| `docs/dashboard.png` | Vollständiges Dashboard — Heldenbild am Anfang dieser README |
| `docs/boot.png` | Kinematografische Startsequenz-Animation |
| `docs/map.png` | D3-Weltkarte mit Markierungstypen und Flugbögen |
| `docs/globe.png` | 3D-WebGL-Globusansicht mit Atmosphärenglühen und Markierungen |
Um sie zu aktualisieren: Führen Sie das Dashboard aus, warten Sie, bis ein Durchlauf abgeschlossen ist, und verwenden Sie dann die Entwicklertools Ihres Browsers (`F12` → `Strg+Umschalt+P` → "Screenshot in voller Größe aufnehmen") oder ein Tool wie [LICEcap](https://www.cockos.com/licecap/) für GIFs.
---
## Mitwirken
Einen Fehler gefunden? Möchten Sie eine 28. Quelle hinzufügen? Pull-Requests sind willkommen. Jede Quelle ist ein eigenständiges Modul in `apis/sources/` — exportieren Sie einfach eine `briefing()`-Funktion, die strukturierte Daten zurückgibt, und fügen Sie sie zum Orchestrator in `apis/briefing.mjs` hinzu.
Wenn Sie dies nützlich finden, hilft ein Stern anderen, es ebenfalls zu finden.
Beitragsrichtlinien, Überprüfungserwartungen und Regeln zum Hinzufügen von Quellen finden Sie in `CONTRIBUTING.md`. Für Sicherheitsmeldungen siehe `SECURITY.md`.
## Kontakt
Für Partnerschaften, Integrationen oder andere allgemeine Anfragen erreichen Sie mich unter `[email protected]`.
Bitte verwenden Sie für Fehlerberichte und Funktionswünsche GitHub Issues, damit Diskussionen sichtbar und umsetzbar bleiben.
---
## Star History
<a href="https://www.star-history.com/?repos=calesthio%2FCrucix&type=date&legend=top-left">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/image?repos=calesthio/Crucix&type=date&theme=dark&legend=top-left" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/image?repos=calesthio/Crucix&type=date&legend=top-left" />
<img alt="Sternverlaufsdiagramm" src="https://assets.kitploit.com/production/public/readmes/placeholders/f0fc86cfe65f76d40e15aaec61704ec8220a56dc89d4be03c46f67cb31b9fa8c.svg" />
</picture>
</a>
---
## Lizenz
AGPL-3.0
| 3D-Globus-Ansicht |
|---|
![]() |
| Befehl | Funktion |
|---|
/status | Systemzustand, letzter Sweep-Zeitpunkt, Quellenstatus, LLM-Status |
/sweep | Manuellen Sweep-Zyklus auslösen |
/brief | Kompakte Textzusammenfassung der neuesten Informationen (Richtung, Schlüsselkennzahlen, Top-OSINT) |
/portfolio | Portfoliostatus (falls Alpaca verbunden) |
/alerts | Letzte Alarmchronologie mit Stufen |
/mute / /mute 2h | Alarme für 1h (oder benutzerdefinierte Dauer) stummschalten |
/unmute | Alarme fortsetzen |
/help | Alle verfügbaren Befehle anzeigen |
| Manuellen Sweep-Zyklus auslösen |
/brief | Kompakte Textzusammenfassung der neuesten Informationen |
/portfolio | Portfoliostatus (falls Alpaca verbunden) |
| Quelle | Was es verfolgt | Auth |
|---|
| GDELT | Globale Nachrichtenereignisse, Konfliktkartierung (100+ Sprachen) | Keine |
| OpenSky | Echtzeit-ADS-B-Flugverfolgung über 6 Hotspot-Regionen | Keine |
| NASA FIRMS | Satelliten-Brand-/Thermalanomalieerkennung (3h Verzögerung) | Kostenloser Schlüssel |
| Maritime/AIS | Schiffsverfolgung, Geisterschiffe, Sanktionsumgehung | Kostenloser Schlüssel |
| Safecast | Bürgerwissenschaftliche Strahlungsüberwachung nahe 6 Nuklearstandorten | Keine |
| ACLED | Bewaffnete Konfliktereignisse: Kämpfe, Explosionen, Proteste | Kostenlos (OAuth2) |
| ReliefWeb | UN-Katastrophenhilfe-Verfolgung | Keine |
| WHO | Krankheitsausbrüche und Gesundheitsnotfälle | Keine |
| OFAC | US-Finanzsanktionen (SDN-Liste) | Keine |
| OpenSanctions | Aggregierte globale Sanktionen (30+ Quellen) | Teilweise |
| ADS-B Exchange | Ungefilterte Flugverfolgung, inklusive Militär | Bezahlt |
| Quelle | Was es verfolgt | Auth |
|---|
| FRED | 22 Schlüsselindikatoren: Zinskurve, CPI, VIX, Fed Funds, M2 | Kostenloser Schlüssel |
| US Treasury | Staatsverschuldung, Renditen, Fiskaldaten | Keine |
| BLS | CPI, Arbeitslosigkeit, Nonfarm Payrolls, PPI | Keine |
| EIA | WTI/Brent-Rohöl, Erdgas, Bestände | Kostenloser Schlüssel |
| GSCPI | NY Fed Global Supply Chain Pressure Index | Keine |
| USAspending | Bundesausgaben und Verteidigungsverträge | Keine |
| UN Comtrade | Strategische Rohstoffhandelsströme zwischen Großmächten | Keine |
| Quelle | Was es verfolgt | Auth |
|---|
| NOAA/NWS | Aktive US-Wetterwarnungen | Keine |
| EPA RadNet | US-Regierungsstrahlungsüberwachung | Keine |
| USPTO Patents | Patentanmeldungen in 7 strategischen Technologiebereichen | Keine |
| Bluesky | Soziale Stimmung zu geopolitischen/Marktthemen | Keine |
| Soziale Stimmung aus wichtigen Subreddits | OAuth | |
| Telegram | 17 kuratierte OSINT-/Konflikt-/Finanzkanäle (Web-Scraping, erweiterbar via config) | Keine |
| KiwiSDR | Globales HF-Radioempfängernetzwerk (~600 Empfänger) | Keine |
| Skript | Befehl | Beschreibung |
|---|
npm run dev | node --trace-warnings server.mjs | Dashboard mit automatischer Aktualisierung starten |
npm run sweep | node apis/briefing.mjs | Einmaligen Sweep ausführen, JSON in stdout ausgeben |
npm run inject | node dashboard/inject.mjs | Neueste Daten in statisches HTML einfügen |
npm run brief:save | node apis/save-briefing.mjs | Sweep ausführen + zeitgestempelten JSON speichern |
npm run diag | node diag.mjs | Diagnose ausführen (Node-Version, Importe, Portprüfung) |
| Variable | Standard | Beschreibung |
|---|
PORT | 3117 | Dashboard-Server-Port |
REFRESH_INTERVAL_MINUTES | 15 | Automatisches Aktualisierungsintervall |
LLM_PROVIDER | deaktiviert | anthropic, openai, gemini, codex, openrouter, minimax, mistral oder grok |
LLM_API_KEY | — | API-Schlüssel (nicht für codex erforderlich) |
LLM_MODEL | Standard pro Anbieter | Modellauswahl überschreiben |
TELEGRAM_BOT_TOKEN | deaktiviert | Für Telegram-Benachrichtigungen + Bot-Befehle |
TELEGRAM_CHAT_ID | — | Ihre Telegram-Chat-ID |
TELEGRAM_CHANNELS | — | Zusätzliche Kanal-IDs zur Überwachung (kommagetrennt) |
TELEGRAM_POLL_INTERVAL | 5000 | Bot-Befehl-Abfrageintervall (ms) |
DISCORD_BOT_TOKEN | deaktiviert | Für Discord-Benachrichtigungen + Slash-Befehle |
DISCORD_CHANNEL_ID | — | Discord-Kanal für Benachrichtigungen |
DISCORD_GUILD_ID | — | Server-ID (sofortige Slash-Befehl-Registrierung) |
DISCORD_WEBHOOK_URL | — | Webhook-URL (nur Benachrichtigungs-Fallback, kein Bot erforderlich) |
GET /api/health | Serverstatus, Betriebszeit, Quellenanzahl, LLM-Status |
GET /events | SSE-Stream für Live-Push-Updates |