# Docker Configuration Guide ## Table des matières 1. [Configuration des Providers IA](#configuration-des-providers-ia) 2. [Configuration du MCP Server](#configuration-du-mcp-server) 3. [Commandes Docker utiles](#commandes-docker-utiles) --- ## Configuration des Providers IA Le fichier `.env.docker` n'est PAS versionné par Git (.gitignore). Vous devez le créer manuellement sur votre serveur. ### Étape 1: Créer le fichier `.env.docker` Sur votre serveur Proxmox: ```bash cd /path/to/Keep cp .env.docker.example .env.docker nano .env.docker ``` ### Étape 2: Configurer selon votre setup #### Option A: Ollama dans Docker (service Docker) ```bash NEXTAUTH_URL="http://192.168.1.190:3000" AI_PROVIDER=ollama OLLAMA_BASE_URL="http://ollama:11434" OLLAMA_MODEL="granite4:latest" ``` **Important:** Utilisez `ollama:11434` (nom du service Docker) PAS `localhost:11434` #### Option B: OpenAI (Cloud) ```bash NEXTAUTH_URL="http://192.168.1.190:3000" AI_PROVIDER=openai OPENAI_API_KEY="sk-votre-cle-ici" ``` Puis dans l'interface admin: 1. Configurez Tags Provider → OpenAI 2. Configurez Embeddings Provider → OpenAI 3. Entrez votre clé API #### Option C: Ollama sur l'hôte (hors Docker) ```bash NEXTAUTH_URL="http://192.168.1.190:3000" AI_PROVIDER=ollama OLLAMA_BASE_URL="http://192.168.1.190:11434" OLLAMA_MODEL="granite4:latest" ``` Utilisez l'IP de votre serveur PAS `localhost` ### Étape 3: Rebuild et redémarrer ```bash docker compose down docker compose build --no-cache keep-notes docker compose up -d ``` ### Étape 4: Vérifier dans l'interface Admin 1. Allez sur http://192.168.1.190:3000/admin/settings 2. Section "AI Settings" 3. Vous pouvez maintenant changer le provider pour Tags et Embeddings indépendamment ### Problèmes fréquents **Erreur: `ECONNREFUSED 127.0.0.1:11434`** - Problème: Le code essaie d'utiliser `localhost` au lieu du service Docker - Solution: Assurez-vous que `.env.docker` existe avec `OLLAMA_BASE_URL="http://ollama:11434"` **Le provider ne change pas dans l'admin** - Sauvegardez les modifications dans l'admin - Rafraîchissez la page (F5) - Vérifiez "Current value" affichée sous le dropdown **Seul la génération de titres fonctionne** - Vérifiez que le bon provider est sélectionné pour Tags ET Embeddings - Ce sont 2 providers séparés dans l'interface admin --- ## Configuration du MCP Server Le MCP Server supporte deux modes de transport: ### Mode stdio (défaut) - Pour Claude Desktop, Cline, etc. Communication via stdin/stdout, idéal pour les clients locaux. ```bash # .env.docker MCP_MODE="stdio" ``` ### Mode SSE (HTTP) - Pour N8N distant, API HTTP Communication via HTTP Server-Sent Events, accessible sur le réseau. ```bash # .env.docker MCP_MODE="sse" MCP_PORT="3001" ``` Le serveur MCP sera accessible sur `http://localhost:3001` (ou `http://mcp-server:3001` depuis les autres services Docker). ### Endpoints SSE disponibles - `GET /` - Health check - `GET /sse` - Connexion SSE - `POST /message` - Envoi de messages - `GET /sessions` - Liste des sessions actives ### Utilisation avec N8N 1. Configurez le MCP en mode SSE: `MCP_MODE="sse"` 2. Redémarrez les services: `docker compose restart mcp-server` 3. Dans N8N, configurez le MCP avec l'URL: `http://memento-mcp:3001/sse` ### Utilisation avec Claude Desktop (stdio) 1. Gardez le mode stdio par défaut: `MCP_MODE="stdio"` 2. Configurez Claude Desktop avec: ```json { "mcpServers": { "memento": { "command": "docker", "args": ["exec", "-i", "memento-mcp", "node", "index.js"] } } } ``` --- ## Commandes Docker utiles ### Démarrage complet ```bash docker compose up -d ``` ### Avec Ollama (optionnel) ```bash docker compose --profile ollama up -d ``` ### Rebuild complet ```bash docker compose down docker compose build --no-cache docker compose up -d ``` ### Voir les logs ```bash # Tous les services docker compose logs -f # Service spécifique docker compose logs -f keep-notes docker compose logs -f mcp-server ``` ### Vérifier l'état des services ```bash docker compose ps docker compose top ``` ### Accéder à un conteneur ```bash docker compose exec keep-notes sh docker compose exec mcp-server sh ```