# LogWhispererAI π aka Sacchi's Server Sentinel > **UVP:** Il DevOps tascabile che traduce i crash del tuo server e ti dice l'esatto comando per risolverli in sicurezza, senza farti perdere ore su StackOverflow. []() []() []() []() π― Visione del Progetto LogWhisperer AI trasforma i log di sistema e database spesso incomprensibili in alert azionabili descritti in "plain language". Γ pensato per piccole web agency e freelance che gestiscono infrastrutture (AWS, DigitalOcean, VPS) senza avere un sistemista senior dedicato. ## π Stato di Sviluppo | Feature | Stato | Sprint | |---------|-------|--------| | β Log Ingestion Script | **Completato** | Sprint 1 | | π AI Processing Pipeline | *In pianificazione* | Sprint 2 | | π Alerting (Telegram/Slack) | *In pianificazione* | Sprint 2-3 | | π Landing Page & Onboarding | *In pianificazione* | Sprint 3 | ### FunzionalitΓ MVP - **Log Ingestion** β : Script Bash leggero per il monitoraggio (tail -f) di log critici (syslog, nginx, postgres). Invia payload JSON via HTTP POST a webhook. - **AI Processing Pipeline** π: Workflow su n8n che analizza i log tramite LLM (OpenAI/Anthropic) applicando il Metodo Sacchi (Safety first, little often, double check). - **Alerting Umano** π: Notifiche su Telegram/Slack con sintesi del problema, severitΓ e comando esatto per la mitigazione. π οΈ Stack Tecnologico Core Logic: Python 3.12+ (in venv) Automation: n8n (self-hosted) Database: Supabase / PostgreSQL AI: GPT-4o-mini / Claude 3.5 Sonnet Agentic Dev: OpenCode.ai ## π οΈ Setup per lo Sviluppo Il progetto segue una metodologia **Spec-Driven** e **TDD** (Test-Driven Development). ### Prerequisiti - **Python** 3.12 o superiore - **Bash** 4.0+ - **curl** (GNU coreutils) - **Node.js** 18+ (per i MCP servers e frontend) - **npm** 9+ (per il frontend) ### Clone e setup ```bash # Clone git clone https://github.com/LucaSacchiNet/LogWhispererAI.git cd LogWhispererAI # Ambiente virtuale python3 -m venv venv source venv/bin/activate # Installazione dipendenze pip install -r requirements.txt ``` ### Configurazione MCP (OpenCode.ai) Il progetto utilizza tre MCP (Model Context Protocol) servers per estendere le capacitΓ dell'agente AI: 1. **sequential-thinking** - Problem solving strutturato 2. **context7** - Recupero documentazione contestuale delle librerie 3. **n8n** - Integrazione con workflow automation La configurazione Γ¨ giΓ presente in `.opencode/opencode.json`. Per utilizzarla: ```bash # Assicurati di avere npx installato npm install -g npx # Avvia OpenCode opencode ``` **Nota sulla sicurezza:** Le credenziali n8n sono configurate nel file `.opencode/opencode.json`. Non committare mai questo file con credenziali di produzione. ### Eseguire i Test ```bash # Attiva l'ambiente virtuale source venv/bin/activate # Esegui tutti i test pytest tests/test_logwhisperer.py -v # Test con coverage (opzionale) pytest tests/test_logwhisperer.py -v --tb=short ``` ### Usare lo Script di Log Ingestion ```bash # Installazione (interattiva) ./scripts/install.sh # Verifica configurazione ./scripts/logwhisperer.sh --validate # Test pattern matching ./scripts/logwhisperer.sh --dry-run --test-line "FATAL: database error" # Avvio monitoraggio ./scripts/logwhisperer.sh --config /etc/logwhisperer/config.env ``` ### Sviluppo Frontend (Landing Page) Il progetto include una landing page moderna costruita con React, Vite e Tailwind CSS. ```bash # Entra nella directory frontend cd frontend # Installa le dipendenze (prima volta) npm install # Avvia il server di sviluppo npm run dev # Build per produzione npm run build # Preview della build npm run preview ``` **Stack Frontend:** - **React 18** + **TypeScript** - UI library con type safety - **Vite** - Build tool veloce con HMR - **Tailwind CSS** - Utility-first CSS framework - **PostCSS** + **Autoprefixer** - Processing CSS La landing page sarΓ disponibile su `http://localhost:5173` durante lo sviluppo. **Nota sulla Demo Interattiva:** La sezione "Demo Interattiva" nella landing page utilizza **dati mock statici** per scopi dimostrativi. Non effettua chiamate API reali a OpenRouter o al backend. I log di esempio e le relative analisi sono predefiniti nel codice frontend. Per una demo funzionante con AI reale, Γ¨ necessario implementare un backend sicuro (vedi `docs/roadmap_ideas.md`). #### Sviluppo con Docker (Consigliato) Per un ambiente di sviluppo isolato e consistente, utilizza Docker Compose: ```bash # Avvia il container di sviluppo docker compose up -d # La landing page sarΓ disponibile su http://localhost:5173 # Modifica i file in frontend/src/ e vedi le modifiche in tempo reale (HMR) # Visualizza i log docker compose logs -f frontend # Ferma il container docker compose down ``` **Vantaggi Docker:** - Ambiente isolato e riproducibile - Hot Module Replacement (HMR) funzionante - Nessun conflitto con Node.js installato sul sistema - Facile da condividere con il team **Stack Frontend:** - **React 18** + **TypeScript** - UI library con type safety - **Vite** - Build tool veloce con HMR - **Tailwind CSS** - Utility-first CSS framework - **PostCSS** + **Autoprefixer** - Processing CSS ## π€ Agenti AI (OpenCode.ai) Il progetto utilizza uno **staff di agenti specializzati** definiti in `AGENTS.md`: | Agente | Ruolo | |--------|-------| | `@product-manager` | Definisce roadmap e valida UVP | | `@tech-lead` | Architettura e specifiche tecniche | | `@python-developer` | Implementazione Python (TDD) | | `@bash-expert` | Script Bash e ottimizzazioni | | `@security-auditor` | VulnerabilitΓ e compliance | | `@qa-engineer` | Test suite e coverage | | `@documentation-agent` | Docs e changelog | Per avviare una sessione di sviluppo: ```bash opencode ``` ## π Metodologia e Standard - **Git**: [Conventional Commits](https://www.conventionalcommits.org/) (`feat:`, `fix:`, `docs:`, `test:`) - **Changelog**: [Common Changelog](https://common-changelog.org/) standard - **Testing**: Pytest per logica Python e test integrazione per script Bash - **Metodo Sacchi**: Safety first, little often, double check ### Documentazione - `docs/prd.md` - Product Requirements Document - `docs/specs/` - Specifiche tecniche per ogni sprint - `docs/reviews/` - Project Review post-sprint - `docs/1.setup_procedure/` - Procedure di setup OpenCode.ai - `docs/sprint1_verification.md` - Report verifica sprint ## π Struttura del Progetto ``` LogWhispererAI/ βββ AGENTS.md # Regole agenti e Metodo Sacchi βββ CHANGELOG.md # Log modifiche βββ README.md # Questo file βββ LICENSE.md # Licenza proprietaria βββ requirements.txt # Dipendenze Python (pytest, requests) βββ docs/ β βββ prd.md # Product Requirements Document β βββ specs/ β β βββ ingestion_script.md # Specifica tecnica Sprint 1 β βββ reviews/ β β βββ sprint1_review.md # Project Review Sprint 1 β βββ 1.setup_procedure/ # Setup OpenCode.ai β β βββ setup.md # Procedura setup β β βββ agents.md # Configurazione agenti β βββ sprint1_verification.md # Report verifica βββ scripts/ β βββ logwhisperer.sh # Script principale β βββ install.sh # Script installazione βββ tests/ β βββ __init__.py β βββ test_logwhisperer.py # Test suite Python βββ .opencode/ βββ opencode.json # Configurazione MCP servers βββ agents/ # Configurazioni agenti individuali β βββ tech-lead.md β βββ product-manager.md β βββ python-developer.md β βββ bash-expert.md β βββ security-auditor.md β βββ qa-engineer.md β βββ documentation-agent.md β βββ n8n_specialist_agent.md β βββ context_auditor_agent.md βββ skills/ # Playbook condivisi βββ TDD_Python_Specialist/ βββ Git_and_Changelog/ βββ n8n_automation_mastery/ βββ context7_documentation_retrivial/ ``` ## βοΈ Licenza e Note Legali Questo software Γ¨ **proprietΓ riservata** di Luca Sacchi Ricciardi. Tutti i diritti sono riservati. Per ogni controversia derivante dall'uso o dallo sviluppo di questo software, il foro competente in via esclusiva Γ¨ il **Foro di Milano, Italia**. Per i dettagli completi, consultare il file [LICENSE.md](LICENSE.md). ## π¨βπ» Autore **Luca Sacchi Ricciardi** - π [Sito Web / Blog](https://lucasacchi.net) - πΊ [Canale YouTube](https://www.youtube.com/@lucasacchinet) - π [LinkedIn](https://www.linkedin.com/in/lucasacchi) - βοΈ luca@lucasacchi.net ---
LogWhispererAI - "Safety first, little often, double check"