#!/usr/bin/env bash
# ==============================================================================
# VaultNet (ASTP) Automated 30-Second Cloud VPS Relay Server Deployer
# ==============================================================================
set -e

echo "=========================================================="
echo "    🔒 VaultNet (ASTP) Cloud Relay Automated Installer    "
echo "=========================================================="

# 1. Update package index and check for Docker
echo "[+] Checking environment and dependencies..."
if ! command -v docker &> /dev/null; then
    echo "[!] Docker not found. Installing Docker CE automatically..."
    sudo apt-get update -y
    sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    sudo apt-get update -y
    sudo apt-get install -y docker-ce docker-ce-cli containerd.io
    sudo systemctl enable --now docker
    echo "[+] Docker installed successfully."
fi

# 2. Configure Firewall (UFW) for Port 9005
if command -v ufw &> /dev/null; then
    echo "[+] Configuring UFW Firewall for Port 9005..."
    sudo ufw allow 9005/tcp || true
fi

# 3. Clean up any existing VaultNet container
if [ $(sudo docker ps -a -q -f name=vaultnet-relay) ]; then
    echo "[*] Stopping and removing existing vaultnet-relay container..."
    sudo docker stop vaultnet-relay || true
    sudo docker rm vaultnet-relay || true
fi

# 4. Build Docker Container Image
echo "[+] Building VaultNet Relay Docker container image..."
sudo docker build -t vaultnet-relay:latest -f Dockerfile.relay .

# 5. Launch VaultNet Blind Relay Container on Port 9005 with --restart always
echo "[+] Launching VaultNet Cloud Blind Relay container on port 9005..."
sudo docker run -d \
  --name vaultnet-relay \
  -p 9005:9005 \
  -e VAULTNET_RELAY_HOST=0.0.0.0 \
  -e VAULTNET_RELAY_PORT=9005 \
  -e VAULTNET_TTL_HOURS=24 \
  -e VAULTNET_MAX_PAYLOAD_MB=500 \
  --restart always \
  vaultnet-relay:latest

echo ""
echo "=========================================================="
echo "  🎉 VAULTNET BLIND RELAY DEPLOYMENT COMPLETE!"
echo "=========================================================="
echo "  Node Address : 0.0.0.0:9005"
echo "  Container ID : $(sudo docker ps -q -f name=vaultnet-relay)"
echo "  Status       : ONLINE (24h Auto-Deleting Dead Drop Enabled)"
echo "=========================================================="
