# MARIMO MULTI-USER HUB: Specifica di Progetto (v1.0 - 24/12/2025) ## 1. Oggetto e Visione Realizzazione di una piattaforma "AI Station" dockerizzata, accessibile via web, che fornisce interfacce personalizzate (Workspace) in base al profilo utente loggato. L'obiettivo è democratizzare l'accesso all'IA (Gemini/Ollama) per la famiglia e fornire strumenti avanzati per lo sviluppo. ## 2. Infrastruttura Hardware e Rete | Nome Risorsa | Ruolo | Indirizzo IP / URL | Note | | :--- | :--- | :--- | :--- | | **Pfsense** | Gateway/Firewall | `192.168.1.254` | Gestione rete locale | | **Nginx Proxy** | Reverse Proxy GUI | `192.168.1.252:81` | Smistamento traffico interno | | **AI-SRV (GUI)** | Server Applicativo | `192.168.1.244` | Docker Host (Marimo, Auth, DB) | | **AI-GPU** | Backend Inferenza | `192.168.1.243` | Ollama (RTX A1000) | | **DNS Esterno** | Accesso Remoto | `https://ai-platform.dffm.it` | Gestito su DigitalOcean | ## 3. Stack Tecnologico (Container Architecture) Il sistema è composto da container orchestrati via Docker Compose: 1. **Auth Proxy (Oauth2-Proxy):** Gestisce l'autenticazione Google. Passa l'header `X-Email` a Marimo. 2. **App Core (Marimo):** Applicazione Python reattiva. Legge l'header utente e carica il layout specifico. 3. **Knowledge Base (Qdrant):** Vector DB per i manuali (RAG). 4. **Memory (PostgreSQL):** Storico chat, preferenze utente, log audit. ## 4. Profili Utente e Workspace ### A. Profilo "Smart Business" (Moglie - Commercialista) * **UI:** Minimalista. Solo Chat e Upload File. * **Funzioni:** Analisi PDF fiscali, estrazione dati, sintesi scadenze. * **Tech:** No codice visibile. Output formattati in Markdown/Tabelle. * **Context:** Workspace `/workspaces/contabilita` (Manuali fiscali). ### B. Profilo "Engineering" (Figlio - Ingegnere) * **UI:** Chat + Visualizzatore Tecnico. * **Funzioni:** Supporto calcoli, RAG su datasheet tecnici, Python assistito. * **Context:** Workspace `/workspaces/engineering`. ### C. Profilo "Architecture" (Figlia - Studente) * **UI:** Visuale. Focus su storia dell'arte, normative edilizie. * **Funzioni:** RAG su manuali di architettura, generazione idee. * **Context:** Workspace `/workspaces/architettura`. ### D. Profilo "Power User" (Tu - Dev/Admin) * **UI:** Full "Chat + Canvas". * **Funzioni:** Accesso terminale, SQL query su Postgres, Git versioning, gestione RAG. * **Output:** Codice visibile ed eseguibile. ## 5. User Experience (UX): Chat + Canvas L'interfaccia deve replicare il pattern "Artifacts": * **Colonna Sinistra (Chat):** Flusso conversazionale con l'AI. * **Colonna Destra (Canvas):** Area dinamica. Se l'AI genera codice, grafici o tabelle complesse, vengono renderizzati qui (non inline nella chat). * **Persistenza:** Le chat vengono salvate su Postgres con tag del modello usato (es. `gemini-1.5-pro` o `qwen2.5`). ## 6. Sicurezza e Volumi * I file degli utenti sono isolati in volumi Docker montati su `/ai-station/workspaces/%username%`. * Le chiavi API (Google, Ollama) sono iniettate via `.env` e non esposte nel frontend.