mirror of
https://github.com/BigBodyCobain/Shadowbroker.git
synced 2026-04-23 02:56:08 +02:00
d419ee63e1
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
186 lines
5.8 KiB
Batchfile
186 lines
5.8 KiB
Batchfile
@echo off
|
|
title ShadowBroker - Global Threat Intercept
|
|
|
|
echo ===================================================
|
|
echo S H A D O W B R O K E R -- STARTUP
|
|
echo ===================================================
|
|
echo.
|
|
|
|
:: Check for stale docker-compose.yml from pre-migration clones
|
|
findstr /R /C:"build:" docker-compose.yml >nul 2>&1
|
|
if %errorlevel% equ 0 (
|
|
echo.
|
|
echo ================================================================
|
|
echo [!] WARNING: Your docker-compose.yml is outdated.
|
|
echo.
|
|
echo It contains 'build:' directives, which means Docker will
|
|
echo compile from local source instead of pulling pre-built images.
|
|
echo You will NOT receive updates this way.
|
|
echo.
|
|
echo If you use Docker, re-clone the repository:
|
|
echo git clone https://github.com/BigBodyCobain/Shadowbroker.git
|
|
echo cd Shadowbroker
|
|
echo docker compose pull
|
|
echo docker compose up -d
|
|
echo ================================================================
|
|
echo.
|
|
)
|
|
|
|
:: Check for Python
|
|
where python >nul 2>&1
|
|
if %errorlevel% neq 0 (
|
|
echo [!] ERROR: Python is not installed or not in PATH.
|
|
echo [!] Install Python 3.10-3.12 from https://python.org
|
|
echo [!] IMPORTANT: Check "Add to PATH" during install.
|
|
echo.
|
|
pause
|
|
exit /b 1
|
|
)
|
|
|
|
:: Check Python version (warn if 3.13+)
|
|
for /f "tokens=2 delims= " %%v in ('python --version 2^>^&1') do set PYVER=%%v
|
|
echo [*] Found Python %PYVER%
|
|
for /f "tokens=1,2 delims=." %%a in ("%PYVER%") do (
|
|
if %%b GEQ 13 (
|
|
echo [!] WARNING: Python %PYVER% detected. Some packages may fail to build.
|
|
echo [!] Recommended: Python 3.10, 3.11, or 3.12.
|
|
echo.
|
|
)
|
|
)
|
|
|
|
:: Check for Node.js
|
|
where npm >nul 2>&1
|
|
if %errorlevel% neq 0 (
|
|
echo [!] ERROR: Node.js/npm is not installed or not in PATH.
|
|
echo [!] Install Node.js 18+ from https://nodejs.org
|
|
echo.
|
|
pause
|
|
exit /b 1
|
|
)
|
|
|
|
for /f "tokens=1 delims= " %%v in ('node --version 2^>^&1') do echo [*] Found Node.js %%v
|
|
|
|
:: ── AGGRESSIVE ZOMBIE CLEANUP ──────────────────────────────────────
|
|
:: Kill ANY process holding ports 8000 or 3000 (LISTENING, TIME_WAIT,
|
|
:: ESTABLISHED — all states). Also kill orphaned uvicorn/ais_proxy
|
|
:: processes that might be lingering from a previous crashed session.
|
|
echo.
|
|
echo [*] Clearing zombie processes...
|
|
|
|
:: Kill by port — catches processes in ANY state, not just LISTENING
|
|
for /f "tokens=5" %%a in ('netstat -ano ^| findstr ":8000 "') do (
|
|
taskkill /F /PID %%a >nul 2>&1
|
|
)
|
|
for /f "tokens=5" %%a in ('netstat -ano ^| findstr ":3000 "') do (
|
|
taskkill /F /PID %%a >nul 2>&1
|
|
)
|
|
|
|
:: Note: wmic zombie-kill removed — hangs on Win11. Port-based kill above
|
|
:: already catches any process holding 8000/3000.
|
|
|
|
:: Brief pause to let OS release the ports
|
|
timeout /t 1 /nobreak >nul
|
|
|
|
:: Verify ports are actually free
|
|
netstat -ano | findstr ":8000 " | findstr "LISTENING" >nul 2>&1
|
|
if %errorlevel% equ 0 (
|
|
echo [!] WARNING: Port 8000 is still occupied! Waiting 3s for OS cleanup...
|
|
timeout /t 3 /nobreak >nul
|
|
)
|
|
netstat -ano | findstr ":3000 " | findstr "LISTENING" >nul 2>&1
|
|
if %errorlevel% equ 0 (
|
|
echo [!] WARNING: Port 3000 is still occupied! Waiting 3s for OS cleanup...
|
|
timeout /t 3 /nobreak >nul
|
|
)
|
|
|
|
echo [*] Ports clear.
|
|
:: ────────────────────────────────────────────────────────────────────
|
|
|
|
echo.
|
|
echo [*] Setting up backend...
|
|
cd backend
|
|
|
|
:: Check if UV is available (preferred, much faster installs)
|
|
where uv >nul 2>&1
|
|
if %errorlevel% neq 0 goto :use_pip
|
|
|
|
echo [*] Using UV for Python dependency management.
|
|
if not exist "venv\" (
|
|
echo [*] Creating Python virtual environment...
|
|
uv venv
|
|
if %errorlevel% neq 0 (
|
|
echo [!] ERROR: Failed to create virtual environment.
|
|
pause
|
|
exit /b 1
|
|
)
|
|
)
|
|
call venv\Scripts\activate.bat
|
|
echo [*] Installing Python dependencies via UV (fast)...
|
|
cd ..
|
|
uv sync --frozen --no-dev
|
|
if %errorlevel% neq 0 goto :dep_fail
|
|
cd backend
|
|
goto :deps_ok
|
|
|
|
:use_pip
|
|
echo [*] UV not found, using pip (install UV for faster installs: https://docs.astral.sh/uv/)
|
|
if not exist "venv\" (
|
|
echo [*] Creating Python virtual environment...
|
|
python -m venv venv
|
|
if %errorlevel% neq 0 (
|
|
echo [!] ERROR: Failed to create virtual environment.
|
|
pause
|
|
exit /b 1
|
|
)
|
|
)
|
|
call venv\Scripts\activate.bat
|
|
echo [*] Installing Python dependencies (this may take a minute)...
|
|
pip install -q -r requirements.txt
|
|
if %errorlevel% neq 0 goto :dep_fail
|
|
goto :deps_ok
|
|
|
|
:dep_fail
|
|
echo.
|
|
echo [!] ERROR: Python dependency install failed. See errors above.
|
|
echo [!] If you see Rust/cargo errors, your Python version may be too new.
|
|
echo [!] Recommended: Python 3.10, 3.11, or 3.12.
|
|
echo.
|
|
pause
|
|
exit /b 1
|
|
|
|
:deps_ok
|
|
echo [*] Backend dependencies OK.
|
|
if not exist "node_modules\ws" (
|
|
echo [*] Installing backend Node.js dependencies...
|
|
call npm ci --omit=dev --silent
|
|
)
|
|
echo [*] Backend Node.js dependencies OK.
|
|
cd ..
|
|
|
|
echo.
|
|
echo [*] Setting up frontend...
|
|
cd frontend
|
|
if not exist "node_modules\" (
|
|
echo [*] Installing frontend dependencies...
|
|
call npm install
|
|
if %errorlevel% neq 0 (
|
|
echo [!] ERROR: npm install failed. See errors above.
|
|
pause
|
|
exit /b 1
|
|
)
|
|
)
|
|
echo [*] Frontend dependencies OK.
|
|
|
|
echo.
|
|
echo ===================================================
|
|
echo Starting services...
|
|
echo Dashboard: http://localhost:3000
|
|
echo Keep this window open! Initial load takes ~10s.
|
|
echo This is the hardened web/local runtime, not the final native shell.
|
|
echo Security work must not come at the cost of unusable map responsiveness.
|
|
echo ===================================================
|
|
echo (Press Ctrl+C to stop)
|
|
echo.
|
|
|
|
call npm run dev
|