# πŸ—οΈ Architecture Infrastructure ## Vue d'ensemble Effi fonctionne sur une architecture **multi-machines** avec une sΓ©paration claire entre le serveur principal (services Docker) et la station de travail puissante (calcul GPU). --- ## Machines ### effi-server (192.168.1.27) **RΓ΄le** : Serveur Docker principal, hΓ©berge tous les services de l'interface et de la logique | CaractΓ©ristique | Valeur | |-----------------|--------| | **OS** | Ubuntu Server 22.04 LTS | | **CPU** | Intel J5040 (4 cΕ“urs) | | **RAM** | ~7.6 GB | | **Stockage** | SSD | | **GPU** | Aucun (tout est fait en CPU) | **Services hΓ©bergΓ©s :** - Open WebUI (interface utilisateur) - Qdrant (base vectorielle) - CouchDB (synchronisation Obsidian) - n8n (automatisation) - mcpo (proxy MCP) - wol-proxy (Wake-on-LAN) - pipelines (middleware mΓ©moire) - Watchtower (mises Γ  jour auto) - Obsidian Server (interface web) --- ### folzo-Corp (192.168.1.11) **RΓ΄le** : Station de calcul GPU pour LLM et traitement audio | CaractΓ©ristique | Valeur | |-----------------|--------| | **OS** | Bazzite (Fedora-based) | | **CPU** | AMD Ryzen 5800X3D | | **RAM** | 32 GB+ | | **GPU** | AMD RX 7800 XT 16 GB VRAM | | **ROCm** | Version 6.3.4 | | **Architecture GPU** | gfx1100 | **Services hΓ©bergΓ©s :** - Ollama (LLM qwen2.5:14b) - speaches (STT Whisper) - openedai-speech (TTS Piper/XTTS) --- ## SchΓ©ma RΓ©seau ``` Internet β”‚ β–Ό β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Routeur (Box) β”‚ β”‚ DHCP 192.168.1.0/24 β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ β–Ό β–Ό β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ effi-server │◄────────►│ folzo-Corp β”‚ β”‚ 192.168.1.27 β”‚ LAN β”‚ 192.168.1.11 β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β€’ Docker β”‚ β”‚ β€’ Ollama β”‚ β”‚ β€’ WebUI β”‚ WoL β”‚ β€’ Whisper β”‚ β”‚ β€’ Qdrant │◄─────────│ β€’ TTS β”‚ β”‚ β€’ n8n β”‚ β”‚ β€’ ROCm/GPU β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` --- ## Flux de DonnΓ©es ### Pipeline Conversationnelle ``` β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Micro │────►│ speaches │────►│ Open WebUI │────►│ Ollama β”‚ β”‚ (Client) β”‚ STT β”‚ (folzo-Corp) β”‚ β”‚(effi-server) β”‚ β”‚ (folzo-Corp) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚β—„β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ RΓ©ponse LLM β”‚ β–Ό β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Haut- │◄────│ openedai- │◄────│ Open WebUI β”‚ β”‚ parleurs β”‚ TTS β”‚ speech β”‚ β”‚(traite la β”‚ β”‚ β”‚ β”‚(folzo-Corp) β”‚ β”‚ rΓ©ponse) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` ### Wake-on-LAN Quand OpenWebUI sur effi-server veut appeler Ollama sur folzo-Corp : 1. RequΓͺte vers `192.168.1.27:3011` (wol-proxy) 2. wol-proxy vΓ©rifie si Ollama rΓ©pond sur `192.168.1.11:11434` 3. Si non β†’ envoie un Magic Packet WoL Γ  l'adresse MAC configurΓ©e 4. Attend que le PC dΓ©marre (timeout configurable) 5. Une fois dΓ©marrΓ©, fait le proxy vers Ollama --- ## SΓ©curitΓ© RΓ©seau ### Ports ouverts sur effi-server | Port | Service | Exposition | |------|---------|------------| | 3000 | Open WebUI | LAN uniquement | | 5678 | n8n | LAN uniquement | | 5984 | CouchDB | LAN uniquement | | 6333 | Qdrant | LAN uniquement | | 8000 | mcpo | LAN uniquement | ### Ports ouverts sur folzo-Corp | Port | Service | Exposition | |------|---------|------------| | 8100 | openedai-speech | LAN uniquement | | 8200 | speaches | LAN uniquement | | 11434 | Ollama | LAN uniquement | ### Recommandations - Utiliser un VPN (WireGuard, Tailscale) pour l'accΓ¨s externe - Jamais exposer les ports directement sur Internet - Configurer le pare-feu UFW (Ubuntu) ou firewall-cmd (Fedora) --- ## Sauvegardes ### DonnΓ©es critiques Γ  sauvegarder **Sur effi-server :** ``` ~/effi/ β”œβ”€β”€ docker-compose.yml # Configuration β”œβ”€β”€ .env # Variables (chiffrer) β”œβ”€β”€ open-webui-data/ # MΓ©moire, config β”œβ”€β”€ qdrant-storage/ # Vecteurs RAG β”œβ”€β”€ couchdb-data/ # Sync Obsidian └── n8n-data/ # Workflows ``` **Sur folzo-Corp :** ``` ~/ollama/ # ModΓ¨les tΓ©lΓ©chargΓ©s ~/speaches/models/ # ModΓ¨les Whisper ~/openedai-speech/tts-voices/ # Voix TTS ``` ### Commande de backup ```bash # Sur effi-server tar -czvf effi-backup-$(date +%Y%m%d).tar.gz \ ~/effi/docker-compose.yml \ ~/effi/.env \ ~/effi/open-webui-data/ \ ~/effi/qdrant-storage/ \ ~/effi/couchdb-data/ \ ~/effi/n8n-data/ ``` --- ## Γ‰volution Future - **RΓ©servation DHCP** : Fixer les IPs via le routeur - **DNS local** : Utiliser des noms comme `effi.local` et `folzo-corp.local` - **Reverse Proxy** : Traefik ou Nginx Proxy Manager pour HTTPS - **Monitoring** : Prometheus + Grafana pour les mΓ©triques