Keep/DOCKER-SETUP.md

187 lines
4.1 KiB
Markdown

# 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
```