
あなた専用のインテリジェンスエージェント。複数のデータソースから世界を監視し、何か変化があれば通知します。
あなた自身のインテリジェンス端末。27の情報源。1つのコマンド。クラウド不要。
シグナルネットワークに参加

| ブートシーケンス | ワールドマップ |
|---|---|
![]() | ![]() |
ライブウェブサイト: https://www.crucix.live/ 先に公開デモを試してから、リポジトリをクローンしてCrucixをローカルで実行してください。
Crucixは、衛星火災検知、航空機追跡、放射線監視、衛星コンステレーション追跡、経済指標、ライブ市場価格、紛争データ、制裁リスト、ソーシャルセンチメントを、27のオープンソースインテリジェンスフィードから並列で15分ごとに取得し、すべてを単一の自己完結型Jarvis風ダッシュボードに表示します。
LLMに接続すると、双方向インテリジェンスアシスタントになります。重要な変化があったときにTelegramとDiscordへ多層アラートをプッシュし、スマホから/briefや/sweepなどのコマンドに応答し、実際のクロスドメインデータに基づいた実行可能なトレードアイデアを生成します。あなたが眠っている間も世界を見守る、あなただけのアナリストです。
まずhttps://www.crucix.live/でライブデモをお試しください。フルローカルスタックが必要になったらリポジトリをクローンしてください。
クラウドなし。テレメトリなし。サブスクリプションなし。node server.mjsを実行するだけですぐに動きます。
[!WARNING] Crucixは、公式トークン、コイン、NFT、エアドロップ、プレセール、その他のブロックチェーンベースの資産を一切ローンチしていません。 Crucixの名前、ロゴ、ブランディングを使用したトークンやデジタル資産は、Crucixとは無関係であり、Crucixによる承認も受けていません。 第三者による投稿、DM、ウェブサイトに基づいて、購入、宣伝、受け取りのためのウォレット接続、トランザクションへの署名、送金をしないでください。
世界のリアルタイムインテリジェンスの大半—衛星画像、放射線量、紛争事象、経済指標、航空機追跡、海上活動—は公開されています。ただ、それらは何十もの政府API、研究機関、オープンデータフィードに散らばっており、誰も個別に確認する時間がありません。
Crucixはそれらすべてを1つの場所にまとめます。ペイウォールの背後でもなく、エンタープライズプラットフォームに閉じ込められることもなく、機密許可も不要です。オープンデータを、あなた自身のマシンで集約・クロス相関し、15分ごとに更新するだけです。
これは、今この瞬間に世界で実際に何が起きているのかを理解したいすべての人のために作られました—研究者、ジャーナリスト、トレーダー、OSINTアナリスト、あるいは情報へのアクセスが予算に左右されるべきではないと信じる好奇心旺盛な人々のために。
git clone https://github.com/calesthio/Crucix.git cd Crucix
npm install
cp .env.example .env
npm run dev
> **`npm run dev` が黙って失敗する場合**(出力なしで終了する場合)は、代わりに Node を直接実行してください:
> ```bash
> node --trace-warnings server.mjs
> ```
> これにより、一部のシステム(特に Windows の PowerShell)でエラーを飲み込む可能性がある npm のスクリプトランナーを回避できます。正確な問題を診断するには `node diag.mjs` を実行することもできます — Node のバージョンを確認し、各モジュールのインポートを個別にテストし、ポートの利用可能性を検証します。詳細は [トラブルシューティング](#troubleshooting) を参照してください。
ダッシュボードは `http://localhost:3117` で自動的に開き、すぐに最初のインテリジェンススイープを開始します。この初期スイープは全 27 のソースを並列にクエリし、通常 30〜60 秒かかります — スイープが完了して最初のデータ更新がプッシュされるまで、ダッシュボードは空のまま表示されます。その後、SSE(Server-Sent Events)を介して 15 分ごとに自動更新されます。手動でのページ更新は不要です。
**要件:** Node.js 22+(ネイティブ `fetch`、トップレベル `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
ダッシュボードは http://localhost:3117 にあります。スイープデータはボリュームマウントを介して ./runs/ に永続化されます。ヘルスチェックエンドポイントが含まれます。
自己完結型のJarvisスタイルHUD:
トップバーの VISUALS FULL / VISUALS LITE ボタンはレンダリング動作のみを変更します。データソースの削除やスイープ範囲の縮小は行いません。
VISUALS LITE に切り替えると、ダッシュボードは次のようになります:
モバイル固有の動作:
VISUALS LITE はダッシュボードを平面マップモードに強制しますこの設定はブラウザのローカルストレージに保存されるため、UIは最後に選択した設定を記憶します。
サーバーは15分ごとにスイープサイクルを実行します (設定可能)。各サイクル:
Crucixは対話型Telegramボットとしても機能します。アラートの送信に加えて、チャットから直接コマンドに応答します:
これには .env 内の TELEGRAM_BOT_TOKEN と TELEGRAM_CHAT_ID が必要です。ボットは5秒ごとにメッセージをポーリングします (TELEGRAM_POLL_INTERVAL で設定可能)。
Crucixは、スラッシュコマンドとリッチ埋め込みアラートを備えたフル機能のボットとしてDiscordもサポートしています。Telegramボットの機能をDiscordネイティブのフォーマットで再現します。
| コマンド | 機能 |
|---|---|
/status | システムヘルス、最終スイープ時刻、ソースステータス、LLMステータス |
/sweep | 手動スイープサイクルのトリガー |
/brief |
アラートは、色分けされたサイドバー付きのリッチ埋め込みで配信されます: FLASH は赤、PRIORITY は黄、ROUTINE は青。各埋め込みには、シグナルの詳細、信頼度スコア、クロスドメイン相関が含まれます。
セットアップに必要なもの: DISCORD_BOT_TOKEN、DISCORD_CHANNEL_ID、およびスラッシュコマンドの即時登録には任意で DISCORD_GUILD_ID。詳細は APIキーの設定 を参照してください。
Webhookフォールバック: フルボットを実行したくない場合は、代わりに DISCORD_WEBHOOK_URL を設定します。これにより、依存関係ゼロで一方向アラート (スラッシュコマンドなし) が有効になります — discord.js は不要です。
任意の依存関係: フルボットには discord.js が必要です。npm install discord.js でインストールしてください。インストールされていない場合、Crucixは自動的にWebhookのみのモードにフォールバックします。
拡張分析のために8つのLLMプロバイダーのいずれかに接続します:
プロジェクトのルートで .env.example を .env にコピーしてください:```bash
cp .env.example .env
### 最良の結果に必要なもの(すべて無料)
| キー | 提供元 | 入手方法 |
|-----|--------|------------|
| `FRED_API_KEY` | Federal Reserve Economic Data | [fred.stlouisfed.org](https://fred.stlouisfed.org/docs/api/api_key.html) — 即時、無料 |
| `FIRMS_MAP_KEY` | NASA FIRMS(衛星火災データ) | [firms.modaps.eosdis.nasa.gov](https://firms.modaps.eosdis.nasa.gov/api/area/) — 即時、無料 |
| `EIA_API_KEY` | US Energy Information Administration | [api.eia.gov](https://www.eia.gov/opendata/register.php) — 即時、無料 |
この3つで、最も価値の高い経済・衛星データを利用できます。それぞれ登録に約60秒かかります。
### オプション(追加のソースを有効化)
| キー | 提供元 | 入手方法 |
|-----|--------|------------|
| `ACLED_EMAIL` + `ACLED_PASSWORD` | 武力紛争イベントデータ | [acleddata.com/register](https://acleddata.com/register/) — 無料、OAuth2 |
| `AISSTREAM_API_KEY` | 海事AIS船舶追跡 | [aisstream.io](https://aisstream.io/) — 無料 |
| `ADSB_API_KEY` | フィルタなしのフライト追跡 | [RapidAPI](https://rapidapi.com/adsbexchange/api/adsbexchange-com1) — 約 $10/月 |
### LLM プロバイダー(任意、AI 強化アイデア用)
`LLM_PROVIDER` を次のいずれかに設定します: `anthropic`, `openai`, `gemini`, `codex`, `openrouter`, `minimax`, `mistral`, `grok`
| プロバイダー | 必要なキー | デフォルトモデル |
|----------|-------------|---------------|
| `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` | なし(`~/.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 |
Codex の場合、`npx @openai/codex login` を実行して、ChatGPT サブスクリプションで認証します。
### Telegram ボット+アラート(任意)
| キー | 入手方法 |
|-----|------------|
| `TELEGRAM_BOT_TOKEN` | Telegram の [@BotFather](https://t.me/BotFather) 経由で作成 |
| `TELEGRAM_CHAT_ID` | [@userinfobot](https://t.me/userinfobot) 経由で取得 |
| `TELEGRAM_CHANNELS` | *(任意)* 内蔵17チャンネルに加えて監視する、カンマ区切りの追加チャンネルID |
| `TELEGRAM_POLL_INTERVAL` | *(任意)* ボットコマンドのポーリング間隔(ミリ秒、デフォルト: 5000) |
### Discord ボット+アラート(任意)
| キー | 入手方法 |
|-----|------------|
| `DISCORD_BOT_TOKEN` | [Discord Developer Portal](https://discord.com/developers/applications) → Bot → Token で作成 |
| `DISCORD_CHANNEL_ID` | Discord でチャンネルを右クリック(開発者モードON)→ チャンネルIDをコピー |
| `DISCORD_GUILD_ID` | *(任意)* サーバーを右クリック → サーバーIDをコピー。スラッシュコマンドを即時登録できます(それ以外はグローバルコマンドで最大1時間かかります) |
| `DISCORD_WEBHOOK_URL` | *(任意)* チャンネル設定 → 連携 → Webhooks → New Webhook → URLをコピー。ボットなしのアラート専用モードに使用します |
**Discord ボットのセットアップ:**
1. [Discord Developer Portal](https://discord.com/developers/applications) にアクセスし、新しいアプリケーションを作成します
2. **Bot** → **Reset Token** をクリック → トークンを `DISCORD_BOT_TOKEN` にコピーします
3. **Privileged Gateway Intents** で **Message Content Intent** を有効にします
4. **OAuth2** → **URL Generator** に移動 → `bot` + `applications.commands` スコープを選択 → `Send Messages` + `Embed Links` 権限を選択します
5. 生成されたURLをコピーしてブラウザで開き、ボットをサーバーに招待します
6. 依存関係をインストール: `npm install discord.js`
アラートは、Telegram と Discord の両方で LLM の有無にかかわらず機能します。LLM を設定すると、シグナル評価はよりリッチでコンテキストを考慮したものになります。LLM がない場合、決定論的ルールエンジンが、重大度、クロスドメイン相関、シグナル数に基づいてシグナルを評価します。
### キーなしの場合
Crucix は API キーがゼロでも動作します。18以上のソースは認証をまったく必要としません。キーが必要なソースは構造化エラーを返し、スイープの残りは通常どおり続行されます。
---
## アーキテクチャ```
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 であり、明示的なインポートを使用discord.js はオプション(Discord ボット用)。LLM プロバイダーは SDK ではなく生の fetch() を使用。Promise.allSettled() が全27ソースを同時に起動node apis/sources/gdelt.mjs を実行して任意のソースを個別にテスト可能| ソース | 追跡内容 | 認証 |
|---|---|---|
| CelesTrak | 衛星打ち上げ、ISS追跡、軍事コンステレーション、Starlink/OneWeb数 | なし |
| ソース | 追跡内容 | 認証 |
|---|---|---|
| Yahoo Finance | リアルタイム価格:SPY、QQQ、BTC、金、WTI、VIX + その他9銘柄 | なし |
すべての設定は .env にあり、適切なデフォルト値が設定されています:
Deltaエンジンのしきい値(スイープ間の変化に対するシステムの感度)は、crucix.config.mjs の delta.thresholds セクションでカスタマイズできます。デフォルト値は、意味のある変動を捉えつつノイズを除去するように調整されています。
npm run dev を実行中の場合:
| エンドポイント | 説明 |
|---|---|
GET / | Jarvis HUD ダッシュボード |
GET /api/data | 現在の統合インテリジェンスデータ(JSON) |
GET /api/health |
npm run dev が何も出力せずに終了する(出力もエラーもない)これは、npmのスクリプトランナーがエラーを飲み込む可能性がある既知の問題で、特にWindows PowerShellで発生します。次の順序でお試しください:
1. Nodeを直接実行する(npmをバイパス)```bash node --trace-warnings server.mjs
これは `npm run dev` と機能的に同一ですが、完全なエラー出力が得られます。
**2. 診断スクリプトを実行する:**```bash
node diag.mjs
This tests every import one by one, checks your Node.js version, and verifies port 3117 is available. It will tell you exactly what's failing.
3. Check if port 3117 is already in use:
A previous Crucix instance may still be running in the background.```powershell
netstat -ano | findstr 3117 taskkill /F /PID <the_PID_from_above>
taskkill /F /IM node.exe
Please provide the Markdown content to translate.```bash
# macOS / Linux
lsof -ti:3117 | xargs kill
それから、もう一度起動してみてください。また、.env ファイルで PORT=3118 を設定することでポートを変更することもできます。
4. Node.js のバージョンを確認する:```bash node --version
Crucix には Node.js 22 以降が必要です。古いバージョンをお使いの場合は、[nodejs.org](https://nodejs.org/) から最新の LTS をダウンロードしてください。
### 初回起動後にダッシュボードのパネルが空になる
これは正常です — 最初のスイープは全 27 ソースへのクエリに 30〜60 秒かかります。スイープが完了すると、ダッシュボードには自動的にデータが表示されます。スイープの進行ログはターミナルで確認してください。
### 一部のソースでエラーが表示される
これは想定された動作です。API キーが必要なソースは、キーが設定されていない場合に構造化エラーを返します。残りのスイープは通常どおり続行されます。ダッシュボードの Source Integrity セクション(またはサーバーログ)で、どのソースが失敗したか、その理由を確認してください。追加すべき最も影響力のある無料キーは、`FRED_API_KEY`、`FIRMS_MAP_KEY`、`EIA_API_KEY` の 3 つです。
OpenSky は、パブリックホットスポットへのクエリが過剰に行われると `HTTP 429` を返すこともあります。Crucix はその制限を回避しようとはしません。代わりに、ソースの健全性にスロットル/エラーを表示し、スロットルがかかったスイープでもダッシュボードのフライトレイヤーが突然空白にならないよう、`runs/` 内の最新の空でない航空交通スナップショットを保持します。
### Telegram ボットがコマンドに応答しない
`TELEGRAM_BOT_TOKEN` と `TELEGRAM_CHAT_ID` の両方が `.env` に設定されていることを確認してください。ボットは設定されたチャット ID からのメッセージにのみ応答します(セキュリティ対策)。起動時にサーバーログで `[Crucix] Telegram alerts enabled` と `[Crucix] Bot command polling started` が表示されるはずです。表示されない場合は、`curl https://api.telegram.org/bot<YOUR_TOKEN>/getMe` でトークンを再確認してください。
### Discord ボットがスラッシュコマンドに応答しない
以下を順番に確認してください:
1. `DISCORD_BOT_TOKEN` と `DISCORD_CHANNEL_ID` が `.env` に設定されていることを確認してください
2. `discord.js` がインストールされているか確認してください: `npm ls discord.js`。ない場合は `npm install discord.js` を実行してください
3. スラッシュコマンドが表示されない場合は、`DISCORD_GUILD_ID` を設定してください — これがないと、グローバルコマンドの伝播に最大 1 時間かかることがあります。ギルド固有のコマンドは即座に登録されます。
4. ボットが `bot` + `applications.commands` スコープで招待され、ターゲットチャンネルで `Send Messages` + `Embed Links` 権限を持っていることを確認してください
5. 起動時にサーバーログで `[Discord] Bot logged in as ...` を確認してください。`[Discord] discord.js not installed` が表示された場合は、インストールして再起動してください
6. **Webhook のみのフォールバック:** スラッシュコマンドなしでアラートだけが必要な場合は、ボットトークンの代わりに `DISCORD_WEBHOOK_URL` を設定してください。`discord.js` は不要です
---
## スクリーンショット
`docs/` フォルダには、この README で参照されているダッシュボードのスクリーンショットが含まれています:
| ファイル | 説明 |
|------|-------------|
| `docs/dashboard.png` | ダッシュボード全体 — この README の上部にあるヒーロー画像 |
| `docs/boot.png` | 映画のような起動シーケンスのアニメーション |
| `docs/map.png` | マーカータイプとフライトアークを備えた D3 世界地図 |
| `docs/globe.png` | 大気グローとマーカーを備えた 3D WebGL 地球儀ビュー |
更新するには: ダッシュボードを実行し、スイープの完了を待ってから、ブラウザの DevTools(`F12` → `Ctrl+Shift+P` → "Capture full size screenshot")または GIF 用の [LICEcap](https://www.cockos.com/licecap/) などのツールを使用してください。
---
## コントリビューション
バグを発見しましたか? 28 番目のソースを追加したいですか? PR 歓迎です。各ソースは `apis/sources/` 内の独立したモジュールです — 構造化データを返す `briefing()` 関数をエクスポートし、`apis/briefing.mjs` のオーケストレーターに追加するだけです。
これが役に立つと思ったら、スターを付けてもらえると他の人も見つけやすくなります。
コントリビューションガイドライン、レビューの期待値、ソース追加のルールについては、`CONTRIBUTING.md` を参照してください。セキュリティ報告については、`SECURITY.md` を参照してください。
## 連絡先
パートナーシップ、統合、その他の issue 以外のお問い合わせは、`[email protected]` までご連絡ください。
バグや機能リクエストについては、ディスカッションが可視化され、対応可能な状態を保つため、GitHub Issues をご利用ください。
---
## スター履歴
<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="Star History Chart" src="https://assets.kitploit.com/production/public/readmes/41561/7cd00fa07216305d19bb2b6ece0de2b2dd36eeb2786d065aef0359159e4598a8/43d9ce4f0049392bf903058716bccb8009e9bdf415dc7e9e892487d4c1f75365-display-v1.webp" />
</picture>
</a>
---
## ライセンス
AGPL-3.0
| 3Dグローブビュー |
|---|
![]() |
| コマンド | 機能 |
|---|
/status | システムヘルス、最終スイープ時刻、ソースステータス、LLMステータス |
/sweep | 手動スイープサイクルのトリガー |
/brief | 最新インテリジェンスのコンパクトなテキスト要約 (方向性、主要メトリクス、主要OSINT) |
/portfolio | ポートフォリオのステータス (Alpaca接続時) |
/alerts | ティア付きの最近のアラート履歴 |
/mute / /mute 2h | アラートを1時間 (またはカスタム期間) 停止 |
/unmute | アラートを再開 |
/help | 利用可能な全コマンドを表示 |
| 最新インテリジェンスのコンパクトなテキスト要約 |
/portfolio | ポートフォリオのステータス (Alpaca接続時) |
| ソース | 追跡内容 | 認証 |
|---|
| GDELT | 世界のニュースイベント、紛争マッピング(100以上の言語) | なし |
| OpenSky | 6つのホットスポット地域にわたるリアルタイム ADS-B フライト追跡 | なし |
| NASA FIRMS | 衛星による火災/熱異常の検出(3時間遅延) | 無料キー |
| Maritime/AIS | 船舶追跡、ダークシップ(位置情報非開示船)、制裁回避 | 無料キー |
| Safecast | 6つの原子力施設周辺の市民科学による放射線モニタリング | なし |
| ACLED | 武力衝突イベント:戦闘、爆発、抗議 | 無料(OAuth2) |
| ReliefWeb | 国連の人道危機追跡 | なし |
| WHO | 疾病の発生と健康危機 | なし |
| OFAC | 米国財務省の制裁(SDNリスト) | なし |
| OpenSanctions | 集約されたグローバル制裁(30以上のソース) | 一部 |
| ADS-B Exchange | 軍事便を含むフィルタリングなしのフライト追跡 | 有料 |
| ソース | 追跡内容 | 認証 |
|---|
| FRED | 22の主要指標:イールドカーブ、CPI、VIX、フェデラルファンド金利、M2 | 無料キー |
| US Treasury | 国債、利回り、財政データ | なし |
| BLS | CPI、失業率、非農業部門雇用者数、PPI | なし |
| EIA | WTI/ブレント原油、天然ガス、在庫 | 無料キー |
| GSCPI | NY連銀グローバルサプライチェーン圧力指数 | なし |
| USAspending | 連邦支出と防衛契約 | なし |
| UN Comtrade | 主要国間の戦略的商品貿易フロー | なし |
| ソース | 追跡内容 | 認証 |
|---|
| NOAA/NWS | 米国のアクティブな気象警報 | なし |
| EPA RadNet | 米国政府の放射線モニタリング | なし |
| USPTO Patents | 7つの戦略的テクノロジー分野における特許出願 | なし |
| Bluesky | 地政学・市場トピックに関するソーシャルセンチメント | なし |
| 主要subredditからのソーシャルセンチメント | OAuth | |
| Telegram | 17の厳選されたOSINT/紛争/金融チャンネル(Webスクレイピング、設定で拡張可能) | なし |
| KiwiSDR | グローバルHF無線受信機ネットワーク(約600台の受信機) | なし |
| スクリプト | コマンド | 説明 |
|---|
npm run dev | node --trace-warnings server.mjs | 自動更新付きダッシュボードを起動 |
npm run sweep | node apis/briefing.mjs | 単一スイープを実行し、JSONを標準出力に出力 |
npm run inject | node dashboard/inject.mjs | 最新データを静的HTMLに注入 |
npm run brief:save | node apis/save-briefing.mjs | スイープを実行 + タイムスタンプ付きJSONを保存 |
npm run diag | node diag.mjs | 診断を実行(Nodeバージョン、インポート、ポートチェック) |
| 変数 | デフォルト | 説明 |
|---|
PORT | 3117 | ダッシュボードサーバーのポート |
REFRESH_INTERVAL_MINUTES | 15 | 自動更新間隔 |
LLM_PROVIDER | disabled | anthropic、openai、gemini、codex、openrouter、minimax、mistral、または grok |
LLM_API_KEY | — | APIキー(codexでは不要) |
LLM_MODEL | プロバイダーごとのデフォルト | モデル選択を上書き |
TELEGRAM_BOT_TOKEN | disabled | Telegramアラートとボットコマンド用 |
TELEGRAM_CHAT_ID | — | あなたのTelegramチャットID |
TELEGRAM_CHANNELS | — | 監視する追加チャンネルID(カンマ区切り) |
TELEGRAM_POLL_INTERVAL | 5000 | ボットコマンドのポーリング間隔(ms) |
DISCORD_BOT_TOKEN | disabled | Discordアラートとスラッシュコマンド用 |
DISCORD_CHANNEL_ID | — | アラート用Discordチャンネル |
DISCORD_GUILD_ID | — | サーバーID(スラッシュコマンドの即時登録) |
DISCORD_WEBHOOK_URL | — | Webhook URL(アラートのみのフォールバック、ボット不要) |
| サーバーステータス、稼働時間、ソース数、LLMステータス |
GET /events | ライブプッシュ更新用のSSEストリーム |