- Add leantime-mcp Dockerfile (daniel-eder/leantime-mcp, SSE transport) - Add leantime-mcp service to docker-compose.yml on effi-net - Add Leantime env vars to .env.example (API_KEY, USER_EMAIL, URL) - Update services.md: Leantime + leantime-mcp entries, dependency diagram, resource table - Update mcp-et-n8n.md: MCPO config with leantime SSE server, new leantime-mcp section - Add LEANTIME-INSTALLATION.md: full reinstall guide (XPenology + MCP)
281 lines
7.6 KiB
Markdown
281 lines
7.6 KiB
Markdown
# 🐳 Services et Ports
|
|
|
|
## Tableau récapitulatif
|
|
|
|
| Service | Hôte | Port | Image | Description |
|
|
|---------|------|------|-------|-------------|
|
|
| **Open WebUI** | effi-server | 3000 | `ghcr.io/open-webui/open-webui:main` | Interface IA principale |
|
|
| **Qdrant** | effi-server | 6333 | `qdrant/qdrant:latest` | Base de données vectorielle |
|
|
| **CouchDB** | effi-server | 5984 | `couchdb:3.3` | Backend Obsidian LiveSync |
|
|
| **n8n** | effi-server | 5678 | `docker.n8n.io/n8nio/n8n:latest` | Automatisation workflows |
|
|
| **mcpo** | effi-server | 8000 | `ghcr.io/open-webui/mcpo:main` | Proxy MCP pour outils |
|
|
| **wol-proxy** | effi-server | 3011 | Build local | Wake-on-LAN + Proxy Ollama |
|
|
| **pipelines** | effi-server | 9099 | `ghcr.io/open-webui/pipelines:main` | Middleware mémoire mem0 |
|
|
| **speaches** | folzo-Corp | 8200 | `speaches:rocm-ct2` (build local) | STT Whisper avec ROCm |
|
|
| **openedai-speech** | folzo-Corp | 8100 | `ghcr.io/matatonic/openedai-speech` | TTS Piper/XTTS |
|
|
| **Ollama** | folzo-Corp | 11434 | Installation native | LLM (qwen2.5:14b) |
|
|
| **SearXNG** | effi-server | 11112 | `searxng/searxng:latest` | Meta-search Engine |
|
|
| **Leantime** | XPenology NAS | 8380 | `leantime/leantime:latest` | Gestion de projet |
|
|
| **leantime-mcp** | effi-server | 8079 | `effi-leantime-mcp:latest` (build local) | Serveur MCP Leantime |
|
|
| **Obsidian** | effi-server | 3100 | `lscr.io/linuxserver/obsidian:latest` | Interface Obsidian web |
|
|
|
|
---
|
|
|
|
## Description détaillée
|
|
|
|
### Open WebUI (Port 3000)
|
|
|
|
**Rôle** : Interface utilisateur principale pour interagir avec l'IA
|
|
|
|
**Fonctionnalités :**
|
|
- Chat textuel avec le LLM
|
|
- Support vocal (STT/TTS)
|
|
- Gestion des conversations
|
|
- Upload de documents (RAG)
|
|
- Administration système
|
|
|
|
**Configuration clé :**
|
|
```yaml
|
|
environment:
|
|
- OLLAMA_BASE_URL=http://host.docker.internal:3011
|
|
- VECTOR_DB=qdrant
|
|
- QDRANT_URI=http://qdrant:6333
|
|
- ENABLE_MEMORIES=true
|
|
```
|
|
|
|
---
|
|
|
|
### Qdrant (Port 6333)
|
|
|
|
**Rôle** : Stockage vectoriel pour le RAG (Retrieval Augmented Generation)
|
|
|
|
**Utilisation :**
|
|
- Indexation des documents uploadés
|
|
- Recherche sémantique
|
|
- Embeddings via `bge-m3:latest`
|
|
|
|
**Endpoints :**
|
|
- API REST : `http://192.168.1.27:6333`
|
|
- gRPC : `http://192.168.1.27:6334`
|
|
|
|
---
|
|
|
|
### CouchDB (Port 5984)
|
|
|
|
**Rôle** : Base de données NoSQL pour Obsidian LiveSync
|
|
|
|
**Fonctionnalités :**
|
|
- Synchronisation temps réel des notes Obsidian
|
|
- Multi-device (mobile, desktop, web)
|
|
- Résolution de conflits intégrée
|
|
|
|
**Initialisation (premier démarrage) :**
|
|
```bash
|
|
curl -X PUT http://master:MOT_DE_PASSE@192.168.1.27:5984/_users
|
|
curl -X PUT http://master:MOT_DE_PASSE@192.168.1.27:5984/_replicator
|
|
curl -X PUT http://master:MOT_DE_PASSE@192.168.1.27:5984/obsidian-livesync
|
|
```
|
|
|
|
---
|
|
|
|
### n8n (Port 5678)
|
|
|
|
**Rôle** : Plateforme d'automatisation de workflows
|
|
|
|
**Cas d'usage :**
|
|
- Workflows d'intégration avec Home Assistant
|
|
- Automatisations basées sur le calendrier
|
|
- Webhooks pour notifications
|
|
- Traitement de données
|
|
|
|
**Authentification :** Basic Auth configurée via variables d'environnement
|
|
|
|
---
|
|
|
|
### mcpo (Port 8000)
|
|
|
|
**Rôle** : Proxy pour le protocole MCP (Model Context Protocol)
|
|
|
|
**Fonctionnalités :**
|
|
- Interface entre OpenWebUI et outils externes
|
|
- Exécution de commandes système
|
|
- Intégration avec Obsidian MCP
|
|
|
|
**Configuration :**
|
|
Fichier `~/effi/mcpo-config/config.json` :
|
|
```json
|
|
{
|
|
"mcpServers": {}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
### wol-proxy (Port 3011)
|
|
|
|
**Rôle** : Wake-on-LAN + Proxy vers Ollama
|
|
|
|
**Fonctionnement :**
|
|
1. Intercepte les requêtes vers Ollama
|
|
2. Envoie un Magic Packet si le PC est éteint
|
|
3. Attend le démarrage (timeout: 60s)
|
|
4. Proxy la requête vers Ollama
|
|
|
|
**Variables d'environnement :**
|
|
- `TARGET_HOST` : IP du PC Gaming
|
|
- `TARGET_MAC` : Adresse MAC pour WoL
|
|
- `BROADCAST_IP` : IP de broadcast
|
|
|
|
---
|
|
|
|
### pipelines (Port 9099)
|
|
|
|
**Rôle** : Middleware pour les filtres OpenWebUI
|
|
|
|
**Utilisation actuelle :**
|
|
- Intégration mem0 pour mémoire avancée
|
|
- Traitement des messages entrants/sortants
|
|
|
|
---
|
|
|
|
### speaches (Port 8200)
|
|
|
|
**Rôle** : Service STT (Speech-to-Text)
|
|
|
|
**Caractéristiques :**
|
|
- Modèle : `deepdml/faster-whisper-large-v3-turbo-ct2`
|
|
- Accélération : ROCm (GPU AMD)
|
|
- Langue : Français forcé
|
|
- Format : Compatible API OpenAI
|
|
|
|
**Build personnalisé :**
|
|
- Nécessite CTranslate2 compilé pour gfx1100
|
|
- Voir guide dépannage ROCm
|
|
|
|
---
|
|
|
|
### openedai-speech (Port 8100)
|
|
|
|
**Rôle** : Service TTS (Text-to-Speech)
|
|
|
|
**Voix disponibles :**
|
|
- `tts-1` : Piper (CPU, rapide) - Voix FR : `fr_FR-upmc-medium`
|
|
- `tts-1-hd` : XTTS (GPU, qualité) - Voix clones
|
|
|
|
**Configuration :**
|
|
Fichier `~/openedai-speech/tts-config/config.yaml`
|
|
|
|
---
|
|
|
|
### Ollama (Port 11434)
|
|
|
|
**Rôle** : Serveur LLM
|
|
|
|
**Modèles installés :**
|
|
- `qwen2.5:14b` : LLM principal d'Effi
|
|
- `bge-m3:latest` : Modèle d'embeddings pour RAG
|
|
- `qwen2.5:3b` : LLM léger pour filtres mémoire
|
|
|
|
**Commandes utiles :**
|
|
```bash
|
|
# Lister les modèols
|
|
ollama list
|
|
|
|
# Télécharger un modèle
|
|
ollama pull qwen2.5:14b
|
|
|
|
# Vérifier le statut
|
|
curl http://localhost:11434/api/tags
|
|
```
|
|
|
|
---
|
|
|
|
### Obsidian Server (Port 3100)
|
|
|
|
**Rôle** : Interface web Obsidian 24/7
|
|
|
|
**Utilisation :**
|
|
- Accès aux notes depuis n'importe où
|
|
- Intégration MCP pour modification automatique
|
|
- Interface graphique complète
|
|
|
|
**Note :** Nécessite `shm_size: 1gb` pour la stabilité
|
|
|
|
---
|
|
|
|
### Leantime (Port 8380)
|
|
|
|
**Rôle** : Gestion de projet open-source (AGPL-3.0)
|
|
|
|
**Hôte** : XPenology NAS (192.168.1.25)
|
|
|
|
**Fonctionnalités :**
|
|
- Tableaux Kanban, Gantt, Lean Canvas
|
|
- Wiki intégré
|
|
- Gestion des tickets / tâches
|
|
- Timesheet / suivi du temps
|
|
- API REST complète
|
|
|
|
**Configuration :**
|
|
- MySQL 8.4 dédié (volume nommé `leantime-db-data`)
|
|
- Port 8380 (évite conflits DSM)
|
|
- URL d'accès : `http://192.168.1.25:8380`
|
|
|
|
**Clé API** : Company > API Keys dans l'interface Leantime
|
|
|
|
---
|
|
|
|
### leantime-mcp (Port 8079)
|
|
|
|
**Rôle** : Serveur MCP (Model Context Protocol) pour Leantime
|
|
|
|
**Image** : `effi-leantime-mcp:latest` (build local depuis `leantime-mcp/Dockerfile`)
|
|
|
|
**Fonctionnement :**
|
|
- Proxy entre MCPO et l'API Leantime
|
|
- Transport SSE (compatible MCPO)
|
|
- Outils exposés : `list_projects`, `create_project`, `list_tickets`, `create_ticket`, `update_ticket`, `get_ticket`, `get_project`, `list_users`, `get_user`, `add_comment`, `add_timesheet`, `get_timesheets`
|
|
|
|
**Variables d'environnement :**
|
|
- `LEANTIME_URL` : URL Leantime depuis le conteneur (`http://192.168.1.25:8380`)
|
|
- `LEANTIME_API_KEY` : Clé API Leantime
|
|
- `LEANTIME_USER_EMAIL` : Email utilisateur Leantime
|
|
|
|
**Note :** Utilise le projet [daniel-eder/leantime-mcp](https://github.com/daniel-eder/leantime-mcp) (standalone, pas le plugin payant Leantime)
|
|
|
|
---
|
|
|
|
## Dépendances entre services
|
|
|
|
```
|
|
open-webui
|
|
├──► qdrant (pour RAG)
|
|
├──► wol-proxy (pour Ollama)
|
|
└──► mcpo (pour outils externes)
|
|
└──► leantime-mcp (pour gestion de projet)
|
|
└──► Leantime API (sur XPenology NAS)
|
|
|
|
n8n
|
|
└──► Peut appeler tous les services via API
|
|
|
|
Obsidian (mobile/desktop)
|
|
└──► CouchDB (synchronisation)
|
|
```
|
|
|
|
---
|
|
|
|
## Ressources système
|
|
|
|
| Service | CPU | RAM | Stockage |
|
|
|---------|-----|-----|----------|
|
|
| Open WebUI | Faible | ~500 MB | ~1 GB (DB SQLite) |
|
|
| Qdrant | Moyen | ~1 GB | Variable (vecteurs) |
|
|
| CouchDB | Faible | ~200 MB | Taille des notes |
|
|
| n8n | Variable | ~500 MB | Workflows |
|
|
| speaches | Élevé (GPU) | ~4 GB VRAM | ~3 GB (modèles) |
|
|
| openedai-speech | Moyen | ~2 GB VRAM | ~2 GB (voix) |
|
|
| Ollama | Élevé (GPU) | ~10 GB VRAM | ~9 GB (qwen2.5:14b) |
|
|
| leantime-mcp | Faible | ~200 MB | Négligeable |
|
|
| Leantime | Faible-Moyen | ~512 MB | ~100 MB (app) |
|
|
| Leantime MySQL | Faible | ~512 MB | Variable (données) |
|