netgescon-master/docs/03-scripts-automazione/setup-linux-dev.sh
Pikappa2 480e7eafbd 🎯 NETGESCON - Setup iniziale repository completo
📋 Commit iniziale con:
-  Documentazione unificata in docs/
-  Codice Laravel in netgescon-laravel/
-  Script automazione in scripts/
-  Configurazione sync rsync
-  Struttura organizzata e pulita

🔄 Versione: 2025.07.19-1644
🎯 Sistema pronto per Git distribuito
2025-07-19 16:44:47 +02:00

171 lines
5.5 KiB
Bash
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# Script completo per setup ambiente di sviluppo Linux
echo "🐧 SETUP COMPLETO AMBIENTE SVILUPPO LINUX"
echo "========================================="
# Colori
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
log_info() { echo -e "${GREEN}[INFO]${NC} $1"; }
log_warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
log_step() { echo -e "${BLUE}[STEP]${NC} $1"; }
log_step "1⃣ Pulizia configurazioni conflittuali Microsoft..."
sudo rm -f /etc/apt/sources.list.d/vscode.list
sudo rm -f /etc/apt/trusted.gpg.d/packages.microsoft.gpg
sudo rm -f /usr/share/keyrings/microsoft.gpg
log_step "2⃣ Installazione prerequisiti..."
sudo apt update
sudo apt install -y curl wget gpg software-properties-common apt-transport-https git
log_step "3⃣ Configurazione repository Microsoft..."
curl -sSL https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor -o /usr/share/keyrings/microsoft.gpg
echo "deb [arch=amd64,arm64,armhf signed-by=/usr/share/keyrings/microsoft.gpg] https://packages.microsoft.com/repos/code stable main" | sudo tee /etc/apt/sources.list.d/vscode.list
log_step "4⃣ Installazione VS Code..."
sudo apt update
sudo apt install -y code
log_step "5⃣ Installazione estensioni VS Code essenziali..."
# Estensioni per sviluppo Laravel/PHP
code --install-extension ms-vscode.vscode-json
code --install-extension ms-python.python
code --install-extension bmewburn.vscode-intelephense-client
code --install-extension bradlc.vscode-tailwindcss
code --install-extension onecentlin.laravel-blade
code --install-extension ryannaddy.laravel-artisan
code --install-extension codingyu.laravel-goto-view
# GitHub Copilot
code --install-extension GitHub.copilot
code --install-extension GitHub.copilot-chat
log_step "6⃣ Configurazione VS Code per Laravel..."
mkdir -p ~/.config/Code/User
cat > ~/.config/Code/User/settings.json << 'EOF'
{
"workbench.colorTheme": "Default Dark+",
"editor.fontSize": 14,
"editor.fontFamily": "'Fira Code', 'Courier New', monospace",
"editor.fontLigatures": true,
"editor.tabSize": 4,
"editor.insertSpaces": true,
"files.autoSave": "afterDelay",
"files.autoSaveDelay": 1000,
"editor.formatOnSave": true,
"editor.minimap.enabled": true,
"editor.wordWrap": "on",
"php.suggest.basic": false,
"php.validate.enable": true,
"php.validate.executablePath": "/usr/bin/php",
"intelephense.files.maxSize": 5000000,
"intelephense.completion.triggerParameterHints": true,
"git.enableSmartCommit": true,
"git.autofetch": true,
"terminal.integrated.defaultProfile.linux": "bash",
"terminal.integrated.fontSize": 14,
"github.copilot.enable": {
"*": true,
"yaml": false,
"plaintext": false,
"markdown": true,
"php": true,
"javascript": true,
"typescript": true,
"css": true,
"scss": true,
"html": true,
"blade": true
},
"laravel.artisan.location": "./artisan",
"workbench.startupEditor": "welcomePage",
"explorer.confirmDelete": false,
"editor.suggestSelection": "first",
"vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue"
}
EOF
log_step "7⃣ Configurazione workspace Netgescon..."
mkdir -p /var/www/netgescon/.vscode
cat > /var/www/netgescon/.vscode/settings.json << 'EOF'
{
"php.validate.executablePath": "/usr/bin/php",
"php.executablePath": "/usr/bin/php",
"intelephense.environment.phpVersion": "8.3.0",
"files.associations": {
"*.blade.php": "blade"
},
"emmet.includeLanguages": {
"blade": "html"
},
"terminal.integrated.cwd": "/var/www/netgescon"
}
EOF
cat > /var/www/netgescon/.vscode/extensions.json << 'EOF'
{
"recommendations": [
"bmewburn.vscode-intelephense-client",
"onecentlin.laravel-blade",
"ryannaddy.laravel-artisan",
"bradlc.vscode-tailwindcss",
"GitHub.copilot",
"GitHub.copilot-chat"
]
}
EOF
log_step "8⃣ Installazione font Fira Code..."
sudo apt install -y fonts-firacode
log_step "9⃣ Configurazione environment desktop..."
if ! command -v gnome-session &> /dev/null; then
log_warn "Installazione ambiente desktop minimale..."
sudo apt install -y ubuntu-desktop-minimal
log_warn "⚠️ RIAVVIO NECESSARIO per l'interfaccia grafica"
fi
log_step "🔟 Configurazione accesso remoto..."
read -p "Vuoi configurare il desktop remoto (RDP)? (y/n): " setup_rdp
if [[ $setup_rdp =~ ^[Yy]$ ]]; then
sudo apt install -y xrdp
sudo systemctl enable xrdp
sudo systemctl start xrdp
sudo ufw allow 3389 2>/dev/null || true
log_info "✅ RDP configurato su porta 3389"
fi
log_step "🎯 Test finale..."
if command -v code &> /dev/null; then
log_info "✅ VS Code installato: $(code --version | head -1)"
else
log_warn "❌ Problema con VS Code"
fi
echo ""
echo "🎉 SETUP COMPLETATO!"
echo "==================="
echo ""
echo "📋 Prossimi passi:"
echo "1. Se necessario: sudo reboot"
echo "2. Avvia VS Code: code /var/www/netgescon"
echo "3. Login GitHub Copilot: Ctrl+Shift+P → 'GitHub Copilot: Sign In'"
echo "4. RDP (se installato): 192.168.0.200:3389"
echo ""
echo "🛠️ Comandi di sviluppo:"
echo "- Apri progetto: code /var/www/netgescon"
echo "- Server Laravel: php artisan serve --host=0.0.0.0"
echo "- Logs Laravel: tail -f storage/logs/laravel.log"
echo "- Git status: git status"
echo ""
echo "🔧 Shortcuts VS Code utili:"
echo "- Copilot Chat: Ctrl+Shift+I"
echo "- Command Palette: Ctrl+Shift+P"
echo "- Terminal: Ctrl+`"
echo "- File Explorer: Ctrl+Shift+E"