Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/calesthio/crucix
OSINT (Open Source Intelligence)ReconnaissanceInformation GatheringThreat IntelligenceLearning & EducationCurated Resources
GitHubcalesthio/crucix

Crucix

당신의 개인 정보 에이전트입니다. 여러 데이터 소스에서 세상을 관찰하고 무언가 변경되면 알려줍니다.

저장소 보기
11.3k1.8k3개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
Crucix — 당신의 개인 정보 에이전트입니다. 여러 데이터 소스에서 세상을 관찰하고 무언가 변경되면 알려줍니다. | Kitploit
웹사이트

Crucix

당신만의 인텔리전스 터미널. 27개의 소스. 하나의 명령어. 제로 클라우드.

라이브 사이트 방문: crucix.live

Live Website Open Demo

Node.js 22+ License: AGPL v3 Dependencies Sources Docker

시그널 네트워크에 참여하세요

Signal Wire Ops Room

Crucix Dashboard

더 많은 스크린샷
부트 시퀀스세계 지도
BootMap

라이브 웹사이트: https://www.crucix.live/ 먼저 공개 데모를 체험해보고, 로컬에서 Crucix를 실행하려면 레포지토리를 클론하세요.

Crucix는 위성 화재 감지, 항공편 추적, 방사능 모니터링, 위성 군집 추적, 경제 지표, 실시간 시장 가격, 충돌 데이터, 제재 목록, 소셜 센티먼트를 27개의 오픈소스 인텔리전스 피드에서 15분마다 병렬로 가져와 단일 자체 포함 Jarvis 스타일 대시보드에 렌더링합니다.

LLM에 연결하면 양방향 인텔리전스 어시스턴트가 됩니다. 중요한 변화가 있을 때 텔레그램과 디스코드로 다계층 알림을 푸시하고, 휴대폰에서 /brief 및 /sweep 같은 명령어에 응답하며, 실제 교차 도메인 데이터를 기반으로 실행 가능한 거래 아이디어를 생성합니다. 당신이 잠든 동안 세상을 관찰하는 개인 분석가입니다.

먼저 https://www.crucix.live/에서 라이브 데모를 체험해보고, 전체 로컬 스택을 원할 때 레포지토리를 클론하세요.

클라우드 없음. 원격 측정 없음. 구독 없음. 그저 node server.mjs만 입력하면 실행됩니다.

토큰 / 자산 경고

[!WARNING] Crucix는 공식 토큰, 코인, NFT, 에어드롭, 프리세일 또는 기타 블록체인 기반 자산을 출시하지 않았습니다. Crucix 이름, 로고 또는 브랜딩을 사용하는 모든 토큰 또는 디지털 자산은 Crucix와 제휴하거나 보증하지 않습니다. 타사 게시물, 다이렉트 메시지 또는 웹사이트를 기반으로 구매, 홍보, 지갑 연결, 트랜잭션 서명 또는 자금 전송을 하지 마십시오.


존재 이유

세계의 실시간 인텔리전스 대부분(위성 이미지, 방사선 수준, 충돌 이벤트, 경제 지표, 항공편 추적, 해양 활동)은 공개적으로 이용 가능합니다. 하지만 수십 개의 정부 API, 연구 기관 및 공개 데이터 피드에 흩어져 있어 개별적으로 확인할 시간이 있는 사람은 아무도 없습니다.

Crucix는 모든 것을 한곳에 모읍니다. 페이월 뒤에 있지 않으며, 엔터프라이즈 플랫폼에 갇혀 있지 않으며, 보안 허가가 필요하지 않습니다. 개인 머신에서 집계 및 상호 상관된 오픈 데이터를 15분마다 업데이트합니다.

지금 당장 세상에서 실제로 일어나고 있는 일을 이해하고 싶은 모든 사람(연구자, 저널리스트, 트레이더, OSINT 분석가, 또는 정보 접근이 예산에 달려 있어서는 안 된다고 믿는 호기심 많은 사람)을 위해 구축되었습니다.


