#!/bin/bash echo "🔄 Baixando e executando script de configuração do Debian no WSL" echo "" # Instale dependências básicas se ainda não estiverem instaladas apt update && apt upgrade -y apt install -y ca-certificates gnupg lsb-release software-properties-common wget git unzip apt-transport-https # Função para verificar se está sendo executado no WSL check_wsl() { if ! grep -qi microsoft /proc/version; then echo "❌ Este script deve ser executado no WSL (Windows Subsystem for Linux)." exit 1 fi } # Atualização inicial update_system() { echo "🔄 Atualizando sistema..." sudo apt update && sudo apt upgrade -y } # Instalar Docker install_docker() { echo "🐋 Instalando Docker..." sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io } # Instalar Docker Compose install_docker_compose() { echo "🐋 Instalando Docker Compose..." # Obter última versão DOCKER_COMPOSE_VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep 'tag_name' | cut -d '"' -f 4) # Baixar e instalar sudo curl -L "https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose # Opcional: iniciar e habilitar serviço do Docker (requer systemd) if [ -f /lib/systemd/system/docker.service ]; then sudo systemctl enable docker sudo systemctl start docker sudo usermod -aG docker root else echo "⚠️ Sistema sem systemd. Inicie manualmente com: sudo dockerd &" fi } # Instalar Node.js LTS install_nodejs() { echo "🟢 Instalando Node.js (LTS)..." curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - sudo apt install -y nodejs } # Instalar PHP e Composer install_php_composer() { echo "🔵 Instalando PHP necessário para o Composer..." sudo apt install -y php php-cli php-mbstring unzip echo "🎼 Instalando Composer..." # Usar link alternativo e verificar hash manualmente COMPOSER_URL="https://getcomposer.org/composer.phar" EXPECTED_HASH=$(curl -sS https://composer.github.io/stable.sig) # Baixar Composer sudo curl -fsSL $COMPOSER_URL -o composer.phar # Mover e tornar executável sudo mv composer.phar /usr/local/bin/composer sudo chmod +x /usr/local/bin/composer # Permitir uso como root (opcional, apenas em ambientes seguros) export COMPOSER_ALLOW_SUPERUSER=1 } # Configurar wsl.conf para iniciar como root configure_wsl_conf() { echo "⚙️ Configurando /etc/wsl.conf para iniciar como root..." echo "[user]" | sudo tee /etc/wsl.conf > /dev/null echo "default=root" | sudo tee -a /etc/wsl.conf > /dev/null } # Mostrar versões instaladas show_versions() { echo "" echo "📊 Resumo das versões instaladas:" echo "----------------------------------" echo "Docker:" docker --version echo "Docker Compose:" docker-compose --version || echo "docker-compose NÃO INSTALADO OU NÃO DISPONÍVEL" echo "Node.js LTS:" node --version npm --version echo "PHP:" php --version | head -n 1 echo "Composer:" composer --version | head -n 1 echo "----------------------------------" echo "" } # Mensagem final com créditos show_credits() { echo "📚 Mais em: https://garapa.in/scripts/debian-wsl-setup/" } # Executar funções check_wsl update_system install_docker install_docker_compose install_nodejs install_php_composer configure_wsl_conf show_versions show_credits