6.4 KiB
6.4 KiB
Mise à jour Docker Compose - Résumé des changements
Date: 3 Février 2026
Analyse effectuée avec @sequential-thinking
Problèmes identifiés
1. Port incohérent
- Avant: Dockerfile exposait 3000, mais index-sse.js utilisait 3001
- Après: Exposition du port 3001 cohérente
2. Chemin de base de données hardcodé
- Avant: index.js avait
file:D:/dev_new_pc/Keep/keep-notes/prisma/dev.db(chemin Windows absolu) - Après: Utilisation de la variable
DATABASE_URLpointant vers/app/db/dev.db
3. Pas de mode de transport configurable
- Avant: MCP serveur toujours en mode stdio
- Après: Support des modes
stdio(Claude Desktop) etsse(HTTP/N8N)
4. Healthcheck inadéquat
- Avant: Healthcheck générique Node.js
- Après: Healthcheck spécifique au mode (HTTP pour SSE, Node pour stdio)
5. Volumes mal configurés
- Avant: Chemins incohérents entre keep-notes et mcp-server
- Après: Volume partagé
db-datamonté correctement sur les deux services
Fichiers mis à jour
1. docker-compose.yml
Changements principaux:
- ✅ Port 3001 exposé pour mcp-server
- ✅ Variables d'environnement
MCP_MODEetMCP_PORTajoutées - ✅
DATABASE_URLconfiguré pour mcp-server - ✅ Volume
db-datacohérent entre services - ✅ Healthcheck conditionnel selon le mode
- ✅ Dépendance
condition: service_healthypour keep-notes - ✅ Profile
ollamapour le service optionnel - ✅ Limites de ressources configurées
- ✅
NEXT_TELEMETRY_DISABLED=1ajouté
2. .env.docker.example
Nouvelles variables:
# MCP Server Configuration
MCP_MODE="stdio" # ou "sse"
MCP_PORT="3001"
# AI Provider Configuration complète
AI_PROVIDER_TAGS=
AI_PROVIDER_EMBEDDING=
AI_MODEL_TAGS=
AI_MODEL_EMBEDDING=
3. mcp-server/Dockerfile
Améliorations:
- ✅ Installation de curl et wget pour les healthchecks
- ✅ Exposition du port 3001 (au lieu de 3000)
- ✅ Script de démarrage dynamique (
start.sh) avec support MCP_MODE - ✅ Healthcheck conditionnel (HTTP pour SSE, Node pour stdio)
4. DOCKER-SETUP.md
Nouvelle documentation:
- ✅ Table des matières ajoutée
- ✅ Section "Configuration du MCP Server" complète
- ✅ Documentation des deux modes (stdio vs SSE)
- ✅ Endpoints SSE documentés
- ✅ Guide d'utilisation avec N8N
- ✅ Guide d'utilisation avec Claude Desktop
- ✅ Commandes Docker utiles
Configuration recommandée
Pour Claude Desktop (local)
# .env.docker
MCP_MODE="stdio"
NEXTAUTH_URL="http://localhost:3000"
Pour N8N (remote)
# .env.docker
MCP_MODE="sse"
MCP_PORT="3001"
NEXTAUTH_URL="http://192.168.1.190:3000"
AI_PROVIDER_TAGS=openai
AI_PROVIDER_EMBEDDING=openai
OPENAI_API_KEY="sk-..."
Avec Ollama local
# Démarrer avec le profil ollama
docker compose --profile ollama up -d
Commandes de déploiement
# 1. Copier et configurer l'environnement
cp .env.docker.example .env.docker
nano .env.docker # Éditer avec vos valeurs
# 2. Rebuild complet (recommandé après mise à jour)
docker compose down
docker compose build --no-cache
docker compose up -d
# 3. Vérifier l'état
docker compose ps
docker compose logs -f
# 4. Avec Ollama (optionnel)
docker compose --profile ollama up -d
Points de vigilance
-
Base de données: Le volume
db-dataest partagé entre keep-notes et mcp-server. Assurez-vous que les deux services utilisent le même fichier SQLite. -
MCP Mode: Le mode par défaut est
stdio. Passez àsseuniquement si vous utilisez N8N ou un client HTTP distant. -
Port 3001: En mode SSE, le port 3001 doit être accessible. Configurez votre firewall si nécessaire.
-
Ollama: Le service Ollama utilise le profil
ollamaet n'est pas démarré par défaut. Utilisez--profile ollamapour l'activer.
Tests recommandés
# Test healthcheck keep-notes
curl http://localhost:3000
# Test healthcheck MCP (mode SSE)
curl http://localhost:3001
# Test endpoint SSE
curl http://localhost:3001/sse
# Voir les logs
docker compose logs -f mcp-server
Architecture mise à jour
┌─────────────────────────────────────────────────────┐
│ Docker Network │
│ (memento-network) │
├─────────────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ ┌──────────────┐ │
│ │ keep-notes │◄────►│ mcp-server │ │
│ │ Port 3000 │ │ Port 3001 │ │
│ │ (Web App) │ │ (MCP/SSE) │ │
│ └──────────────┘ └──────────────┘ │
│ │ │ │
│ └──────────┬───────────┘ │
│ │ │
│ ┌─────┴─────┐ │
│ │ db-data │ (SQLite partagé) │
│ └───────────┘ │
│ │
│ ┌──────────────┐ (optionnel avec --profile ollama) │
│ │ ollama │ │
│ │ Port 11434 │ │
│ └──────────────┘ │
│ │
└─────────────────────────────────────────────────────┘
Prochaines étapes suggérées
- Corriger le hardcoded path dans
mcp-server/index.jsligne 21 pour utiliserDATABASE_URL - Tester les deux modes (stdio et SSE)
- Configurer N8N avec l'endpoint SSE si besoin
- Documenter les modèles Ollama recommandés dans le README