Keep/DOCKER-SETUP.md

4.1 KiB

Docker Configuration Guide

Table des matières

  1. Configuration des Providers IA
  2. Configuration du MCP Server
  3. 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:

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)

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)

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)

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

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.

# .env.docker
MCP_MODE="stdio"

Mode SSE (HTTP) - Pour N8N distant, API HTTP

Communication via HTTP Server-Sent Events, accessible sur le réseau.

# .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:
    {
      "mcpServers": {
        "memento": {
          "command": "docker",
          "args": ["exec", "-i", "memento-mcp", "node", "index.js"]
        }
      }
    }
    

Commandes Docker utiles

Démarrage complet

docker compose up -d

Avec Ollama (optionnel)

docker compose --profile ollama up -d

Rebuild complet

docker compose down
docker compose build --no-cache
docker compose up -d

Voir les logs

# 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

docker compose ps
docker compose top

Accéder à un conteneur

docker compose exec keep-notes sh
docker compose exec mcp-server sh