#!/bin/bash # Script d'ajout de Crawl4AI au docker-compose existant # À exécuter sur effi-server dans /root/effi/ set -e echo "================================" echo "Ajout de Crawl4AI à Effi Server" echo "================================" echo "" # Vérifier qu'on est dans le bon répertoire if [ ! -f "docker-compose.yml" ]; then echo "❌ Erreur: docker-compose.yml non trouvé" echo " Ce script doit être exécuté dans /root/effi/" exit 1 fi echo "📄 Docker-compose trouvé" # Sauvegarder l'original cp docker-compose.yml docker-compose.yml.backup.$(date +%Y%m%d_%H%M%S) echo "💾 Backup créé: docker-compose.yml.backup.*" # Ajouter le service avant "networks:" echo "" echo "🔧 Ajout du service Crawl4AI..." # Créer un fichier temporaire avec le service à insérer cat > /tmp/crawl4ai-service.txt << 'EOF' # ───────────────────────────────────────────────────────── # 8. CRAWL4AI - Web Scraping pour OpenWebUI # → http://localhost:11235 (accessible depuis OpenWebUI) # ───────────────────────────────────────────────────────── crawl4ai: image: unclecode/crawl4ai:basic container_name: crawl4ai restart: unless-stopped ports: - "11235:11235" environment: - CRAWL4AI_API_TOKEN=${CRAWL4AI_API_TOKEN:-} - MAX_CONCURRENT_TASKS=3 - CRAWL4AI_ENABLE_GPU=false volumes: - /dev/shm:/dev/shm deploy: resources: limits: memory: 2G reservations: memory: 512M healthcheck: test: ["CMD", "curl", "-f", "http://localhost:11235/health"] interval: 30s timeout: 10s retries: 3 start_period: 60s networks: - effi-net EOF # Insérer avant la ligne "networks:" awk ' /^networks:/ { while ((getline line < "/tmp/crawl4ai-service.txt") > 0) { print line } close("/tmp/crawl4ai-service.txt") } { print } ' docker-compose.yml > /tmp/docker-compose-new.yml # Remplacer le fichier original mv /tmp/docker-compose-new.yml docker-compose.yml echo "✅ Service ajouté au docker-compose.yml" echo "" # Démarrer le nouveau service echo "🚀 Démarrage de Crawl4AI..." docker-compose up -d crawl4ai echo "" echo "⏳ Attente du démarrage (30s)..." sleep 30 # Vérification echo "" echo "🔍 Vérification..." if curl -s http://localhost:11235/health > /dev/null 2>&1; then echo "✅ Crawl4AI est démarré !" echo "" echo "📋 Configuration OpenWebUI:" echo " Admin → Tools → Web Search and Crawl → ⚙️" echo " Crawl4AI Base URL: http://localhost:11235" echo " Timeout: 30000" else echo "⚠️ Le service ne répond pas encore" echo " Vérifier les logs: docker logs crawl4ai" fi echo "" echo "================================" echo "Installation terminée !" echo "================================"