📋 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
171 lines
5.5 KiB
Bash
171 lines
5.5 KiB
Bash
#!/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"
|