빠른 시작```bash

1. Clone the repo

git clone https://github.com/calesthio/Crucix.git cd Crucix

2. Install dependencies (just Express)

npm install

3. Copy env template and add your API keys (see below)

cp .env.example .env

4. Start the dashboard

npm run dev

root@kitploit:~
> **`npm run dev`이 조용히 실패하는 경우** (출력 없이 종료됨), Node를 직접 실행하세요:
> ```bash
> node --trace-warnings server.mjs
> ```
> 이 방법은 npm의 스크립트 실행기를 우회하며, 일부 시스템(특히 Windows PowerShell)에서 오류가 삼켜지는 문제를 해결합니다. 또한 `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

Dashboard at http://localhost:3117. 스윕 데이터는 볼륨 마운트를 통해 ./runs/에 유지됩니다. 상태 확인 엔드포인트가 포함되어 있습니다.


제공되는 것

라이브 대시보드

자체 포함된 Jarvis 스타일 HUD:

  • 3D WebGL 지구본 (Globe.gl): 대기광, 별 필드, 부드러운 회전 — 클래식 평면 지도 토글 포함
  • 9가지 마커 유형 (두 뷰 모두): 화재 감지, 항공 교통, 방사선 사이트, 해양 병목 지점, SDR 수신기, OSINT 이벤트, 건강 경보, 지리 위치 뉴스, 갈등 이벤트
  • 애니메이션 3D 비행 회랑 아크: 항공 교통 핫스팟과 글로벌 허브 간
  • 지역 필터 (세계, 아메리카, 유럽, 중동, 아시아 태평양, 아프리카) — 지구본 회전 또는 평면 지도 확대/축소
  • 실시간 시장 데이터 — Yahoo Finance를 통한 지수, 암호화폐, 에너지, 원자재 (API 키 불필요)
  • 위험 게이지 — VIX, 하이일드 스프레드, 공급망 압력 지수
  • OSINT 피드 — 17개 텔레그램 정보 채널의 영어 게시물 (확장 가능)
  • 뉴스 티커 — RSS + GDELT 헤드라인 + 텔레그램 게시물 병합, 자동 스크롤
  • 스윕 델타 — 마지막 스윕 이후 변경 사항을 보여주는 라이브 패널 (새 신호, 확대, 축소 및 심각도)
  • 교차 소스 신호 — 위성, 경제, 갈등, 소셜 도메인 간의 상관 관계 정보
  • 핵 감시 — Safecast + EPA RadNet의 실시간 방사선 판독
  • 우주 감시 — CelesTrak 위성 추적: 최근 발사, ISS, 군사 별자리, Starlink/OneWeb 수
  • 활용 가능한 아이디어 — AI 생성 거래 아이디어 (LLM 사용) 또는 신호 상관 아이디어 (LLM 미사용)

성능 모드

상단 표시줄의 VISUALS FULL / VISUALS LITE 버튼은 렌더링 동작만 변경합니다. 데이터 소스를 제거하거나 스윕 범위를 줄이지 않습니다.

VISUALS LITE로 전환하면 대시보드:

  • 방사형/그리드 오버레이 및 스캔라인과 같은 장식용 배경 효과를 비활성화합니다.
  • 패널 및 오버레이의 고비용 블러/배경 필터 효과를 제거합니다.
  • 로고 링 깜빡임, 충돌 링, 회랑 흐름 효과와 같은 비필수 애니메이션을 중지합니다.
  • 지구본 자동 회전을 비활성화하고 애니메이션 비행 호 대시를 끕니다.
  • 수평 뉴스 티커와 OSINT 스트림을 지속적으로 애니메이션되는 마키 대신 정적이고 스크롤 가능한 목록으로 변환합니다.

모바일 전용 동작:

  • 모바일에서는 VISUALS LITE가 현재 지구본 모드인 경우 대시보드를 평면 지도 모드로 강제 전환합니다.
  • 저성능 모드가 활성화된 상태에서 향후 모바일 로드는 계속 평면 모드로 시작됩니다.

이 설정은 브라우저 로컬 스토리지에 저장되므로 UI가 마지막 설정을 기억합니다.

자동 새로고침

