Skip to main content
Glama
transfer_complete_to_pi.sh6.65 kB
#!/bin/bash # ============================================================================= # Script de Transfert Complet - Phase 3.4 vers Raspberry Pi # ============================================================================= # Transfère TOUS les fichiers du projet local vers le Raspberry Pi # UTILISATION: ./transfer_complete_to_pi.sh [IP_RASPBERRY] [USER] # EXEMPLE: ./transfer_complete_to_pi.sh 192.168.1.22 beroute # ============================================================================= set -e # Configuration par défaut DEFAULT_PI_IP="192.168.1.22" DEFAULT_PI_USER="beroute" LOCAL_PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" REMOTE_PROJECT_DIR="/home/\$PI_USER/homeassistant-mcp-server-v3.4" # Couleurs RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # Arguments PI_IP="${1:-$DEFAULT_PI_IP}" PI_USER="${2:-$DEFAULT_PI_USER}" echo -e "${BLUE}=== Transfert Complet Phase 3.4 vers Raspberry Pi ===${NC}" echo "🔗 Destination: ${PI_USER}@${PI_IP}" echo "📁 Projet local: ${LOCAL_PROJECT_DIR}" echo "📁 Destination: /home/${PI_USER}/homeassistant-mcp-server-v3.4" echo # ============================================================================= # 1. VÉRIFICATIONS PRÉALABLES # ============================================================================= echo -e "${YELLOW}🔍 1. VÉRIFICATIONS PRÉALABLES${NC}" # Vérifier le projet local if [ ! -f "$LOCAL_PROJECT_DIR/bridge_server.py" ]; then echo -e "${RED}❌ Ce script doit être exécuté depuis le répertoire du projet${NC}" exit 1 fi # Vérifier la complétude du projet local echo "✅ Vérification de la complétude du projet local..." python3 "$LOCAL_PROJECT_DIR/scripts/check_project_completeness.py" if [ $? -ne 0 ]; then echo -e "${RED}❌ Le projet local n'est pas complet${NC}" echo "Corrigez les problèmes avant le transfert" exit 1 fi # Test de connectivité echo "🔗 Test de connectivité vers ${PI_USER}@${PI_IP}..." if ! ssh -o ConnectTimeout=10 -o BatchMode=yes ${PI_USER}@${PI_IP} exit 2>/dev/null; then echo -e "${RED}❌ Impossible de se connecter au Raspberry Pi${NC}" echo "Vérifiez l'IP, l'utilisateur et les clés SSH" exit 1 fi echo "✅ Connectivité OK" # ============================================================================= # 2. PRÉPARATION DU TRANSFERT # ============================================================================= echo -e "\n${YELLOW}📦 2. PRÉPARATION DU TRANSFERT${NC}" # Créer le répertoire de destination echo "📁 Création du répertoire de destination..." ssh ${PI_USER}@${PI_IP} "mkdir -p /home/${PI_USER}/homeassistant-mcp-server-v3.4" # ============================================================================= # 3. TRANSFERT DES FICHIERS # ============================================================================= echo -e "\n${YELLOW}🚀 3. TRANSFERT DES FICHIERS${NC}" # Fichiers et dossiers à exclure du transfert EXCLUDE_LIST=( "__pycache__" ".git" "*.pyc" ".pytest_cache" "*.log" "logs/*" ".env" "bridge_data.db" "*.tmp" ".vscode" ".idea" ) # Construire les options d'exclusion pour rsync EXCLUDE_OPTS="" for item in "${EXCLUDE_LIST[@]}"; do EXCLUDE_OPTS="$EXCLUDE_OPTS --exclude=$item" done echo "📂 Transfert du projet complet (avec exclusions intelligentes)..." echo " Exclusions: ${EXCLUDE_LIST[*]}" # Transfert avec rsync pour une synchronisation efficace rsync -avz --progress \ --delete \ $EXCLUDE_OPTS \ "$LOCAL_PROJECT_DIR/" \ ${PI_USER}@${PI_IP}:/home/${PI_USER}/homeassistant-mcp-server-v3.4/ echo -e "${GREEN}✅ Transfert terminé${NC}" # ============================================================================= # 4. VÉRIFICATION POST-TRANSFERT # ============================================================================= echo -e "\n${YELLOW}🔍 4. VÉRIFICATION POST-TRANSFERT${NC}" # Vérifier les fichiers critiques CRITICAL_FILES=( "bridge_server.py" "auth_manager.py" "database.py" "requirements.txt" "web/templates/login.html" "web/static/css/main.css" "web/static/js/dashboard.js" "scripts/deploy_pi.sh" ) echo "📋 Vérification des fichiers critiques sur le Pi..." MISSING_FILES=() for file in "${CRITICAL_FILES[@]}"; do if ssh ${PI_USER}@${PI_IP} "[ ! -f /home/${PI_USER}/homeassistant-mcp-server-v3.4/$file ]"; then MISSING_FILES+=("$file") fi done if [ ${#MISSING_FILES[@]} -eq 0 ]; then echo -e "${GREEN}✅ Tous les fichiers critiques sont présents${NC}" else echo -e "${RED}❌ Fichiers manquants:${NC}" for file in "${MISSING_FILES[@]}"; do echo " - $file" done exit 1 fi # Vérifier la structure web echo "🌐 Vérification de la structure web..." WEB_CHECK=$(ssh ${PI_USER}@${PI_IP} "cd /home/${PI_USER}/homeassistant-mcp-server-v3.4 && find web/ -name '*.html' | wc -l" 2>/dev/null || echo "0") if [ "$WEB_CHECK" -ge 8 ]; then echo -e "${GREEN}✅ Structure web complète ($WEB_CHECK templates trouvés)${NC}" else echo -e "${RED}❌ Structure web incomplète (seulement $WEB_CHECK templates)${NC}" exit 1 fi # ============================================================================= # 5. STATISTIQUES DE TRANSFERT # ============================================================================= echo -e "\n${YELLOW}📊 5. STATISTIQUES DE TRANSFERT${NC}" # Taille du projet transféré REMOTE_SIZE=$(ssh ${PI_USER}@${PI_IP} "du -sh /home/${PI_USER}/homeassistant-mcp-server-v3.4" | cut -f1) REMOTE_FILES=$(ssh ${PI_USER}@${PI_IP} "find /home/${PI_USER}/homeassistant-mcp-server-v3.4 -type f | wc -l") echo "📁 Taille transférée: $REMOTE_SIZE" echo "📄 Nombre de fichiers: $REMOTE_FILES" # ============================================================================= # 6. INSTRUCTIONS SUIVANTES # ============================================================================= echo -e "\n${GREEN}🎉 TRANSFERT RÉUSSI !${NC}" echo echo -e "${BLUE}📋 ÉTAPES SUIVANTES:${NC}" echo "1. Se connecter au Pi:" echo " ssh ${PI_USER}@${PI_IP}" echo echo "2. Exécuter le déploiement:" echo " cd /home/${PI_USER}/homeassistant-mcp-server-v3.4" echo " chmod +x scripts/deploy_pi.sh" echo " ./scripts/deploy_pi.sh" echo echo "3. Ou utiliser le script de migration complet:" echo " chmod +x scripts/migrate_pi.sh" echo " ./scripts/migrate_pi.sh" echo echo -e "${YELLOW}💡 CONSEIL:${NC} Le projet est maintenant complet sur le Pi avec TOUS les fichiers" echo " incluant la structure web/, les templates et les fichiers statiques."

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Jonathan97480/McpHomeAssistant'

If you have feedback or need assistance with the MCP directory API, please join our Discord server