|
#!/bin/bash |
|
|
|
set -e |
|
|
|
echo "=== Instalação do Docker ===" |
|
read -p "Deseja instalar o Docker? (s/n): " INSTALL_DOCKER |
|
|
|
if [[ "$INSTALL_DOCKER" =~ ^[Ss]$ ]]; then |
|
if command -v yum &>/dev/null; then |
|
sudo yum update -y |
|
sudo yum install -y docker |
|
elif command -v apt-get &>/dev/null; then |
|
sudo apt-get update -y |
|
sudo apt-get install -y docker.io |
|
else |
|
echo "❌ Gerenciador de pacotes não suportado. Instale o Docker manualmente." |
|
exit 1 |
|
fi |
|
|
|
sudo systemctl enable docker |
|
sudo systemctl start docker |
|
sudo usermod -aG docker $USER || true |
|
echo "✅ Docker instalado com sucesso!" |
|
else |
|
echo "⏭️ Pulando instalação do Docker..." |
|
|
|
if ! command -v docker &>/dev/null; then |
|
echo "❌ Docker não encontrado. Instale antes de continuar." |
|
exit 1 |
|
fi |
|
fi |
|
|
|
echo "" |
|
echo "=== Configuração da senha ===" |
|
|
|
read -s -p "Digite a senha do painel: " PASSWORD |
|
echo "" |
|
|
|
if [ -z "$PASSWORD" ]; then |
|
PASSWORD=$(openssl rand -base64 12) |
|
echo "⚠️ Senha gerada automaticamente: $PASSWORD" |
|
echo "⚠️ SALVE ESTA SENHA AGORA!" |
|
fi |
|
|
|
echo "=== Gerando hash da senha ===" |
|
RAW=$(docker run --rm ghcr.io/wg-easy/wg-easy wgpw "$PASSWORD") |
|
echo "🔍 Saída bruta do wgpw: $RAW" |
|
|
|
HASH=$(echo "$RAW" | grep -oP '\$2[aby]\$\d+\$.+' | tr -d "'") |
|
echo "🔍 Hash extraído: $HASH" |
|
|
|
echo "" |
|
echo "=== Definição do IP ===" |
|
|
|
read -p "Digite o IP público (ENTER para auto-detectar): " WG_HOST |
|
|
|
if [ -z "$WG_HOST" ]; then |
|
WG_HOST=$(curl -s ifconfig.me) |
|
fi |
|
|
|
echo "Usando IP: $WG_HOST" |
|
|
|
echo "" |
|
echo "=== Subindo wg-easy ===" |
|
|
|
docker run -d \ |
|
--name=wg-easy \ |
|
-e LANG=pt \ |
|
-e WG_HOST="$WG_HOST" \ |
|
-e PASSWORD_HASH="$HASH" \ |
|
-e PORT=51821 \ |
|
-e WG_PORT=51820 \ |
|
-v ~/.wg-easy:/etc/wireguard \ |
|
-p 51820:51820/udp \ |
|
-p 51821:51821/tcp \ |
|
--cap-add=NET_ADMIN \ |
|
--cap-add=SYS_MODULE \ |
|
--sysctl="net.ipv4.conf.all.src_valid_mark=1" \ |
|
--sysctl="net.ipv4.ip_forward=1" \ |
|
--restart unless-stopped \ |
|
ghcr.io/wg-easy/wg-easy |
|
|
|
echo "" |
|
echo "=== ✅ FINALIZADO ===" |
|
echo "🌐 Painel disponível em: http://$WG_HOST:51821" |
|
echo "🔑 Use a senha que você definiu para acessar." |