서버는 15분마다 스윕 사이클을 실행합니다 (구성 가능). 각 사이클:

  1. 모든 27개 소스를 병렬로 쿼리합니다 (~30초)
  2. 원시 데이터를 대시보드 형식으로 합성합니다.
  3. 이전 실행과의 델타를 계산합니다 (변경, 확대, 축소) — 대시보드의 스윕 델타 패널에서 확인 가능
  4. LLM 거래 아이디어를 생성합니다 (구성된 경우)
  5. 속보 알림 평가 — 다중 등급 (FLASH / PRIORITY / ROUTINE) 및 의미론적 중복 제거. 구성된 경우 텔레그램 및/또는 디스코드로 전송. LLM 평가와 함께 작동하거나 LLM을 사용할 수 없을 때 규칙 기반 알림으로 대체됩니다.
  6. SSE를 통해 연결된 모든 브라우저에 업데이트를 푸시합니다.

텔레그램 봇 (양방향)

Crucix는 대화형 텔레그램 봇 역할도 합니다. 알림 전송 외에도 채팅에서 직접 명령에 응답합니다.

이를 위해서는 .env 파일에 TELEGRAM_BOT_TOKEN과 TELEGRAM_CHAT_ID가 필요합니다. 봇은 5초마다 메시지를 폴링합니다 (TELEGRAM_POLL_INTERVAL로 구성 가능).

디스코드 봇 (양방향)

Crucix는 또한 슬래시 명령어와 리치 임베드 알림을 갖춘 완전한 기능의 디스코드 봇을 지원합니다. 디스코드 네이티브 형식으로 텔레그램 봇의 기능을 미러링합니다.

명령어기능
/status시스템 상태, 마지막 스윕 시간, 소스 상태, LLM 상태
/sweep수동 스윕 사이클 실행
/brief최신 정보의 간결한 텍스트 요약

알림은 색상 코드가 적용된 사이드바가 있는 리치 임베드로 전달됩니다. 빨간색은 FLASH, 노란색은 PRIORITY, 파란색은 ROUTINE입니다. 각 임베드에는 신호 세부 정보, 신뢰도 점수 및 교차 도메인 상관 관계가 포함됩니다.

설정 필요: DISCORD_BOT_TOKEN, DISCORD_CHANNEL_ID, 그리고 슬래시 명령어의 즉시 등록을 위한 DISCORD_GUILD_ID (선택 사항). 자세한 내용은 API 키 설정을 참조하세요.

웹훅 대체: 전체 봇을 실행하지 않으려면 DISCORD_WEBHOOK_URL을 설정하세요. 이렇게 하면 종속성 없이 단방향 알림이 가능합니다 (슬래시 명령어 없음) — discord.js가 필요하지 않습니다.

선택적 종속성: 전체 봇에는 discord.js가 필요합니다. npm install discord.js로 설치하세요. 설치되지 않은 경우 Crucix는 자동으로 웹훅 전용 모드로 대체됩니다.

선택적 LLM 계층

향상된 분석을 위해 8개의 LLM 제공업체 중 하나를 연결하세요.

  • AI 거래 아이디어 — 특정 데이터를 인용하여 5~8개의 실행 가능한 아이디어를 생성하는 정량 분석가
  • 더 스마트한 알림 평가 — LLM이 신호를 FLASH/PRIORITY/ROUTINE 등급으로 분류하고 교차 도메인 상관 관계 및 신뢰도 점수를 제공합니다.
  • 제공업체: Anthropic Claude, OpenAI, Google Gemini, OpenRouter (통합 API), OpenAI Codex (ChatGPT 구독), MiniMax, Mistral, Grok
  • 정상적인 대체 — LLM을 사용할 수 없을 때 규칙 기반 엔진이 알림 평가를 대신합니다. LLM 오류로 인해 스윕 사이클이 중단되지 않습니다.

API 키 설정

