# NetGescon Auto-Sync Configuration # Configurazione per la sincronizzazione automatica tra WSL/Windows e server remoto # Versione: 2.0 # Data: 2025-01-17 # ============================================================================= # CONFIGURAZIONE PERCORSI # ============================================================================= # Percorso locale del progetto Laravel LOCAL_PATH="U:\home\michele\netgescon\netgescon-laravel" # Configurazione server remoto REMOTE_HOST="192.168.0.43" REMOTE_USER="michele" REMOTE_PATH="/var/www/netgescon" # Percorsi di backup e log BACKUP_DIR="U:\home\michele\netgescon\backup\sync" LOG_FILE="U:\home\michele\netgescon\log\auto-sync.log" # ============================================================================= # CONFIGURAZIONE SICUREZZA SSH # ============================================================================= # File chiave SSH (se diverso da default) SSH_KEY_FILE="" # Timeout connessione SSH (secondi) SSH_TIMEOUT=10 # Porta SSH (se diversa da 22) SSH_PORT=22 # ============================================================================= # CONFIGURAZIONE SINCRONIZZAZIONE # ============================================================================= # Pattern di esclusione per rsync (uno per riga) EXCLUDE_PATTERNS=( "node_modules/" "vendor/" "storage/logs/" "storage/framework/cache/" "storage/framework/sessions/" "storage/framework/views/" ".git/" "*.log" ".env.local" ".env.backup" ".vscode/" "*.tmp" "*.temp" ".DS_Store" "Thumbs.db" "__pycache__/" "*.pyc" ".pytest_cache/" "coverage/" ".coverage" ".nyc_output/" "dist/" "build/" ".next/" ".nuxt/" ".svelte-kit/" ) # Opzioni rsync aggiuntive RSYNC_OPTIONS=( "--compress" "--archive" "--verbose" "--human-readable" "--progress" "--stats" "--delete" "--delete-excluded" ) # ============================================================================= # CONFIGURAZIONE DEPLOY # ============================================================================= # Comandi da eseguire durante il deploy remoto DEPLOY_COMMANDS=( "cd $REMOTE_PATH" "sudo chown -R www-data:www-data ." "sudo chmod -R 755 ." "sudo chmod -R 777 storage/" "sudo chmod -R 777 bootstrap/cache/" "composer install --no-dev --optimize-autoloader --no-interaction" "php artisan config:cache" "php artisan route:cache" "php artisan view:cache" "php artisan storage:link" ) # Comandi per riavvio servizi (se AUTO_RESTART=true) RESTART_COMMANDS=( "sudo systemctl restart nginx" "sudo systemctl restart php8.3-fpm" "sudo systemctl restart mysql" ) # ============================================================================= # CONFIGURAZIONE BACKUP # ============================================================================= # Numero massimo di backup da mantenere MAX_BACKUPS=10 # Compressione backup (true/false) COMPRESS_BACKUP=true # Estensione file backup compressi BACKUP_EXTENSION=".tar.gz" # ============================================================================= # CONFIGURAZIONE NOTIFICHE # ============================================================================= # Abilita notifiche email (true/false) EMAIL_NOTIFICATIONS=false # Configurazione email (se abilitata) EMAIL_FROM="netgescon@example.com" EMAIL_TO="admin@example.com" EMAIL_SUBJECT="NetGescon Auto-Sync Report" # Abilita notifiche Slack (true/false) SLACK_NOTIFICATIONS=false # URL webhook Slack (se abilitato) SLACK_WEBHOOK_URL="" # ============================================================================= # CONFIGURAZIONE MONITORAGGIO # ============================================================================= # Abilita monitoraggio performance (true/false) PERFORMANCE_MONITORING=true # Soglia di allerta per tempo di sincronizzazione (secondi) SYNC_TIME_THRESHOLD=300 # Soglia di allerta per dimensione transfer (MB) TRANSFER_SIZE_THRESHOLD=100 # ============================================================================= # CONFIGURAZIONE AVANZATA # ============================================================================= # Modalità debug (true/false) DEBUG_MODE=false # Timeout per operazioni lunghe (secondi) OPERATION_TIMEOUT=1800 # Retry automatico in caso di fallimento AUTO_RETRY=true # Numero massimo di retry MAX_RETRY_ATTEMPTS=3 # Delay tra retry (secondi) RETRY_DELAY=30 # ============================================================================= # CONFIGURAZIONE ENVIRONMENT-SPECIFIC # ============================================================================= # Configurazioni specifiche per ambiente di sviluppo DEV_CONFIG=( "APP_ENV=local" "APP_DEBUG=true" "LOG_LEVEL=debug" ) # Configurazioni specifiche per ambiente di produzione PROD_CONFIG=( "APP_ENV=production" "APP_DEBUG=false" "LOG_LEVEL=error" ) # ============================================================================= # CONFIGURAZIONE HOOKS # ============================================================================= # Comandi da eseguire prima della sincronizzazione PRE_SYNC_HOOKS=( # "php artisan down" # "php artisan queue:restart" ) # Comandi da eseguire dopo la sincronizzazione POST_SYNC_HOOKS=( # "php artisan up" # "php artisan optimize" ) # Comandi da eseguire prima del deploy PRE_DEPLOY_HOOKS=( # "php artisan config:clear" # "php artisan cache:clear" ) # Comandi da eseguire dopo il deploy POST_DEPLOY_HOOKS=( # "php artisan migrate --force" # "php artisan db:seed --force" ) # ============================================================================= # CONFIGURAZIONE VALIDAZIONE # ============================================================================= # Comandi per validare il deploy VALIDATION_COMMANDS=( "php artisan --version" "php artisan migrate:status" "php artisan route:list --compact" "curl -s -o /dev/null -w \"%{http_code}\" http://localhost" ) # Soglia di successo per validazione HTTP HTTP_SUCCESS_THRESHOLD=200 # ============================================================================= # CONFIGURAZIONE ROLLBACK # ============================================================================= # Abilita rollback automatico in caso di errore AUTO_ROLLBACK=true # Comandi per rollback ROLLBACK_COMMANDS=( "cd $REMOTE_PATH" "php artisan migrate:rollback" "php artisan config:clear" "php artisan cache:clear" ) # ============================================================================= # FINE CONFIGURAZIONE # ============================================================================= # Nota: Questo file può essere personalizzato per ambienti specifici # Creare copie come config-dev.conf, config-prod.conf, etc.