Commit Graph

7 Commits

Author SHA1 Message Date
Luca Sacchi Ricciardi 57663400ce feat: load and cache Ollama show data per model with clickable model details
- Add GET /api/v1/models/{model_name}/show endpoint (proxy to Ollama /api/show)
- Worker now fetches show data for each model during model list sync
- Persist show details in localStorage under llm_monitor_models.showByModel
- Make model cards clickable to display cached show details in a dedicated panel
- Keep UI updates incremental without full page reload
- Add tests for show endpoint and OpenAPI path
- Update README and PRD with show-flow and click-card behavior
2026-04-24 19:41:46 +02:00
Luca Sacchi Ricciardi 32b1130632 feat: add favicon.ico and gate model write APIs by env flag
- Generate and serve real /favicon.ico from static assets
- Update HTML to use /favicon.ico
- Add ENABLE_MODEL_RW_API setting (default: false)
- Disable POST/DELETE model endpoints by default
- Hide write endpoints from OpenAPI when disabled
- Return 404 for write endpoints when disabled
- Update env.example with ENABLE_MODEL_RW_API documentation
- Update README and PRD with R/W API policy and remote compose notes
- Add tests to verify write endpoints are disabled by default
2026-04-24 19:35:24 +02:00
Luca Sacchi Ricciardi 893376dc14 fix: resolve console errors (localStorage in Worker, favicon, Tailwind CDN)
Issues fixed:
1. Web Worker localStorage error - Remove localStorage calls from worker
   - Worker cannot access localStorage (browser context only)
   - Worker now sends data to main thread via postMessage
   - Main thread handles all localStorage operations

2. Add favicon to avoid 404 error
   - Use inline SVG favicon (llama emoji)
   - No external file request

3. Optimize Tailwind CSS for production
   - Add tailwind.config.js for content scanning
   - Add app/web/static/css/input.css (Tailwind directives)
   - Update package.json with tailwind build commands
   - Update Dockerfile multi-stage build:
     * Stage 1: Node.js - compile Tailwind CSS
     * Stage 2: Python - install dependencies
     * Stage 3: Runtime - use compiled CSS
   - Update index.html to use compiled output.css
   - Add fallback to CDN for development

4. Add DEVELOPMENT.md documentation
   - Setup instructions for local development
   - Tailwind CSS workflow (watch mode)
   - Docker build explanation
   - Development tips and best practices

Benefits:
- No more localStorage errors in console
- No more 404 favicon requests
- Optimized CSS for production (~30KB minified)
- Clear development workflow
- Multi-stage Docker build is efficient (~300MB image)
2026-04-24 19:30:53 +02:00
Luca Sacchi Ricciardi b3beb525ad refactor: support remote Ollama server in docker-compose
- Remove Ollama service from docker-compose.yml (now external/remote)
- Remove ollama_data volume and network configuration
- Simplify compose to only llm-monitor service
- Use env_file for all configuration from .env
- Make API_PORT dynamic with ${API_PORT:-8000}
- Update env.example with Ollama remote server examples:
  - Local development: http://localhost:11434
  - Remote server: http://ollama.example.com:11434
  - Remote with SSL: https://ollama.example.com
- Improve documentation for remote Ollama setup

This allows deployment against any Ollama server (local or remote).
2026-04-24 19:25:00 +02:00
Luca Sacchi Ricciardi 40d8ae9f52 docs: add comprehensive Product Requirements Document (PRD)
- Executive summary with key highlights
- Vision and primary/secondary objectives
- Problem statement and proposed solution
- Target users with detailed use cases
- 6 main feature descriptions with specifications
- Technical requirements (backend, frontend, devops)
- Complete system architecture with data flow
- 6 user stories with acceptance criteria
- Feature acceptance criteria with test matrix
- Browser compatibility matrix
- 4-phase roadmap (MVP to Production)
- Success metrics (technical, business, engagement)
- Constraints and assumptions
- Implementation notes and references

This document provides complete product specification for stakeholders and team.
2026-04-24 19:18:15 +02:00
Luca Sacchi Ricciardi 9a6f835ddf feat: implement Web Worker architecture for efficient data sync
- Add data-sync.worker.js: separate thread for API calls (30s interval)
- Add app.js: main thread with DOM update logic and localStorage integration
- Update index.html: remove inline scripts, use external app.js
- Implement granular DOM updates (only update changed elements)
- Add localStorage persistence for health and models data
- Add Web Worker fallback for unsupported browsers
- Add WEB_WORKERS.md documentation with architecture details

Benefits:
- Main thread never blocked by network requests
- UI stays responsive at 60 FPS
- Offline support via localStorage
- Efficient DOM updates (no unnecessary re-renders)
- Better browser support and performance
2026-04-24 19:16:51 +02:00
Luca Sacchi Ricciardi 4b782ffdc8 docs: add comprehensive README and project scaffolding
- README completo con istruzioni di installazione, configurazione e utilizzo
- API Swagger/OpenAPI documentata
- File env.example con variabili di configurazione
- Dockerfile multi-stage ottimizzato
- Docker Compose con Ollama e LLM Monitor
- Struttura completa dell'app FastAPI (main.py, config, api routes)
- Servizio client Ollama reusabile
- Dashboard web HTML con TailwindCSS
- Test suite con pytest
- Makefile per comandi comuni
- CONTRIBUTING.md per i contributori
- LICENSE MIT
- .editorconfig e .dockerignore
- requirements.txt e requirements-dev.txt
2026-04-24 19:11:58 +02:00