프로젝트 루트에서 .env.example을 .env로 복사하세요:```bash cp .env.example .env

root@kitploit:~
### 최상의 결과를 위해 필요 (모두 무료)

| 키 | 출처 | 획득 방법 |
|-----|--------|------------|
| `FRED_API_KEY` | 연방준비제도 경제 데이터 | [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` | 미국 에너지 정보청 | [api.eia.gov](https://www.eia.gov/opendata/register.php) — 즉시, 무료 |

이 세 가지는 가장 가치 있는 경제 및 위성 데이터에 접근할 수 있게 해줍니다. 각각 등록하는 데 약 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` | *(선택 사항)* 봇 명령 폴링 간격 (ms 단위, 기본값: 5000) |

### Discord 봇 + 알림 (선택 사항)

| 키 | 획득 방법 |
|-----|------------|
| `DISCORD_BOT_TOKEN` | [Discord Developer Portal](https://discord.com/developers/applications) → Bot → Token에서 생성 |
| `DISCORD_CHANNEL_ID` | Discord에서 채널 우클릭 (개발자 모드 켜짐) → 채널 ID 복사 |
| `DISCORD_GUILD_ID` | *(선택 사항)* 서버 우클릭 → 서버 ID 복사. 즉시 슬래시 명령 등록 가능 (그렇지 않으면 전역 명령에 최대 1시간 소요) |
| `DISCORD_WEBHOOK_URL` | *(선택 사항)* 채널 설정 → 통합 → 웹후크 → 새 웹후크 → 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)

설계 원칙

  • 순수 ESM — 모든 파일은 명시적 가져오기가 있는 .mjs 파일입니다
  • 최소 의존성 — Express가 유일한 런타임 의존성입니다. discord.js는 선택 사항입니다(Discord 봇용). LLM 제공자는 원시 fetch()를 사용하며 SDK가 없습니다.
  • 병렬 실행 — Promise.allSettled()가 27개 소스를 동시에 실행합니다
  • 우아한 성능 저하 — 누락된 키는 오류를 생성할 뿐 충돌을 일으키지 않습니다. LLM 실패도 스윕을 중단시키지 않습니다.
  • 각 소스는 독립적 — node apis/sources/gdelt.mjs를 실행하여 모든 소스를 독립적으로 테스트할 수 있습니다
  • 자체 포함 대시보드 — HTML 파일은 서버 유무에 관계없이 작동합니다

데이터 소스 (27)

계층 1: 핵심 OSINT 및 지정학 (11)

계층 2: 경제 및 금융 (7)

계층 3: 날씨, 환경, 기술, 소셜, SIGINT (7)

계층 4: 우주 및 위성 (1)

소스추적 대상인증
CelesTrak위성 발사, ISS 추적, 군사 별자리, Starlink/OneWeb 개수없음

계층 5: 실시간 시장 데이터 (1)

소스추적 대상인증
Yahoo Finance실시간 가격: SPY, QQQ, BTC, 금, WTI, VIX 외 9개없음

npm 스크립트


설정

모든 설정은 합리적인 기본값과 함께 .env 파일에 있습니다:

델타 엔진 임계값(스윕 간 변경에 대한 시스템 민감도)은 crucix.config.mjs의 delta.thresholds 섹션에서 사용자 정의할 수 있습니다. 기본값은 의미 있는 변동을 포착하면서 노이즈를 걸러내도록 조정되어 있습니다.


API 엔드포인트

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

root@kitploit:~
이는 `npm run dev`와 기능적으로 동일하지만 전체 오류 출력을 제공합니다.

**2. 진단 스크립트 실행:**```bash
node diag.mjs

이것은 각 임포트를 하나씩 테스트하고, Node.js 버전을 확인하며, 포트 3117이 사용 가능한지 검증합니다. 정확히 무엇이 실패했는지 알려줍니다.

3. 포트 3117이 이미 사용 중인지 확인하세요:```powershell

Windows PowerShell

netstat -ano | findstr 3117 taskkill /F /PID <the_PID_from_above>

Or kill all Node processes

taskkill /F /IM node.exe

root@kitploit:~
### ⚠️ 면책 조항
| ⚠️ 면책 조항 |
|-------------|
| 이 프로젝트는 교육, 윤리적 해킹, 보안 연구 목적으로 코드와 예제를 논의하고 제공합니다. 여기에는 패스워드 크래킹, 네트워크 보안 테스트, 취약점 평가 등과 관련된 기능이 포함됩니다. |
| |
| **이러한 도구와 기법은 책임감 있게, 그리고 승인된 환경에서만 사용해야 합니다.** 예를 들어 본인이 소유하거나 테스트 권한을 명시적으로 허가받은 시스템에서만 사용해야 합니다. 이러한 도구를 무단으로 사용하는 것은 불법이며 현지, 국가 및 국제법을 위반할 수 있습니다. |
| |
| 저자는 이 코드의 오용이나 불법적인 사용으로 인해 발생하는 손해, 법적 문제 또는 결과에 대해 **책임을 지지 않습니다**. |
| |
| 이 내용을 읽었다면 계속하기 전에 저장소 루트에 있는 **DISCLAIMER.md** 파일을 반드시 읽고 동의해야 합니다. |```bash
# macOS / Linux
lsof -ti:3117 | xargs kill

그런 다음 다시 시작해 보세요. .env 파일에서 PORT=3118을 설정하여 포트를 변경할 수도 있습니다.

4. Node.js 버전 확인:```bash node --version

root@kitploit:~
Crucix는 Node.js 22 이상이 필요합니다. 이전 버전을 사용 중이라면 [nodejs.org](https://nodejs.org/)에서 최신 LTS를 다운로드하세요.

### 대시보드가 처음 시작 후 빈 패널을 표시합니다

이는 정상입니다 — 첫 번째 스윕이 27개 소스를 모두 쿼리하는 데 30~60초가 소요됩니다. 스윕이 완료되면 대시보드가 자동으로 채워집니다. 터미널에서 스윕 진행 로그를 확인하세요.

### 일부 소스에서 오류가 표시됩니다

예상된 동작입니다. API 키가 필요한 소스는 키가 설정되지 않은 경우 구조화된 오류를 반환합니다. 나머지 스윕은 정상적으로 계속됩니다. 대시보드의 소스 무결성 섹션(또는 서버 로그)에서 어떤 소스가 실패했고 그 이유를 확인하세요. 추가할 가장 영향력 있는 무료 키 3개는 `FRED_API_KEY`, `FIRMS_MAP_KEY`, `EIA_API_KEY`입니다.

OpenSky는 공용 핫스팟이 너무 공격적으로 쿼리될 때 `HTTP 429`를 반환할 수도 있습니다. Crucix는 해당 제한을 회피하려고 시도하지 않습니다. 대신, 소스 상태에서 스로틀/오류를 표시하고 `runs/`에서 가장 최근의 비어 있지 않은 항공 교통 스냅샷을 보존하여 스로틀된 스윕에서 대시보드 비행 레이어가 갑자기 비어 있지 않도록 합니다.

### Telegram 봇이 명령에 응답하지 않습니다

`.env`에 `TELEGRAM_BOT_TOKEN`과 `TELEGRAM_CHAT_ID`가 모두 설정되어 있는지 확인하세요. 봇은 구성된 채팅 ID의 메시지에만 응답합니다(보안 조치). 시작 시 서버 로그에 `[Crucix] Telegram alerts enabled`와 `[Crucix] Bot command polling started`가 표시되어야 합니다. 그렇지 않으면 `curl https://api.telegram.org/bot<YOUR_TOKEN>/getMe`로 토큰을 다시 확인하세요.

### Discord 봇이 슬래시 명령에 응답하지 않습니다

다음 순서로 확인하세요:
1. `.env`에 `DISCORD_BOT_TOKEN`과 `DISCORD_CHANNEL_ID`가 설정되어 있는지 확인하세요
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` → "전체 크기 스크린샷 캡처") 또는 [LICEcap](https://www.cockos.com/licecap/) 같은 도구를 사용하여 GIF를 만드세요.

---

## 기여하기

버그를 발견하셨나요? 28번째 소스를 추가하고 싶으신가요? PR을 환영합니다. 각 소스는 `apis/sources/`의 독립 모듈입니다 — 구조화된 데이터를 반환하는 `briefing()` 함수를 내보내고 `apis/briefing.mjs`의 오케스트레이터에 추가하기만 하면 됩니다.

유용하게 사용하셨다면, 별표를 눌러 다른 사람들도 찾을 수 있게 도와주세요.

기여 지침, 리뷰 기준 및 소스 추가 규칙은 `CONTRIBUTING.md`를 참조하세요. 보안 보고는 `SECURITY.md`를 참조하세요.

## 연락처

파트너십, 통합 또는 기타 이슈가 아닌 문의 사항은 `[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="별표 기록 차트" src="https://assets.kitploit.com/production/public/readmes/placeholders/f0fc86cfe65f76d40e15aaec61704ec8220a56dc89d4be03c46f67cb31b9fa8c.svg" />
  </picture>
</a>

---

## 라이선스

AGPL-3.0
도구 다운로드
3D 지구본 보기
Globe
명령어기능
/status시스템 상태, 마지막 스윕 시간, 소스 상태, LLM 상태
/sweep수동 스윕 사이클 실행
/brief최신 정보의 간결한 텍스트 요약 (방향, 주요 지표, 상위 OSINT)
/portfolio포트폴리오 상태 (Alpaca 연결 시)
/alerts등급별 최근 알림 기록
/mute / /mute 2h1시간(또는 사용자 지정 시간) 동안 알림 음소거
/unmute알림 재개
/help사용 가능한 모든 명령 표시
/portfolio포트폴리오 상태 (Alpaca 연결 시)
소스추적 대상인증
GDELT글로벌 뉴스 이벤트, 갈등 매핑(100개 이상 언어)없음
OpenSky6개 핫스팟 지역의 실시간 ADS-B 항공편 추적없음
NASA FIRMS위성 화재/열 이상 감지(3시간 지연)무료 키
Maritime/AIS선박 추적, 다크 쉽, 제재 회피무료 키
Safecast6개 원자력 시설 인근 시민 과학 방사선 모니터링없음
ACLED무장 충돌 이벤트: 전투, 폭발, 시위무료(OAuth2)
ReliefWebUN 인도주의 위기 추적없음
WHO질병 발생 및 건강 비상사태없음
OFAC미국 재무부 제재(SDN 목록)없음
OpenSanctions집계된 글로벌 제재(30개 이상 소스)부분
ADS-B Exchange군용 포함 필터링되지 않은 항공편 추적유료
소스추적 대상인증
FRED22개 주요 지표: 수익률 곡선, CPI, VIX, 연방기금, M2무료 키
US Treasury국가 부채, 수익률, 재정 데이터없음
BLSCPI, 실업률, 비농업 고용, PPI없음
EIAWTI/브렌트 원유, 천연가스, 재고무료 키
GSCPI뉴욕 연준 글로벌 공급망 압력 지수없음
USAspending연방 지출 및 국방 계약없음
UN Comtrade주요 강대국 간 전략적 상품 무역 흐름없음
소스추적 대상인증
NOAA/NWS활성 미국 기상 경보없음
EPA RadNet미국 정부 방사선 모니터링없음
USPTO Patents7개 전략 기술 분야의 특허 출원없음
Bluesky지정학/시장 주제에 대한 소셜 센티먼트없음
Reddit주요 서브레딧에서의 소셜 센티먼트OAuth
Telegram17개 선별된 OSINT/충돌/금융 채널(웹 스크래핑, 설정을 통해 확장 가능)없음
KiwiSDR글로벌 HF 라디오 수신기 네트워크(약 600개 수신기)없음
스크립트명령어설명
npm run devnode --trace-warnings server.mjs자동 새로고침으로 대시보드 시작
npm run sweepnode apis/briefing.mjs단일 스윕 실행, JSON을 stdout으로 출력
npm run injectnode dashboard/inject.mjs최신 데이터를 정적 HTML에 주입
npm run brief:savenode apis/save-briefing.mjs스윕 실행 + 타임스탬프가 있는 JSON 저장
npm run diagnode diag.mjs진단 실행(Node 버전, 가져오기, 포트 확인)
변수기본값설명
PORT3117대시보드 서버 포트
REFRESH_INTERVAL_MINUTES15자동 새로고침 간격
LLM_PROVIDER비활성화됨anthropic, openai, gemini, codex, openrouter, minimax, mistral 또는 grok
LLM_API_KEY—API 키(codex에는 필요 없음)
LLM_MODEL제공자별 기본값모델 선택 재정의
TELEGRAM_BOT_TOKEN비활성화됨텔레그램 알림 + 봇 명령어용
TELEGRAM_CHAT_ID—귀하의 텔레그램 채팅 ID
TELEGRAM_CHANNELS—모니터링할 추가 채널 ID(쉼표로 구분)
TELEGRAM_POLL_INTERVAL5000봇 명령어 폴링 간격(ms)
DISCORD_BOT_TOKEN비활성화됨디스코드 알림 + 슬래시 명령어용
DISCORD_CHANNEL_ID—알림용 디스코드 채널
DISCORD_GUILD_ID—서버 ID(즉시 슬래시 명령어 등록)
DISCORD_WEBHOOK_URL—웹훅 URL(알림 전용 대체, 봇 필요 없음)
서버 상태, 가동 시간, 소스 수, LLM 상태
GET /events라이브 푸시 업데이트용 SSE 스트림