mirror of
https://github.com/myronblair/jarvis
synced 2026-07-27 16:22:55 -05:00
3d160617091fbd29190f1b70c6e9ee8fb836054e
- login.php: Redis-backed per-IP rate limit (10 fails / 15 min lockout), keyed off CF-Connecting-IP/X-Forwarded-For so it sees the real client behind NPM; fails open if Redis is down - login.php: session_regenerate_id(true) on successful auth (prevents session fixation) - php.ini: session.use_strict_mode = 1 (reject unknown/attacker-supplied session IDs) - netscan.php: constant-time hash_equals for the registration-key check (matches agent.php) Cookie flags already HttpOnly + SameSite=Lax (verified live). Agent auth verified: missing/bad X-Agent-Key -> 401 on every machine action. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
JARVIS
Iron Man-style AI assistant for home and network management.
Features
- Home Assistant control (lights, climate, scenes, switches)
- Proxmox VM management (start/stop/status)
- 4-tier chat: KB intents > Groq cloud > Ollama local > Claude API
- Real-time status bar (HA, Proxmox, DigitalOcean)
- Iron Man HUD at jarvis.orbishosting.com
Stack
- PHP 8.x / Apache / MySQL on Ubuntu 24.04
- Ollama VM at 10.48.200.95 (llama3.2:1b)
- Groq API (llama-3.3-70b / compound-mini with web search)
- Claude API (Anthropic) final fallback
Setup
cp api/config.example.php api/config.php Fill in all credentials in config.php before running.
Key Files
- public/index.html Iron Man HUD frontend
- public/api.php API router
- api/config.example.php Config template
- api/endpoints/chat.php 4-tier chat handler
- api/endpoints/facts_collector.php HA entity sync cron
- api/lib/kb_engine.php KB intent engine
- api/lib/db.php PDO database wrapper
Description
Languages
PHP
49.7%
Python
21.8%
JavaScript
15.6%
CSS
6.4%
Shell
3.1%
Other
3.4%