Redesign dashboard with steampunk neon theme and live gauges.

Ambient background, 3D neon cards, brass HUD styling, glowing charts, gauge rings, and refreshed Command Deck, Fleet Roster, Forge, and Calibrate pages.
This commit is contained in:
drjones
2026-05-27 00:43:34 -07:00
parent 6db9a33a20
commit 9d223b8137
20 changed files with 1638 additions and 307 deletions

211
run.bat
View File

@@ -15,49 +15,57 @@ echo [1/5] Checking dependencies...
where go >nul 2>nul
if %ERRORLEVEL% neq 0 (
echo Go not found. Downloading and installing Go...
echo Go not found. Checking for existing installation...
:: Detect architecture
if "%PROCESSOR_ARCHITECTURE%"=="AMD64" (
set GO_ARCH=amd64
:: Check common install paths
if exist "C:\Program Files\Go\bin\go.exe" (
echo Found Go at C:\Program Files\Go\bin
set "PATH=C:\Program Files\Go\bin;%PATH%"
) else (
set GO_ARCH=386
echo Downloading and installing Go...
:: Detect architecture
if "%PROCESSOR_ARCHITECTURE%"=="AMD64" (
set GO_ARCH=amd64
) else (
set GO_ARCH=386
)
set GO_VERSION=1.22.2
set GO_URL=https://go.dev/dl/go%GO_VERSION%.windows-%GO_ARCH%.msi
set GO_MSI=%TEMP%\go-installer.msi
echo Downloading Go %GO_VERSION% for Windows %GO_ARCH%...
echo (This may take a moment...)
:: Download using PowerShell (built into Windows)
powershell -Command "& { [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Invoke-WebRequest -Uri '%GO_URL%' -OutFile '%GO_MSI%' }"
if %ERRORLEVEL% neq 0 (
echo ERROR: Failed to download Go installer.
echo Please manually download from: https://go.dev/dl/
pause
exit /b 1
)
echo Installing Go (this may require administrator privileges)...
msiexec /i "%GO_MSI%" /quiet /norestart
if %ERRORLEVEL% neq 0 (
echo ERROR: Failed to install Go. Try running as Administrator.
pause
exit /b 1
)
:: Clean up installer
del "%GO_MSI%" 2>nul
:: Add Go to PATH for this session
set "PATH=C:\Program Files\Go\bin;%PATH%"
set "PATH=%USERPROFILE%\go\bin;%PATH%"
echo Go installed successfully!
)
set GO_VERSION=1.22.2
set GO_URL=https://go.dev/dl/go%GO_VERSION%.windows-%GO_ARCH%.msi
set GO_MSI=%TEMP%\go-installer.msi
echo Downloading Go %GO_VERSION% for Windows %GO_ARCH%...
echo (This may take a moment...)
:: Download using PowerShell (built into Windows)
powershell -Command "& { [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Invoke-WebRequest -Uri '%GO_URL%' -OutFile '%GO_MSI%' }"
if %ERRORLEVEL% neq 0 (
echo ERROR: Failed to download Go installer.
echo Please manually download from: https://go.dev/dl/
pause
exit /b 1
)
echo Installing Go (this may require administrator privileges)...
msiexec /i "%GO_MSI%" /quiet /norestart
if %ERRORLEVEL% neq 0 (
echo ERROR: Failed to install Go. Try running as Administrator.
pause
exit /b 1
)
:: Clean up installer
del "%GO_MSI%" 2>nul
:: Add Go to PATH for this session
set PATH=%PATH%;C:\Program Files\Go\bin
set PATH=%PATH%;%USERPROFILE%\go\bin
echo Go installed successfully!
) else (
echo Go found:
call go version
@@ -68,34 +76,41 @@ if %ERRORLEVEL% neq 0 (
:: ============================================================
where node >nul 2>nul
if %ERRORLEVEL% neq 0 (
echo Node.js not found. Downloading and installing Node.js...
echo Node.js not found. Checking for existing installation...
set NODE_VERSION=20.12.2
set NODE_URL=https://nodejs.org/dist/v%NODE_VERSION%/node-v%NODE_VERSION%-x64.msi
set NODE_MSI=%TEMP%\node-installer.msi
echo Downloading Node.js v%NODE_VERSION%...
echo (This may take a moment...)
powershell -Command "& { [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Invoke-WebRequest -Uri '%NODE_URL%' -OutFile '%NODE_MSI%' }"
if %ERRORLEVEL% neq 0 (
echo WARNING: Failed to download Node.js. Frontend will not be built.
echo You can manually download from: https://nodejs.org/
set SKIP_FRONTEND=1
if exist "C:\Program Files\nodejs\node.exe" (
echo Found Node.js at C:\Program Files\nodejs
set "PATH=C:\Program Files\nodejs;%PATH%"
) else (
echo Installing Node.js (this may require administrator privileges)...
msiexec /i "%NODE_MSI%" /quiet /norestart
echo Downloading and installing Node.js...
set NODE_VERSION=20.12.2
set NODE_URL=https://nodejs.org/dist/v%NODE_VERSION%/node-v%NODE_VERSION%-x64.msi
set NODE_MSI=%TEMP%\node-installer.msi
echo Downloading Node.js v%NODE_VERSION%...
echo (This may take a moment...)
powershell -Command "& { [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Invoke-WebRequest -Uri '%NODE_URL%' -OutFile '%NODE_MSI%' }"
if %ERRORLEVEL% neq 0 (
echo WARNING: Failed to install Node.js. Frontend will not be built.
echo WARNING: Failed to download Node.js. Frontend will not be built.
echo You can manually download from: https://nodejs.org/
set SKIP_FRONTEND=1
) else (
:: Add Node to PATH for this session
set PATH=%PATH%;C:\Program Files\nodejs
echo Installing Node.js (this may require administrator privileges)...
msiexec /i "%NODE_MSI%" /quiet /norestart
del "%NODE_MSI%" 2>nul
echo Node.js installed successfully!
if %ERRORLEVEL% neq 0 (
echo WARNING: Failed to install Node.js. Frontend will not be built.
set SKIP_FRONTEND=1
) else (
:: Add Node to PATH for this session
set "PATH=C:\Program Files\nodejs;%PATH%"
del "%NODE_MSI%" 2>nul
echo Node.js installed successfully!
)
)
)
) else (
@@ -109,32 +124,35 @@ if %ERRORLEVEL% neq 0 (
echo [2/5] Creating data directories...
if not exist "data\builds" mkdir "data\builds"
if not exist "data\logs" mkdir "data\logs"
echo Done.
if not exist "data\blueprints" mkdir "data\blueprints"
echo Created: data\builds, data\logs, data\blueprints
:: ============================================================
:: STEP 4: Build frontend
:: ============================================================
if "%SKIP_FRONTEND%"=="" (
echo [3/5] Building frontend dashboard...
echo Running: npm install ^&^& npm run build in server\web\
cd server\web
if not exist "node_modules" (
echo Installing npm dependencies...
call npm install
if %ERRORLEVEL% neq 0 (
echo ERROR: npm install failed
cd ..\..
pause
exit /b 1
)
echo npm install completed successfully.
)
echo Building frontend with Vite...
call npm run build
if %ERRORLEVEL% neq 0 (
echo WARNING: Frontend build failed, server will run without dashboard.
) else (
echo Frontend built: server\web\dist
echo Frontend built successfully: server\web\dist
)
cd ..\..
:: Copy frontend dist to server's webroot directory
if exist "server\web\dist" (
if not exist "server\webroot" mkdir "server\webroot"
xcopy /E /I /Y "server\web\dist\*" "server\webroot\" >nul
echo Frontend files copied to server\webroot
)
) else (
echo [3/5] Skipping frontend build (Node.js not available)
)
@@ -143,6 +161,8 @@ if "%SKIP_FRONTEND%"=="" (
:: STEP 5: Build server
:: ============================================================
echo [4/5] Building server...
echo Running: go build in server\...
cd server
:: Download Go module dependencies
@@ -152,6 +172,7 @@ if %ERRORLEVEL% neq 0 (
echo WARNING: go mod download failed, trying build anyway...
)
echo Compiling server binary...
go build -ldflags="-s -w" -o "..\bin\miner-server.exe" .
if %ERRORLEVEL% neq 0 (
echo ERROR: Build failed
@@ -159,36 +180,52 @@ if %ERRORLEVEL% neq 0 (
exit /b 1
)
cd ..
echo Server built: bin\miner-server.exe
echo Server built successfully: bin\miner-server.exe
:: ============================================================
:: LAUNCH
:: ============================================================
echo [5/5] Starting server on port 8989...
echo.
:: Detect LAN IP for display
for /f "usebackq delims=" %%I in (`powershell -NoProfile -Command "(Get-NetIPAddress -AddressFamily IPv4 ^| Where-Object { $_.IPAddress -notlike '127.*' -and $_.PrefixOrigin -ne 'WellKnown' } ^| Select-Object -First 1 -ExpandProperty IPAddress)"`) do set LAN_IP=%%I
if not defined LAN_IP set LAN_IP=localhost
echo.
echo ╔══════════════════════════════════════════════════╗
echoCrypto Miner Control Server
echo ║ ║
echo ║ Dashboard: http://%LAN_IP%:8989
echo ║ Local: http://localhost:8989
echoWebSocket: ws://%LAN_IP%:8989/ws/agent
echo ║ ║
echo1. Open dashboard on your LAN
echo2. Configure Settings
echo3. Build install-{worker}.exe in Builder
echo4. Run that exe once on each Windows machine
echo
echoData: %CD%\data\
echoPress Ctrl+C to stop the server
echo ╚══════════════════════════════════════════════════╝
echo ╔══════════════════════════════════════════════════════════════
echo SERVER IS NOW LIVE
echo
echo ║ Dashboard URL: http://0.0.0.0:8989
echo ║ LAN Access: http://%LAN_IP%:8989
echoLocal: http://localhost:8989
echo
echoWebSocket (agents): ws://%LAN_IP%:8989/ws/agent
echoWebSocket (dash): ws://%LAN_IP%:8989/ws/dashboard
echo
echoQuick Start:
echo1. Open Dashboard in your browser
echo 2. Go to Settings - configure pool ^& wallet
echo 3. Go to Builder - build your miner installer .exe
echo ║ 4. Run that .exe on each Windows machine ║
echo ║ ║
echo ║ Data Directory: %CD%\data\ ║
echo ║ Config File: %CD%\data\config.json ║
echo ║ Blueprints: %CD%\data\blueprints\ ║
echo ║ ║
echo ║ Press Ctrl+C in this window to stop the server ║
echo ╚══════════════════════════════════════════════════════════════╝
echo.
:: Open browser
start http://localhost:8989
:: Run server
:: Run server (this blocks until Ctrl+C)
echo [Server] Starting miner-server.exe on 0.0.0.0:8989...
echo [Server] Log output below (Ctrl+C to stop):
echo.
.\bin\miner-server.exe -port 8989 -data ".\data"
echo.
echo [Server] Server stopped.
pause