docs: add registry dockge and dashboard operations
All checks were successful
Build / test-and-image (push) Successful in 2m39s
All checks were successful
Build / test-and-image (push) Successful in 2m39s
This commit is contained in:
120
README.md
120
README.md
@@ -97,13 +97,105 @@ The dashboard opens automatically at `http://localhost:3117` and immediately beg
|
||||
### Docker
|
||||
|
||||
```bash
|
||||
git clone https://github.com/calesthio/Crucix.git
|
||||
cd Crucix
|
||||
cp .env.example .env # add your API keys
|
||||
docker compose up -d
|
||||
docker pull git.wilkensxl.de/mrsphay/intelligence-terminal:latest
|
||||
```
|
||||
|
||||
Dashboard at `http://localhost:3117`. Sweep data persists in `./runs/` via volume mount. Includes a health check endpoint.
|
||||
Dashboard at `http://localhost:3117`. Sweep data persists in `./runs/` via volume mount. The container disables browser auto-open by default, exposes `/api/health` and `/api/metrics`, and is suitable for Dockge/Pangolin.
|
||||
|
||||
#### Dockge / Pangolin Compose
|
||||
|
||||
```yaml
|
||||
services:
|
||||
intelligence-terminal:
|
||||
image: git.wilkensxl.de/mrsphay/intelligence-terminal:latest
|
||||
container_name: intelligence-terminal
|
||||
env_file:
|
||||
- path: .env
|
||||
required: false
|
||||
environment:
|
||||
PORT: ${PORT:-3117}
|
||||
AUTO_OPEN_BROWSER: "false"
|
||||
ports:
|
||||
- "${PORT:-3117}:${PORT:-3117}"
|
||||
volumes:
|
||||
- ./runs:/app/runs
|
||||
restart: unless-stopped
|
||||
healthcheck:
|
||||
test: ["CMD", "node", "-e", "fetch('http://127.0.0.1:'+(process.env.PORT||3117)+'/api/health').then(r=>{if(![200,503].includes(r.status))process.exit(1);return r.json()}).then(j=>{if(j.status==='error')process.exit(1)}).catch(()=>process.exit(1))"]
|
||||
interval: 60s
|
||||
timeout: 10s
|
||||
start_period: 45s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
#### Required `.env` Example
|
||||
|
||||
```env
|
||||
PORT=3117
|
||||
REFRESH_INTERVAL_MINUTES=15
|
||||
AUTO_OPEN_BROWSER=false
|
||||
STALE_DATA_MAX_AGE_MINUTES=60
|
||||
SWEEP_TOKEN=
|
||||
BRIEF_VERBOSITY=standard
|
||||
|
||||
LLM_PROVIDER=openrouter
|
||||
LLM_BASE_URL=https://openrouter.ai/api/v1
|
||||
LLM_API_KEY=
|
||||
LLM_MODEL=openrouter/free
|
||||
LLM_TEMPERATURE=0.2
|
||||
LLM_MAX_TOKENS=2000
|
||||
LLM_TIMEOUT_MS=90000
|
||||
OPENROUTER_SITE_URL=https://git.wilkensxl.de/MrSphay/intelligence-terminal
|
||||
OPENROUTER_APP_NAME=Intelligence Terminal
|
||||
|
||||
FRED_API_KEY=
|
||||
FIRMS_MAP_KEY=
|
||||
EIA_API_KEY=
|
||||
AISSTREAM_API_KEY=
|
||||
ACLED_EMAIL=
|
||||
ACLED_PASSWORD=
|
||||
CLOUDFLARE_API_TOKEN=
|
||||
BLS_API_KEY=
|
||||
|
||||
TELEGRAM_BOT_TOKEN=
|
||||
TELEGRAM_CHAT_ID=
|
||||
DISCORD_BOT_TOKEN=
|
||||
DISCORD_CHANNEL_ID=
|
||||
DISCORD_GUILD_ID=
|
||||
DISCORD_WEBHOOK_URL=
|
||||
```
|
||||
|
||||
Local LLM examples:
|
||||
|
||||
```env
|
||||
# LM Studio
|
||||
LLM_PROVIDER=lmstudio
|
||||
LLM_BASE_URL=http://host.docker.internal:1234/v1
|
||||
LLM_MODEL=local-model
|
||||
|
||||
# Ollama
|
||||
LLM_PROVIDER=ollama
|
||||
LLM_BASE_URL=http://host.docker.internal:11434
|
||||
LLM_MODEL=llama3.1:8b
|
||||
|
||||
# Generic OpenAI-compatible endpoint
|
||||
LLM_PROVIDER=openai-compatible
|
||||
LLM_BASE_URL=http://host.docker.internal:8000/v1
|
||||
LLM_API_KEY=
|
||||
LLM_MODEL=your-model
|
||||
```
|
||||
|
||||
For Pangolin or another reverse proxy, forward HTTP traffic to `intelligence-terminal:3117` (or the `PORT` you set). Missing API keys do not crash sweeps; affected sources are reported as degraded in `/api/health`.
|
||||
|
||||
#### Build And Publish Your Gitea Image
|
||||
|
||||
```bash
|
||||
docker login git.wilkensxl.de
|
||||
docker build -t git.wilkensxl.de/mrsphay/intelligence-terminal:latest .
|
||||
docker tag git.wilkensxl.de/mrsphay/intelligence-terminal:latest git.wilkensxl.de/mrsphay/intelligence-terminal:20260516
|
||||
docker push git.wilkensxl.de/mrsphay/intelligence-terminal:latest
|
||||
docker push git.wilkensxl.de/mrsphay/intelligence-terminal:20260516
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
@@ -186,12 +278,26 @@ Alerts are delivered as rich embeds with color-coded sidebars: red for FLASH, ye
|
||||
**Optional dependency:** The full bot requires `discord.js`. Install it with `npm install discord.js`. If it's not installed, Crucix automatically falls back to webhook-only mode.
|
||||
|
||||
### Optional LLM Layer
|
||||
Connect any of 8 LLM providers for enhanced analysis:
|
||||
Connect cloud or local OpenAI-compatible LLM providers for enhanced analysis:
|
||||
- **AI trade ideas** — quantitative analyst producing 5-8 actionable ideas citing specific data
|
||||
- **Smarter alert evaluation** — LLM classifies signals into FLASH/PRIORITY/ROUTINE tiers with cross-domain correlation and confidence scoring
|
||||
- Providers: Anthropic Claude, OpenAI, Google Gemini, OpenRouter (Unified API), OpenAI Codex (ChatGPT subscription), MiniMax, Mistral, Grok
|
||||
- Providers: OpenRouter, OpenAI-compatible APIs, LM Studio, Ollama, OpenAI, Anthropic Claude, Google Gemini, OpenAI Codex, MiniMax, Mistral, Grok
|
||||
- Graceful fallback — when LLM is unavailable, a rule-based engine takes over alert evaluation. LLM failures never crash the sweep cycle.
|
||||
|
||||
Primary env keys:
|
||||
|
||||
```env
|
||||
LLM_PROVIDER=openrouter
|
||||
LLM_BASE_URL=https://openrouter.ai/api/v1
|
||||
LLM_API_KEY=
|
||||
LLM_MODEL=openrouter/free
|
||||
LLM_TEMPERATURE=0.2
|
||||
LLM_MAX_TOKENS=2000
|
||||
LLM_TIMEOUT_MS=90000
|
||||
```
|
||||
|
||||
OpenRouter also supports model ids ending in `:free`; use the model id shown in your OpenRouter account when you want a specific free model.
|
||||
|
||||
---
|
||||
|
||||
## API Keys Setup
|
||||
|
||||
Reference in New Issue
Block a user