- Structure complète du projet - Docker compose de production - Documentation organisée par thèmes - Guides d'installation et configuration - Section dépannage détaillée - Journal historique
6.4 KiB
6.4 KiB
🏗️ 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 :
- Requête vers
192.168.1.27:3011(wol-proxy) - wol-proxy vérifie si Ollama répond sur
192.168.1.11:11434 - Si non → envoie un Magic Packet WoL à l'adresse MAC configurée
- Attend que le PC démarre (timeout configurable)
- 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
# 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.localetfolzo-corp.local - Reverse Proxy : Traefik ou Nginx Proxy Manager pour HTTPS
- Monitoring : Prometheus + Grafana pour les métriques